| LEC # | TOPICS | READINGS |
|---|---|---|
| Introduction and document distance | ||
| L1 | Introduction and document distance | CLRS, chapters 1-3 |
| L2 | More document distance, mergesort | CLRS, sections 11.1-11.2 |
| Binary search trees | ||
| L3 | Airplane scheduling, binary search trees | CLRS, chapter 10 and sections 12.1-12.3 |
| L4 | Balanced binary search trees | CLRS, sections 13.1 and 13.2 for a different approach (red-black trees) |
| Hashing | ||
| L5 | Hashing I: chaining, hash functions | |
| L6 | Hashing II: table doubling, Karp-Rabin | CLRS, chapter 17 and section 32.2 |
| L7 | Hashing III: open addressing | CLRS, section 11.4 (and 11.3.3 and 11.5 if interested) |
| Sorting | ||
| L8 | Sorting I: heaps | CLRS, sections 2.1-2.3 and 6.1-6.2 |
| L9 | Sorting II: heaps | CLRS, sections 6.1-6.4 |
| L10 | Sorting III: lower bounds, linear-time sorting | CLRS, sections 8.1-8.4 |
| L11 | Sorting IV: stable sorting, radix sort | |
| Searching | ||
| L12 | Searching I: graph search, representations, and applications | CLRS, sections 22.1-22.3 and B.4 |
| L13 | Searching II: breadth-first search and depth-first search | CLRS, sections 22.2-22.3 |
| L14 | Searching III: topological sort and NP-completeness | CLRS, sections 22.4 and 34.1-34.3 (at a high level) |
| Shortest paths | ||
| L15 | Shortest paths I: intro | CLRS, chapter 24 (intro) |
| L16 | Shortest paths II: Bellman-Ford | |
| L17 | Shortest paths III: Dijkstra | CLRS, sections 24.2-24.3 |
| L18 | Shortest paths IV: Dijkstra speedups |
|
| Dynamic programming | ||
| L19 | Dynamic programming I: memoization, Fibonacci, Crazy Eights, guessing | CLRS, chapter 15 |
| L20 | Dynamic programming II: longest common subsequence, parent pointers | |
| L21 | Dynamic programming III: text justification, parenthesization, knapsack, pseudopolynomial time, Tetris training | |
| L22 | Dynamic programming IV: piano fingering, structural DP (trees), vertex cover, dominating set, and beyond | For fun, see papers on piano fingering and polyphonic piano fingering via DP: Parncutt, Richard, et al. "An Ergonomic Model of Keyboard Fingering for Melodic Fragments." Music Perception 14, no. 4 (1997): 341-382. Al Kasimi, Alia, Eric Nichols, and Christopher Raphael. "A Simple Algorithm for Automatic Generation of Polyphonic Piano Fingerings." In Proceedings of the 8th International Conference on Music Information Retrieval, 2007, pp. 355-356. For fun, watch the Metamorphosis of the Cube video, which illustrates a folding DP. |
| Numerics | ||
| L23 | Numerics I | |
| L24 | Numerics II | |
| Beyond 6.006 | ||
| L25 | Beyond 6.006: follow-on classes, geometric folding algorithms | |
When you click the Amazon logo to the left of any citation and purchase the book (or other media) from Amazon.com, MIT OpenCourseWare will receive up to 10% of this purchase and any other purchases you make during that visit. This will not increase the cost of your purchase. Links provided are to the US Amazon site, but you can also support OCW through Amazon sites in other regions.