← Roadmap
Phase 1
Foundations
What a data structure is, the C++ you need (pointers, references, recursion), and how to measure an algorithm with Big-O.
- 1.1What Is a Data Structure?A data structure is a way of organising data in memory so the operations you need are fast. Learn how they are classified and what makes a good one.easy
- 1.2ADTs & AbstractionAn Abstract Data Type says WHAT operations exist; a data structure says HOW they are built. Separating the two is the key idea behind every structure on this roadmap.easy
- 1.3Pointers, new/delete & the HeapA pointer holds an address. new asks the heap for memory that lives until you delete it. Master this and linked lists become easy.medium
- 1.4Recursion PrimerA function that calls itself on a smaller problem until it reaches a base case. You need this for trees (Phase 4) and merge/quick sort (Phase 3).medium
- 1.5Algorithms & Their PropertiesAn algorithm is a finite, unambiguous sequence of steps that solves a problem. Learn the 11 properties every correct algorithm must have.easy
- 1.6Measuring EfficiencyEmpirical vs theoretical analysis, qualitative vs quantitative, the three classic avoidable inefficiencies, and the time–space trade-off.easy
- 1.7Counting Time UnitsTurn code into a formula T(n) using a simple set of counting rules. Loops become sums, and nested loops multiply.medium
- 1.8Best, Average & Worst CaseThe same algorithm can be fast or slow depending on the input. We analyse the best, average and worst case, and usually report the worst.easy
- 1.9Asymptotic Notation & Big-O ProofsO, Ω, Θ, o and ω describe how fast T(n) grows for large n. Learn the definitions, the order of growth, and how to prove f(n) = O(g(n)) by finding c and k.medium