Use this table to connect the CS2040HS course sequence with the corresponding topics in this book. Course week numbers and book topic numbers follow different sequences. Weeks 7 and 8 are omitted.
| Week | Title / coverage | Corresponding DSA Concepts topic |
|---|---|---|
| 1 | Python for data structures: objects, references, mutation, classes and connected nodes | 1. Foundations and Python’s object model; 5. Sequences, stacks, queues and deques — linked structures |
| 2 | Algorithm analysis: operation counts, cases, asymptotic bounds, time and space | 2. Analysing algorithms |
| 3 | Recursion, divide-and-conquer and merge sort | 3. Recursion and divide-and-conquer; 4. Sorting |
| 4 | Sorting strategies: insertion sort, bubble sort, partitioning, quicksort and comparison bounds | 4. Sorting |
| 5 | Abstract data types and linear structures: sequences, stacks, queues, deques, arrays and linked implementations | 5. Sequences, stacks, queues and deques |
| 6 | Maps, sets, hashing, collision resolution and performance | 6. Maps, sets and hashing |
| 9 | Binary search and binary search trees: construction, traversal, search, insertion and deletion | 7. Searching and binary search trees |
| 10 | AVL trees and binary heaps; additional asynchronous lesson on k-d trees | 8. Balanced search trees; 10. Priority queues and heaps; 9. Spatial search and indexing — k-d tree sections |
| 11 | Graph concepts, representations, breadth-first search and depth-first search | 11. Graphs and traversal |
| 12 | DAGs, topological sorting and shortest paths; additional asynchronous lesson on union–find | 13. Graph ordering, paths and spanning trees — topological ordering and shortest paths; 12. Union–find and disjoint sets |
| 13 | Minimum spanning trees: Prim, Kruskal, correctness, costs and course consolidation | 13. Graph ordering, paths and spanning trees — spanning trees, Prim and Kruskal; 12. Union–find and disjoint sets — supporting Kruskal |
For prerequisites and alternative study sequences, see Reading routes and prerequisites. For language conventions and runnable examples, see Reading the code in three languages.