9 modules · 89 lessons · 60-day core + advanced track to day 99

The curriculum

Module 0

Programming Foundations

days 19cheatsheet ↗

The alphabet before the poetry: variables, types, decisions, loops and functions — everything the rest of the course quietly assumes you know.

m0·1Variables & Data TypesLabelled boxes on a shelfm0·2Type CastingRepotting a plant into a different potm0·3Input & OutputA conversation through two mail slotsm0·4OperatorsThe buttons on a calculatorm0·5Conditional StatementsA fork in the road with a signpostm0·6Loops & IterationLaps around a running trackm0·7Functions & ScopeA vending machine with a private kitchenm0·8Reading a ProgramBeing the machine for one minutem0·9Counting StepsTwo chefs, one wedding
Module 1

OOP via Analogies

days 1020cheatsheet ↗

Objects are just nouns with skills. Learn the four pillars through houses, genetics and multi-tools.

m1·1Classes as BlueprintsThe architect's drawingm1·2Objects as HousesBuilt from the drawingm1·3Attributes vs MethodsWhat it has vs what it doesm1·4ConstructorsThe build crew's checklistm1·5EncapsulationWalls and a doorbellm1·6Inheritance as GeneticsChildren of the blueprintm1·7Method OverridingThe child who cooks differentlym1·8Polymorphism as a Multi-toolOne handle, many headsm1·9AbstractionThe steering wheelm1·10Composition over InheritanceLego, not a family tree
Module 2

Data Structures Visualized

days 2131cheatsheet ↗

Every structure is a way of arranging things in a room. Bookshelves, treasure hunts, cafeteria lines, org charts.

m2·1Arrays as BookshelvesNumbered slots in a rowm2·2Dynamic ArraysMoving to a bigger shelfm2·3Linked Lists as Treasure HuntsEach clue points to the nextm2·4Doubly Linked ListsFootprints in both directionsm2·5Stacks as Tray PilesLast tray on, first tray offm2·6Queues as Lunch LinesFirst in line eats firstm2·7Hash Maps as DictionariesStraight to the right pagem2·8CollisionsTwo words on one pagem2·9Trees as Org ChartsOne boss, many reportsm2·10Graphs as Friendship MapsEveryone knows everyone
Module 3

Algorithms in Motion

days 3243cheatsheet ↗

Watch the work happen frame by frame. Compare, swap, split, merge, halve, traverse.

m3·1Linear SearchChecking every drawerm3·2Binary SearchGuessing a number, halving each timem3·3Bubble SortKids lining up by heightm3·4Selection SortPicking the shortest kid each timem3·5Insertion SortSorting a hand of cardsm3·6RecursionRussian dollsm3·7Merge SortTwo sorted lines zipped togetherm3·8Quick SortPick a kid, split the roomm3·9Breadth-First SearchRipples in a pondm3·10Depth-First SearchOne corridor to the end
Module 4

Time & Space Complexity

days 4454cheatsheet ↗

Big O is not maths homework. It is the answer to: what happens when the data gets big?

m4·1What Big O MeasuresCooking for 1 vs 100 guestsm4·2O(1) — ConstantA light switchm4·3O(n) — LinearShaking every handm4·4O(n²) — QuadraticEveryone greets everyonem4·5O(log n) — LogarithmicHalving the phone bookm4·6O(n log n) — The Sorting FloorHandshakes with a planm4·7Comparing the CurvesFour lines on one chartm4·8Space ComplexityCounter space, not cooking timem4·9Amortised AnalysisThe occasional big shopm4·10Choosing the Right ToolThe whole toolbox at once
Module 5

Advanced Data Structures

days 5565cheatsheet ↗

The structures that separate a working solution from a fast one: heaps, tries, disjoint sets, segment trees, and the internals of the map you use every day.

m5·1Heaps & Priority QueuesA triage nurse, not a queuem5·2Heapify & HeapsortBuilding the pile bottom-upm5·3Tries / Prefix TreesA signpost at every letterm5·4Union-Find (Disjoint Set Union)Merging friend groupsm5·5Segment TreesNested summaries of a shelfm5·6Fenwick Tree (BIT)Rulers of clever lengthsm5·7Self-Balancing Trees & RotationsStraightening a leaning towerm5·8Hash Map Internals: Probing & ResizingLooking for the next free seatm5·9Designing an LRU CacheA desk with limited spacem5·10Bloom FiltersA bouncer with a bad memory
Module 6

Graph Algorithms

days 6676cheatsheet ↗

Weights change everything. Shortest paths, spanning trees, orderings and flow — with the reasoning for choosing between them.

m6·1Weighted Graphs & RepresentationsRoads have lengthsm6·2Dijkstra's AlgorithmAlways explore the nearest unvisited townm6·3Bellman-Ford & Negative EdgesRumours spreading one hop per roundm6·4Floyd-Warshall (All-Pairs)Would going via this city help?m6·5Topological SortGetting dressed in a valid orderm6·6Kruskal's MSTCheapest cables firstm6·7Prim's MSTGrow one blob outwardsm6·8A* SearchDijkstra with a compassm6·9Strongly Connected ComponentsNeighbourhoods you can circlem6·10Max Flow & Min CutWater through pipes
Module 7

Algorithmic Patterns

days 7788cheatsheet ↗

The reusable shapes. Once you can name the pattern, most problems stop being novel — this is the module that changes how you read a problem statement.

m7·1Two PointersTwo hands closing inm7·2Sliding WindowA window sliding along a trainm7·3Prefix Sums & Difference ArraysRunning totals on a receiptm7·4Binary Search on the AnswerGuessing the right shoe sizem7·5BacktrackingExploring a maze with breadcrumbsm7·6Greedy & the Exchange ArgumentAlways grab the nearest deadlinem7·7Divide & ConquerSplit the pile, solve, combinem7·8Bit ManipulationA row of light switchesm7·9String Matching: KMP & Rabin-KarpNever re-read what you already matchedm7·10Intervals & Sweep LineWalking the timeline once
Module 8

Dynamic Programming

days 8999cheatsheet ↗

The module that breaks people, taught as state design rather than magic recurrences. If you can name the state and the transition, you can write the code.

m8·1Memoisation vs TabulationWriting answers on your handm8·21D DP & State DesignClimbing stairs one decision at a timem8·30/1 KnapsackPacking a bag with a weight limitm8·4Coin Change & Unbounded KnapsackUnlimited coins of each kindm8·5Longest Common SubsequenceWhat two texts still agree onm8·6Edit DistanceCheapest way to retype a wordm8·7Longest Increasing SubsequenceBuilding the most patient stacksm8·8Grid DP & Path CountingOnly ever moving right or downm8·9DP on TreesAsking your children before you answerm8·10Bitmask DP & State CompressionThe whole set as one number