Course · 7 lessons ~75 hr Intermediate

The Art of Computer Programming — Knuth & Beyond

Read selected sections of Knuth's The Art of Computer Programming with understanding. Explore the deeper theoretical and philosophical connections between mathematics, algorithms, and computation. This is the capstone — the intellectual summit of the curriculum. Ruby's Kernel#rand uses a Mersenne Twister pseudorandom number generator — understanding Knuth's analysis of linear congruential generators (TAOCP Vol 2, Ch 3) helps you understand why certain PRNGs are better than others and when Ruby's default is insufficient (cryptographic applications need SecureRandom). Ruby's Array#sort (Timsort) descends from a lineage of sorting algorithms that Knuth cataloged in TAOCP Vol 3. Ruby's garbage collector implements algorithms that Knuth analyzed in his dynamic storage allocation section (TAOCP Vol 1, Section 2.5). Understanding Knuth connects you to the deepest roots of the tools you use every day.

reading · we frame, you read MIT or the canonical taught · we author, no canonical fits ↺ spirals back to earlier lessons
Course locked

Complete Interview Mastery & Competitive Programming first.

This course unlocks once you've finished its prerequisite. Open prerequisite →

7 lessons. Read in order; spiral back when you need to. By the end you'll have used the core ideas twice — once on the abstract, once on something you'll meet at work next week.