Curriculum
125 weeks. Two interpreters, then Knuth.
Crafting Interpreters first, then The Art of Computer Programming, volumes 1 to 4B, with two NeetCode problems a week for the first 75 weeks and three Zachtronics games on the side. Every week has a reading guide and a due date once you pick a start.
Dated. Pick a start date and a pace; every week gets a due date, in your calendar too.
Proved. The interpreter chapters check themselves: push your repo and the book's own tests mark them done.
Crafting Interpreters
Weeks 1 to 16 · Build two complete interpreters for Lox: a tree-walker in Java, then a bytecode VM in C.
Sixteen weeks building two complete interpreters for Lox, a small but real language with closures and classes. First jlox, a tree-walking interpreter in Java (weeks 1 to 7), then clox, a bytecode virtual machine in C with its own hash table and garbage collector (weeks 8 to 16). You type every line yourself. It is the most fun phase of the path and the one that changes how you see every language you use.
16 weeks
- Week 1Crafting Interpreters, chapters 1, 2 and 3
- Week 2Crafting Interpreters, chapter 4
- Week 3Crafting Interpreters, chapters 5 and 6
- Week 4Crafting Interpreters, chapters 7 and 8
- Week 5Crafting Interpreters, chapters 9 and 10
- Week 6Crafting Interpreters, chapter 11
- Week 7Crafting Interpreters, chapters 12 and 13
- Week 8Crafting Interpreters, chapters 14 and 15
- Week 9Crafting Interpreters, chapters 16 and 17
- Week 10Crafting Interpreters, chapters 18 and 19
- Week 11Crafting Interpreters, chapters 20 and 21
- Week 12Crafting Interpreters, chapters 22 and 23
- Week 13Crafting Interpreters, chapters 24 and 25
- Week 14Crafting Interpreters, chapter 26
- Week 15Crafting Interpreters, chapters 27 and 28
- Week 16Crafting Interpreters, chapters 29 and 30
TAOCP Vol 1: Fundamental Algorithms
Weeks 17 to 47 · Mathematical preliminaries, MIX, and information structures.
Welcome to Knuth. Volume 1 starts with a big block of math (induction, sums, binomial coefficients, generating functions, asymptotics), then MIX, Knuth's imaginary computer and its assembly language, then the data structures everything else is built on: lists, trees, garbage collection and memory allocation. The math weeks are the hardest stretch of the whole path for most people. That is normal. Push through them and the rest of Knuth opens up.
31 weeks
- Week 17TAOCP 1.1 Algorithms
- Week 18TAOCP 1.2.1 and 1.2.2
- Week 19TAOCP 1.2.3 Sums and Products
- Week 20TAOCP 1.2.4 Integer Functions and Elementary Number Theory
- Week 21TAOCP 1.2.5 Permutations and Factorials
- Week 22TAOCP 1.2.6 Binomial Coefficients (part 1)
- Week 23TAOCP 1.2.6 Binomial Coefficients (part 2)
- Week 24TAOCP 1.2.7 and 1.2.8
- Week 25TAOCP 1.2.9 Generating Functions
- Week 26TAOCP 1.2.10 Analysis of an Algorithm
- Week 27TAOCP 1.2.11 Asymptotic Representations
- Week 28TAOCP 1.3.1 Description of MIX
- Week 29TAOCP 1.3.2 The MIX Assembly Language
- Week 30TAOCP 1.3.3 Applications to Permutations
- Week 31TAOCP 1.4.1 and 1.4.2
- Week 32TAOCP 1.4.3 Interpretive Routines
- Week 33TAOCP 1.4.4 and 1.4.5
- Week 34TAOCP 2.1 and 2.2.1
- Week 35TAOCP 2.2.2 Sequential Allocation
- Week 36TAOCP 2.2.3 Linked Allocation
- Week 37TAOCP 2.2.4 and 2.2.5
- Week 38TAOCP 2.2.6 Arrays and Orthogonal Lists
- Week 39TAOCP 2.3.1 Traversing Binary Trees
- Week 40TAOCP 2.3.2 Binary Tree Representation of Trees
- Week 41TAOCP 2.3.3 Other Representations of Trees
- Week 42TAOCP 2.3.4 Basic Mathematical Properties of Trees (part 1)
- Week 43TAOCP 2.3.4 Basic Mathematical Properties of Trees (part 2)
- Week 44TAOCP 2.3.5 Lists and Garbage Collection
- Week 45TAOCP 2.4 Multilinked Structures
- Week 46TAOCP 2.5 Dynamic Storage Allocation
- Week 47TAOCP 2.6 and Vol
TAOCP Vol 2: Seminumerical Algorithms
Weeks 48 to 72 · Random numbers and arithmetic.
Volume 2 is about numbers as computers see them. Chapter 3 is random numbers: how to generate them, how to test them, and how to turn them into shuffles and samples. Chapter 4 is arithmetic: floating point, bignums, fast multiplication, gcd, factoring and polynomials. Some sections are deep number theory; the guides tell you where to dig in and where to skim.
25 weeks
- Week 48TAOCP 3.1 and 3.2.1
- Week 49TAOCP 3.2.2 Other Methods
- Week 50TAOCP 3.3.1 General Test Procedures
- Week 51TAOCP 3.3.2 Empirical Tests
- Week 52TAOCP 3.3.3 Theoretical Tests
- Week 53TAOCP 3.3.4 The Spectral Test
- Week 54TAOCP 3.4.1 Numerical Distributions
- Week 55TAOCP 3.4.2 Random Sampling and Shuffling
- Week 56TAOCP 3.5 and 3.6
- Week 57TAOCP 4.1 Positional Number Systems
- Week 58TAOCP 4.2.1 Single-Precision Calculations
- Week 59TAOCP 4.2.2 Accuracy of Floating Point Arithmetic
- Week 60TAOCP 4.2.3 and 4.2.4
- Week 61TAOCP 4.3.1 The Classical Algorithms
- Week 62TAOCP 4.3.2 Modular Arithmetic
- Week 63TAOCP 4.3.3 How Fast Can We Multiply?
- Week 64TAOCP 4.4 Radix Conversion
- Week 65TAOCP 4.5.1 and 4.5.2
- Week 66TAOCP 4.5.3 Analysis of Euclid's Algorithm
- Week 67TAOCP 4.5.4 Factoring into Primes
- Week 68TAOCP 4.6.1 Division of Polynomials
- Week 69TAOCP 4.6.2 Factorization of Polynomials
- Week 70TAOCP 4.6.3 Evaluation of Powers
- Week 71TAOCP 4.6.4 Evaluation of Polynomials
- Week 72TAOCP 4.7 and Vol
TAOCP Vol 3: Sorting and Searching
Weeks 73 to 99 · Sorting and searching.
The most directly practical volume. Chapter 5 covers sorting: the combinatorics of permutations, every classic internal sort with exact analysis, lower bounds, sorting networks and external sorting. Chapter 6 covers searching: binary search, balanced trees, B-trees, tries, hashing and secondary keys. You will finish it able to read any database or standard library internals.
27 weeks
- Week 73TAOCP 5.1.1 Inversions
- Week 74TAOCP 5.1.2 Permutations of a Multiset
- Week 75TAOCP 5.1.3 Runs
- Week 76TAOCP 5.1.4 Tableaux and Involutions
- Week 77TAOCP 5.2.1 Sorting by Insertion
- Week 78TAOCP 5.2.2 Sorting by Exchanging
- Week 79TAOCP 5.2.3 Sorting by Selection
- Week 80TAOCP 5.2.4 Sorting by Merging
- Week 81TAOCP 5.2.5 Sorting by Distribution
- Week 82TAOCP 5.3.1 Minimum-Comparison Sorting
- Week 83TAOCP 5.3.2 and 5.3.3
- Week 84TAOCP 5.3.4 Networks for Sorting
- Week 85TAOCP 5.4.1 Multiway Merging and Replacement Selection
- Week 86TAOCP 5.4.2 and 5.4.3
- Week 87TAOCP 5.4.4 and 5.4.5
- Week 88TAOCP 5.4.6 and 5.4.7
- Week 89TAOCP 5.4.8 and 5.4.9
- Week 90TAOCP 5.5 Summary, History, and Bibliography
- Week 91TAOCP 6.1 Sequential Searching
- Week 92TAOCP 6.2.1 Searching an Ordered Table
- Week 93TAOCP 6.2.2 Binary Tree Searching
- Week 94TAOCP 6.2.3 Balanced Trees
- Week 95TAOCP 6.2.4 Multiway Trees
- Week 96TAOCP 6.3 Digital Searching
- Week 97TAOCP 6.4 Hashing (part 1)
- Week 98TAOCP 6.4 Hashing (part 2)
- Week 99TAOCP 6.5 and Vol
TAOCP Vol 4A: Combinatorial Algorithms, Part 1
Weeks 100 to 115 · Combinatorial searching, generating all possibilities.
Volume 4A is Knuth at his most playful: puzzles, graphs, Boolean functions, bit tricks, binary decision diagrams, and efficient ways to generate every tuple, permutation, combination, partition and tree. It uses MMIX instead of MIX where it shows machine code, but most of it is plain algorithm steps.
16 weeks
- Week 100TAOCP 7 Combinatorial Searching intro (part 1)
- Week 101TAOCP 7 Combinatorial Searching intro (part 2)
- Week 102TAOCP 7.1.1 Boolean Basics (part 1)
- Week 103TAOCP 7.1.1 Boolean Basics (part 2)
- Week 104TAOCP 7.1.2 Boolean Evaluation
- Week 105TAOCP 7.1.3 Bitwise Tricks and Techniques (part 1)
- Week 106TAOCP 7.1.3 Bitwise Tricks and Techniques (part 2)
- Week 107TAOCP 7.1.4 Binary Decision Diagrams (part 1)
- Week 108TAOCP 7.1.4 Binary Decision Diagrams (part 2)
- Week 109TAOCP 7.2.1.1 Generating All n-Tuples
- Week 110TAOCP 7.2.1.2 Generating All Permutations
- Week 111TAOCP 7.2.1.3 Generating All Combinations
- Week 112TAOCP 7.2.1.4 Generating All Partitions
- Week 113TAOCP 7.2.1.5 Generating All Set Partitions
- Week 114TAOCP 7.2.1.6 Generating All Trees
- Week 115TAOCP 7.2.1.7 and Vol
TAOCP Vol 4B: Combinatorial Algorithms, Part 2
Weeks 116 to 125 · Backtracking, dancing links and satisfiability.
The final stretch: probability tools for analyzing search, backtracking, dancing links for exact cover problems (sudoku, polyominoes and much more), and a deep dive into SAT solving, the technology behind modern verification and constraint solving. You end the path implementing ideas that are still at the research frontier.
10 weeks
- Week 116TAOCP Mathematical Preliminaries Redux
- Week 117TAOCP 7.2.2 Backtrack Programming (part 1)
- Week 118TAOCP 7.2.2 Backtrack Programming (part 2)
- Week 119TAOCP 7.2.2.1 Dancing Links (part 1)
- Week 120TAOCP 7.2.2.1 Dancing Links (part 2)
- Week 121TAOCP 7.2.2.1 Dancing Links (part 3)
- Week 122TAOCP 7.2.2.2 Satisfiability (part 1)
- Week 123TAOCP 7.2.2.2 Satisfiability (part 2)
- Week 124TAOCP 7.2.2.2 Satisfiability (part 3)
- Week 125TAOCP 7.2.2.2 and Vol