Skip to main content

A hands-on course in Rust

The Art of Computer Programming, implemented

Knuth's essence, stage by stage — you write every algorithm yourself, guided by lessons that carry the mathematics. Self-contained: you can finish the course even if you don't own the books.

0 / 94 stages complete · 0 / 22 modules finished
progress saved in this browser
Volume 1Fundamental Algorithms0 / 18
03
18
MMIX: Knuth's MachineVol. 1, Fascicle 1
Volume 2Seminumerical Algorithms0 / 21
04
Random NumbersVol. 2, Ch. 3
05
ArithmeticVol. 2, Ch. 4
12
The Spectral TestVol. 2, §3.3.4
16
The Spectral Test in Higher DimensionsVol. 2, §3.3.4, Algorithm S
Volume 3Sorting and Searching0 / 22
06
SortingVol. 3, Ch. 5
07
SearchingVol. 3, Ch. 6
11
15
External SortingVol. 3, §5.4
Volume 4ACombinatorial Algorithms, Part 10 / 17
08
Combinatorial GenerationVol. 4A, §7.2.1
17
ZDDs and Exact Covering with ColorsVol. 4A, §7.1.4 & Vol. 4B, §7.2.2.1
Volume 4BCombinatorial Algorithms, Part 20 / 12
09
Backtracking and Dancing LinksVol. 4B, §7.2.2–7.2.2.1
10
SatisfiabilityVol. 4B, §7.2.2.2
14
Conflict-Driven Clause LearningVol. 4B, §7.2.2.2, Algorithm C
Toward Volume 4CPre-fascicles0 / 4
22
Hamiltonian Paths and Constraint SatisfactionToward Vol. 4C, §7.2.2.4 (pre-fascicles)

The toolkit you build

The course's real syllabus isn't the algorithms — it's the reasoning. Each proof technique recurs across modules; seen three times, it becomes yours.

TechniqueMet inRecurs across modules
Invariant + termination0105 · 06 · 07 · 09 · 14
Mathematical induction0203 · 04 · 06 · 13
Double counting0206 · 08 · 13
Expectation & harmonic sums0206 · 07
Extremal witness0106 · 07 · 13 · 20
Information-theoretic bound0607 · 20
Honest probabilistic analysis0405 · 12 · 16 · 19
Lattice / number-theoretic structure0104 · 05 · 12 · 16
Reduction between problems0910 · 14 · 17 · 22
Amortized / potential0307 · 14 · 15
Certification0110 · 14