Assigned readings are from the course textbook:
Cormen, Thomas, Charles Leiserson, et al. Introduction to Algorithms. 3rd ed. MIT Press, 2009. ISBN: 9780262033848. [Preview with Google Books]
[L] = Lecture, [R] = Recitation
Session | TOPICS | KEY DATES |
---|---|---|
L1 | Overview, Interval Scheduling | Assignment 1 Out |
L2 | Divide & Conquer: Convex Hull, Median Finding | |
R1 | Divide & Conquer: Smarter Interval Scheduling, Master Theorem, Strassen’s Algorithm | |
L3 | Divide & Conquer: FFT | Assignment 1 Due, Assignment 2 Out |
R2 | B-trees | |
L4 | Divide & Conquer: Van Emde Boas Trees | Assignment 2 Due, Assignment 3 Out |
R3 | Amortization: Union-find | |
L5 | Amortization: Amortized Analysis | |
L6 | Randomization: Matrix Multiply, Quicksort | Assignment 3 Due, Assignment 4 Out |
R4 | Randomization: Randomized Median | |
L7 | Randomization: Skip Lists | |
L8 | Randomization: Universal & Perfect Hashing | Assignment 4 Due |
R5 | Dynamic Programming: More Examples | |
L9 | Augmentation: Range Trees | |
L10 | Dynamic Programming: Advanced DP | Quiz 1, Assignment 5 Out One Day After |
L11 | Dynamic Programming: All-pairs Shortest Paths | |
L12 | Greedy Algorithms: Minimum Spanning Tree | |
R6 | Greedy Algorithms: More Examples | Assignment 5 Due, Assignment 6 Out |
L13 | Incremental Improvement: Max Flow, Min Cut | |
L14 | Incremental Improvement: Matching | Assignment 6 Due, Assignment 7 Out |
R7 | Incremental Improvement: Applications of Network Flow & Matching | |
L15 | Linear Programming: LP, Reductions, Simplex | |
L16 | Complexity: P, NP, NP-completeness, Reductions | Assignment 7 Due |
R8 | Complexity: More Reductions | |
L17 | Complexity: Approximation Algorithms | Quiz 2 Two Days After, Assignment 8 Out Three Days After |
L18 | Complexity: Fixed-parameter Algorithms | |
R9 | Complexity: Approximations | Assignment 8 Due, Assignment 9 Out |
L19 | Synchronous Distributed Algorithms: Symmetry-breaking. Shortest-paths Spanning Trees | |
L20 | Asynchronous Distributed Algorithms: Shortest-paths Spanning Trees | Assignment 9 Due, Assignment 10 Out |
R10 | More Distributed Algorithms | |
L21 | Cryptography: Hash Functions | |
L22 | Cryptography: Encryption | |
R11 | Cryptography: More Primitives | Assignment 10 Due |
L23 | Cache-oblivious Algorithms: Medians & Matrices | |
L24 | Cache-oblivious Algorithms: Searching & Sorting |