Free tool

TAOCP study plan

A dated plan for The Art of Computer Programming, Volumes 1 to 4B: 117 weeks, about one section a week, each linked to its reading guide with picked exercises. It is the Knuth part of the cracked.guide path on its own.

One week of the path each week: 145 weeks, about 2.8 years.

VolumeWeeksStartsEnds
Vol 1: Fundamental Algorithms1 to 35Oct 26, 2026Jun 27, 2027
Vol 2: Seminumerical Algorithms36 to 61Jun 28, 2027Dec 26, 2027
Vol 3: Sorting and Searching62 to 89Dec 27, 2027Jul 9, 2028
Vol 4A: Combinatorial Algorithms, Part 190 to 105Jul 10, 2028Oct 29, 2028
Vol 4B: Combinatorial Algorithms, Part 2106 to 117Oct 30, 2028Jan 21, 2029

Week by week

WeekDatesSections
1Mon, Oct 26 to Sun, Nov 11.1 Algorithms
2Mon, Nov 2 to Sun, Nov 81.2.1 Mathematical Induction
3Mon, Nov 9 to Sun, Nov 151.2.2 Numbers, Powers, and Logarithms
4Mon, Nov 16 to Sun, Nov 221.2.3 Sums and Products
5Mon, Nov 23 to Sun, Nov 291.2.4 Integer Functions and Elementary Number Theory
6Mon, Nov 30 to Sun, Dec 61.2.5 Permutations and Factorials
7Mon, Dec 7 to Sun, Dec 131.2.6 Binomial Coefficients (part 1)
8Mon, Dec 14 to Sun, Dec 201.2.6 Binomial Coefficients (part 2)
9Mon, Dec 21 to Sun, Dec 271.2.7 Harmonic Numbers
10Mon, Dec 28 to Sun, Jan 31.2.8 Fibonacci Numbers
11Mon, Jan 4 to Sun, Jan 101.2.9 Generating Functions
12Mon, Jan 11 to Sun, Jan 171.2.10 Analysis of an Algorithm
13Mon, Jan 18 to Sun, Jan 241.2.11 Asymptotic Representations
14Mon, Jan 25 to Sun, Jan 311.3.1 Description of MIX
15Mon, Feb 1 to Sun, Feb 71.3.2 The MIX Assembly Language
16Mon, Feb 8 to Sun, Feb 141.3.3 Applications to Permutations
17Mon, Feb 15 to Sun, Feb 211.4.1 Subroutines
18Mon, Feb 22 to Sun, Feb 281.4.2 Coroutines
19Mon, Mar 1 to Sun, Mar 71.4.3 Interpretive Routines
20Mon, Mar 8 to Sun, Mar 141.4.4 Input and Output
1.4.5 History and Bibliography
21Mon, Mar 15 to Sun, Mar 212.1 Introduction
2.2.1 Stacks, Queues, and Deques
22Mon, Mar 22 to Sun, Mar 282.2.2 Sequential Allocation
23Mon, Mar 29 to Sun, Apr 42.2.3 Linked Allocation
24Mon, Apr 5 to Sun, Apr 112.2.4 Circular Lists
25Mon, Apr 12 to Sun, Apr 182.2.5 Doubly Linked Lists
26Mon, Apr 19 to Sun, Apr 252.2.6 Arrays and Orthogonal Lists
27Mon, Apr 26 to Sun, May 22.3.1 Traversing Binary Trees
28Mon, May 3 to Sun, May 92.3.2 Binary Tree Representation of Trees
29Mon, May 10 to Sun, May 162.3.3 Other Representations of Trees
30Mon, May 17 to Sun, May 232.3.4 Basic Mathematical Properties of Trees (part 1)
31Mon, May 24 to Sun, May 302.3.4 Basic Mathematical Properties of Trees (part 2)
32Mon, May 31 to Sun, Jun 62.3.5 Lists and Garbage Collection
33Mon, Jun 7 to Sun, Jun 132.4 Multilinked Structures
34Mon, Jun 14 to Sun, Jun 202.5 Dynamic Storage Allocation
35Mon, Jun 21 to Sun, Jun 272.6 History and Bibliography
Vol 1 review
36Mon, Jun 28 to Sun, Jul 43.1 Introduction
37Mon, Jul 5 to Sun, Jul 113.2.1 The Linear Congruential Method
38Mon, Jul 12 to Sun, Jul 183.2.2 Other Methods
39Mon, Jul 19 to Sun, Jul 253.3.1 General Test Procedures
40Mon, Jul 26 to Sun, Aug 13.3.2 Empirical Tests
41Mon, Aug 2 to Sun, Aug 83.3.3 Theoretical Tests
42Mon, Aug 9 to Sun, Aug 153.3.4 The Spectral Test
43Mon, Aug 16 to Sun, Aug 223.4.1 Numerical Distributions
44Mon, Aug 23 to Sun, Aug 293.4.2 Random Sampling and Shuffling
45Mon, Aug 30 to Sun, Sep 53.5 What Is a Random Sequence?
3.6 Summary
46Mon, Sep 6 to Sun, Sep 124.1 Positional Number Systems
47Mon, Sep 13 to Sun, Sep 194.2.1 Single-Precision Calculations
48Mon, Sep 20 to Sun, Sep 264.2.2 Accuracy of Floating Point Arithmetic
49Mon, Sep 27 to Sun, Oct 34.2.3 Double-Precision Calculations
4.2.4 Distribution of Floating Point Numbers
50Mon, Oct 4 to Sun, Oct 104.3.1 The Classical Algorithms
51Mon, Oct 11 to Sun, Oct 174.3.2 Modular Arithmetic
52Mon, Oct 18 to Sun, Oct 244.3.3 How Fast Can We Multiply?
53Mon, Oct 25 to Sun, Oct 314.4 Radix Conversion
54Mon, Nov 1 to Sun, Nov 74.5.1 Fractions
4.5.2 The Greatest Common Divisor
55Mon, Nov 8 to Sun, Nov 144.5.3 Analysis of Euclid's Algorithm
56Mon, Nov 15 to Sun, Nov 214.5.4 Factoring into Primes
57Mon, Nov 22 to Sun, Nov 284.6.1 Division of Polynomials
58Mon, Nov 29 to Sun, Dec 54.6.2 Factorization of Polynomials
59Mon, Dec 6 to Sun, Dec 124.6.3 Evaluation of Powers
60Mon, Dec 13 to Sun, Dec 194.6.4 Evaluation of Polynomials
61Mon, Dec 20 to Sun, Dec 264.7 Manipulation of Power Series
Vol 2 review
62Mon, Dec 27 to Sun, Jan 25.1.1 Inversions
63Mon, Jan 3 to Sun, Jan 95.1.2 Permutations of a Multiset
64Mon, Jan 10 to Sun, Jan 165.1.3 Runs
65Mon, Jan 17 to Sun, Jan 235.1.4 Tableaux and Involutions
66Mon, Jan 24 to Sun, Jan 305.2.1 Sorting by Insertion
67Mon, Jan 31 to Sun, Feb 65.2.2 Sorting by Exchanging
68Mon, Feb 7 to Sun, Feb 135.2.3 Sorting by Selection
69Mon, Feb 14 to Sun, Feb 205.2.4 Sorting by Merging
70Mon, Feb 21 to Sun, Feb 275.2.5 Sorting by Distribution
71Mon, Feb 28 to Sun, Mar 55.3.1 Minimum-Comparison Sorting
72Mon, Mar 6 to Sun, Mar 125.3.2 Minimum-Comparison Merging
5.3.3 Minimum-Comparison Selection
73Mon, Mar 13 to Sun, Mar 195.3.4 Networks for Sorting
74Mon, Mar 20 to Sun, Mar 265.4.1 Multiway Merging and Replacement Selection
75Mon, Mar 27 to Sun, Apr 25.4.2 The Polyphase Merge
5.4.3 The Cascade Merge
76Mon, Apr 3 to Sun, Apr 95.4.4 Reading Tape Backwards
5.4.5 The Oscillating Sort
77Mon, Apr 10 to Sun, Apr 165.4.6 Practical Considerations for Tape Merging
78Mon, Apr 17 to Sun, Apr 235.4.7 External Radix Sorting
5.4.8 Two-Tape Sorting
79Mon, Apr 24 to Sun, Apr 305.4.9 Disks and Drums
5.5 Summary, History, and Bibliography
80Mon, May 1 to Sun, May 76.1 Sequential Searching
81Mon, May 8 to Sun, May 146.2.1 Searching an Ordered Table
82Mon, May 15 to Sun, May 216.2.2 Binary Tree Searching
83Mon, May 22 to Sun, May 286.2.3 Balanced Trees
84Mon, May 29 to Sun, Jun 46.2.4 Multiway Trees
85Mon, Jun 5 to Sun, Jun 116.3 Digital Searching
86Mon, Jun 12 to Sun, Jun 186.4 Hashing (part 1)
87Mon, Jun 19 to Sun, Jun 256.4 Hashing (part 2)
88Mon, Jun 26 to Sun, Jul 26.5 Retrieval on Secondary Keys
89Mon, Jul 3 to Sun, Jul 9Vol 3 review
90Mon, Jul 10 to Sun, Jul 167 Combinatorial Searching intro (part 1)
91Mon, Jul 17 to Sun, Jul 237 Combinatorial Searching intro (part 2)
92Mon, Jul 24 to Sun, Jul 307.1.1 Boolean Basics (part 1)
93Mon, Jul 31 to Sun, Aug 67.1.1 Boolean Basics (part 2)
94Mon, Aug 7 to Sun, Aug 137.1.2 Boolean Evaluation
95Mon, Aug 14 to Sun, Aug 207.1.3 Bitwise Tricks and Techniques (part 1)
96Mon, Aug 21 to Sun, Aug 277.1.3 Bitwise Tricks and Techniques (part 2)
97Mon, Aug 28 to Sun, Sep 37.1.4 Binary Decision Diagrams (part 1)
98Mon, Sep 4 to Sun, Sep 107.1.4 Binary Decision Diagrams (part 2)
99Mon, Sep 11 to Sun, Sep 177.2.1.1 Generating All n-Tuples
100Mon, Sep 18 to Sun, Sep 247.2.1.2 Generating All Permutations
101Mon, Sep 25 to Sun, Oct 17.2.1.3 Generating All Combinations
102Mon, Oct 2 to Sun, Oct 87.2.1.4 Generating All Partitions
103Mon, Oct 9 to Sun, Oct 157.2.1.5 Generating All Set Partitions
104Mon, Oct 16 to Sun, Oct 227.2.1.6 Generating All Trees
105Mon, Oct 23 to Sun, Oct 297.2.1.7 History and Further References
Vol 4A review
106Mon, Oct 30 to Sun, Nov 5Mathematical Preliminaries Redux
107Mon, Nov 6 to Sun, Nov 127.2.2 Backtrack Programming (part 1)
108Mon, Nov 13 to Sun, Nov 197.2.2 Backtrack Programming (part 2)
109Mon, Nov 20 to Sun, Nov 267.2.2.1 Dancing Links (part 1)
110Mon, Nov 27 to Sun, Dec 37.2.2.1 Dancing Links (part 2)
111Mon, Dec 4 to Sun, Dec 107.2.2.1 Dancing Links (part 3)
112Mon, Dec 11 to Sun, Dec 177.2.2.1 Dancing Links (part 4)
113Mon, Dec 18 to Sun, Dec 247.2.2.2 Satisfiability (part 1)
114Mon, Dec 25 to Sun, Dec 317.2.2.2 Satisfiability (part 2)
115Mon, Jan 1 to Sun, Jan 77.2.2.2 Satisfiability (part 3)
116Mon, Jan 8 to Sun, Jan 147.2.2.2 Satisfiability (part 4)
117Mon, Jan 15 to Sun, Jan 21Vol 4B review

Questions

How long does it take to work through TAOCP?

About 117 weeks at one section a week and 8 to 12 hours a week, about 2.2 years. At half pace, twice that.

Do I need Crafting Interpreters first?

Not to use this plan. The full cracked.guide path puts it first so you arrive at Knuth writing a lot of code in Java and C.