Reading Guide
Start with the concept lesson and a written attempt. Full-book reading is not required for the compact module path. For the full-book route, these assignments are checkpoints within the scheduled whole-book work.
| Need | Source and topic | Work after closing the source |
|---|---|---|
| Modeling and counterexamples | The Algorithm Design Manual: Selecting the Right Jobs; Modeling the Problem | Refute earliest-start scheduling; explain the preserved quantity in earliest-finish exchange |
| Bounds and recurrences | Same book: RAM model, growth, summations, divide-and-conquer; CLRS: asymptotics and recurrence methods | Derive A1–A3 with base cases and matching lower bounds |
| Amortization | CLRS: aggregate, accounting, potential, dynamic tables; MIT dynamic-array lecture | Re-derive Lab A with empty size and capacity 1, without borrowing incompatible startup assumptions |
| Correctness | CLRS: loop invariants; Skiena: induction and recursion | Prove the lower-bound postcondition including duplicate and absent targets |
| DP and witnesses | Skiena: Fibonacci caching and dynamic programming; Kevin Wayne's weighted-scheduling lecture | Define compatible prefixes, recover original indices, and account for predecessor-search cost |
| Implementation alternatives | CLRS: pseudocode and loop-invariant presentations, if its presentation resolves a specific gap | Compare contracts and cost models rather than copying syntax |
The local Skiena collection includes topic chunks on job selection, contiguous arrays, and Fibonacci caching. The course links above intentionally use book indexes where generated chapter groupings combine topics. Search by topic in your edition; do not infer that a generated chapter label is an exact textbook section.
Consult one source for a named obstacle, then reconstruct the reasoning and solve a changed case. Record which source or solution you used. More reading is optional once the competency is demonstrated; extra familiar exercises do not replace an unproved assumption.