Calendar

Assigned readings are from the course textbook:
Buy at MIT Press 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