- Lecture 1: Administrivia; Introduction; Analysis of Algorithms, Insertion Sort, Mergesort
- Lecture 2: Asymptotic Notation; Recurrences; Substitution, Master Method
- Lecture 3: Divide-and-Conquer: Strassen, Fibonacci, Polynomial Multiplication
- Lecture 4: Quicksort, Randomized Algorithms
- Lecture 5: Linear-time Sorting: Lower Bounds, Counting Sort, Radix Sort
- Lecture 6: Order Statistics, Median
- Lecture 7: Hashing, Hash Functions
- Lecture 8: Universal Hashing, Perfect Hashing
- Lecture 9: Relation of BSTs to Quicksort - Analysis of Random BST
- Lecture 10: Red-black Trees, Rotations, Insertions, Deletions
- Lecture 11: Augmenting Data Structures, Dynamic Order Statistics, Interval Trees
- Lecture 12: Skip Lists
- Lecture 13: Amortized Algorithms, Table Doubling, Potential Method
- Lecture 14: Competitive Analysis: Self-organizing Lists
- Lecture 15: Dynamic Programming, Longest Common Subsequence
- Lecture 16: Greedy Algorithms, Minimum Spanning Trees
- Lecture 17: Shortest Paths I: Properties, Dijkstra's Algorithm, Breadth-first Search
- Lecture 18: Shortest Paths II: Bellman-Ford, Linear Programming, Difference Constraints
- Lecture 19: Shortest Paths III: All-pairs Shortest Paths, Matrix Multiplication, Floyd-Warshall, Johnson
- Lecture 22: Advanced Topics
- Lecture 23: Advanced Topics (cont.)
- Lecture 24: Advanced Topics (cont.)
- Lecture 25: Advanced Topics (cont.) - Discussion of Follow-on Classes