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.
| Block | Bounded source assignment | Output and stopping point |
|---|---|---|
| State and evaluation | Skiena: Fibonacci caching, limitations of DP; CLRS: rod cutting, elements of DP | State collision, induction and transition-count derivation; P1–P5 |
| Sequences and capacity | Skiena: edit-distance table/reconstruction and LIS; CLRS: DP and knapsack reasoning | Valid subsequence/alignment/item witnesses; P6–P9 |
| Intervals and trees | CLRS: matrix chain and optimal BST; Competitive Programming: tree/grid exercises | Boundary-state derivations; P10–P14 |
| Subsets and digit bounds | Skiena: subset history and DP limits; Competitive Programming: bounded counting where available in your edition | Tour closure, exact counted objects and resource estimate; P15–P18 |
| Algorithm choice | CLRS: activity-selection proof; authored weighted-scheduling extension | Greedy counterexample, predecessor DP and budget transfer; P19–P20/capstone |
Local collection map
Books/The Algorithm Design Manual/contents/README.mdlocates 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.pdfis 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.mdis 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).pdfis 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.