| LEC # | TOPICS | SUPPORTING FILES | 
|---|---|---|
| Introduction and document distance | ||
| L1 | Introduction and document distance (PDF) | Document distance (docdist{1,2,3,4}.py) | 
| L2 | More document distance, mergesort (PDF) | Document distance (docdist{5,6}.py) | 
| Binary search trees | ||
| L3 | Airplane scheduling, binary search trees (PDF - 1.4 MB) | Binary search trees (including code) | 
| L4 | Balanced binary search trees (PDF - 1.4 MB) | See binary search trees for AVL code | 
| Hashing | ||
| L5 | Hashing I: chaining, hash functions (PDF) | Document distance (docdist-dict.py) | 
| L6 | Hashing II: table doubling, Karp-Rabin (PDF) | |
| L7 | Hashing III: open addressing (PDF - 1.1 MB) | |
| Sorting | ||
| L8 | Sorting I: heaps (PDF - 1.0 MB) | |
| L9 | Sorting II: heaps (PDF) | |
| L10 | Sorting III: lower bounds, linear-time sorting (PDF) | |
| L11 | Sorting IV: stable sorting, radix sort (PDF - 1.0 MB) | |
| Searching | ||
| L12 | Searching I: graph search, representations, and applications (PDF - 1.6 MB) | Simple Python code for graphs (PY) | 
| L13 | Searching II: breadth-first search and depth-first search (PDF - 1.3 MB) | |
| L14 | Searching III: topological sort and NP-completeness (PDF) | |
| Shortest paths | ||
| L15 | Shortest paths I: intro (PDF - 1.0 MB) | |
| L16 | Shortest paths II: Bellman-Ford (PDF - 1.1 MB) | |
| L17 | Shortest paths III: Dijkstra (PDF) | |
| L18 | Shortest paths IV: Dijkstra speedups (PDF - 1.2 MB) | |
| Dynamic programming | ||
| L19 | Dynamic programming I: memoization, Fibonacci, Crazy Eights, guessing (PDF) | |
| L20 | Dynamic programming II: longest common subsequence, parent pointers (PDF) | |
| L21 | Dynamic programming III: text justification, parenthesization, knapsack, pseudopolynomial time, Tetris training (PDF) | |
| L22 | Dynamic programming IV: piano fingering, structural DP (trees), vertex cover, dominating set, and beyond (PDF) | |
| Numerics | ||
| L23 | Numerics I (PDF) | Demos: square root of 2, chord length Source code (ZIP) (This zip file includes: 14 .js files, 2 .html files, 1 .css file, and 1 .project file.) | 
| L24 | Numerics II (PDF) | |
| Beyond 6.006 | ||
| L25 | Beyond 6.006: follow-on classes, geometric folding algorithms (PDF) | If you are interested in folding algorithms, you can look at the previous offering of 6.885 and the associated textbook. |