Skip to content
Curriculum · Nine Modules

A guided path through the canon.

Nine modules, ordered by dependency rather than popularity. Each assumes nothing beyond the previous one; each ends with a concrete problem set. Read front to back, or treat it as a reference; the prerequisites are labelled honestly so you can skip without regret.

All modules

Module 01 · Entry Point

Arrays & Sequences

The substrate. Contiguous memory, indexing arithmetic, and the first patterns (two pointers and sliding windows) applied on flat data.

Beginner18 min read
Open module
Module 06 · Capstone

Dynamic Programming

State, transition, base case: the three-part decomposition that turns intractable recursion into polynomial-time algorithms.

Enter module →
Module 02

The Discipline of Pointers

A linked list is the refusal to hold memory in one piece. Each node is a signpost: a small payload and an arrow pointing to the next signpos

Module 03

Advanced String Manipulation

Strings are arrays with a finite alphabet: usually ASCII, sometimes Unicode, occasionally just {A, C, G, T}. That constraint is a gift. A sm

Module 04

The Algebra of Membership

A hash map is a machine that converts the question 'have I seen this key before?' from a linear search into a constant-time lookup. That sin

Module 05

Recursion as Structural Induction

Trees are the first data structure where recursion stops being a cute control-flow trick and becomes the only natural language. A binary tre

Module 07

The Vocabulary of Relationships

Almost every problem involving connections (cities by roads, people by friendships, pages by links, tasks by dependencies) is a graph proble

Module 08

The Price of Order

Sorting is rarely the goal. Sorting is the <em>preparation</em> that makes the real goal cheap: finding duplicates, computing medians, apply

Module 09

Two Hands on a Number Line

The two-pointer technique and its cousin, the sliding window, are the single most transferable patterns in this curriculum. They appear in a