6.006: Introduction to Algorithms
- Introduction
- Binary Search Trees
- Hashing
- Sorting
- Graphs and Search
- Dynamic Programming
- Lecture 18, Dynamic Programming I: Memoization, Fibonacci, Crazy Eights
- Lecture 19, Dynamic Programming II: Shortest Paths, Longest Common Subsequence, Parent Pointers
- Lecture 20, Dynamic Programming III: Text Justification, Knapsack, Pseudopolynomial Time
- Lecture 21, Dynamic Programming IV: Piano Fingering, Structural DP (Trees), Vertex Cover, Dominating Set, Treewidth
- Numerics
- Lecture 22, Numerics I
- Lecture 23, Numerics II
- Lecture 24, Numerics III
- NP-completeness
- Lecture 25, NP-completeness
- Conclusion