Skip to main content

Reading Guide

The authored lessons are the main path. Read to resolve a named gap, then close the source and derive or solve something independently. You do not need to read every book cover to cover. Book links below open indexes; topic names avoid guessed chapter routes or edition-specific numbering.

BlockBounded source assignmentOutput and stopping point
State and evaluationSkiena: Fibonacci caching, limitations of DP; CLRS: rod cutting, elements of DPState collision, induction and transition-count derivation; P1–P5
Sequences and capacitySkiena: edit-distance table/reconstruction and LIS; CLRS: DP and knapsack reasoningValid subsequence/alignment/item witnesses; P6–P9
Intervals and treesCLRS: matrix chain and optimal BST; Competitive Programming: tree/grid exercisesBoundary-state derivations; P10–P14
Subsets and digit boundsSkiena: subset history and DP limits; Competitive Programming: bounded counting where available in your editionTour closure, exact counted objects and resource estimate; P15–P18
Algorithm choiceCLRS: activity-selection proof; authored weighted-scheduling extensionGreedy counterexample, predecessor DP and budget transfer; P19–P20/capstone

Local collection map​

  • Books/The Algorithm Design Manual/contents/README.md locates chunks 107–108 (Fibonacci), 109–112 (edit distance and reconstruction), 113 (LIS), 115 (partitioning), 116–117 (parsing/triangulation), 118 (DP limits), 121–122 (exercises) and 163 (knapsack discussion). Chunk IDs are repository navigation aids; OCR can damage equations. Check notation against the PDF when needed.
  • reading/Algorithms/CLRS.pdf is the main proof-depth reference. Locate the named topics in your edition; no exact page assignment is claimed here.
  • Books/Competitive Programming/contents/047-3-5-dynamic-programming.md is a local entry point for additional exercises. Do not assume every modern digit/profile optimization appears in the available edition.
  • Resources/software-development-main/books/data structures and algorithms/Algorithmic Thinking Unlock Your Programming Potential, 2nd Edition (Daniel Zingaro) (Z-Library).pdf is an optional additional exercise candidate. Its full contents were not reviewed for this revision; use its contents to choose one relevant problem after completing the core, rather than adding a second mandatory syllabus.
  • The same Resources directory contains Advanced Algorithms and Data Structures by Marcello La Rocca. Treat it as optional algorithm-design breadth, not an asserted source for every specialized DP topic.

Additional primary teaching sources​

Jeff Erickson's Dynamic Programming chapter offers an alternative derivation path. Use one example to compare state definitions and evaluation order. MIT's first DP lecture introduces subproblem-based design through Fibonacci, DAGs and bowling; derive a fresh state card afterward. MIT's parenthesization lecture is targeted reinforcement for interval structure and augmented state.

Depth track​

Choose one bounded extension from the implementation studio. Affine alignment, Hirschberg reconstruction, unsuccessful-query optimal BSTs, profile DP and advanced split optimizations require additional derivations and time beyond the core estimate. Record the question, source scope, implemented contract and a fresh verification task; reading volume itself is not mastery.