| Homework 1 | released on 1/15 | due on |
| Homework 2 | released on 1/22 | due on 1/29 |
| Homework 3 | released on 1/29 | due on 2/5 |
| Homework 4 | released on 2/5 | due on 2/12 |
| Homework 5 | released on 2/12 | due on 2/26 |
| Homework 6 | released on 2/26 | due on 3/5 |
| Homework 7 | released on |
due on |
| Homework 8 | released on 3/19 | due on 3/26 |
| Homework 9 | released on 3/26 | due on 4/2 |
| Homework 10 | released on 4/2 | due on |
| Homework 11 | released on |
due on 4/25 |
| Homework 12 | released on |
Optional |
| Lecture | Date | Topic | Scribe Notes | References |
| Introduction | ||||
| 1 | We 1/10 | History of Algorithms; Asymptotic Notation; Worst-case Analysis | Notes | DPV: 0, 2 KT: 2 CLRS: 1, 2, 3, 4 |
| Algorithm Design Techniques | ||||
| Mo 1/15 | Martin Luther King, Jr. Holiday: No class | |||
| We 1/17 | School closed due to snow | |||
| 2 | Mo 1/22 | Divide and Conquer: Binary Search, Quick Sort, Merge Sort, Integer Multiplication, Linear-time Selection. | Notes | DPV: 2 KT: 5 CLRS: 4, 7, 8, 9, 28 |
| 3 | We 1/24 | |||
| 4 | Mo 1/29 | Greedy Algorithms: Interval Scheduling, Interval Coloring, Fractional Knapsack, Huffman codes | Notes | DPV: 5 KT: 4 CLRS: 16 |
| 5 | We 1/31 | |||
| 6 | Mo 2/5 | Dynamic Programming: Longest Increasing Subsequence, 0-1 Knapsack, Maximal Independent Set on Trees |
Notes | DPV: 6 KT: 6 CLRS: 15 |
| 7 | We 2/7 | |||
| Graph Algorithms | ||||
| 8 | Mo 2/12 | Graph Representations and Traversal: Depth First Search, Breadth First Search, Applications | Notes | DPV: 3 KT: 3 CLRS: 22 |
| 9 | We 2/14 | |||
| 10 | Mo 2/19 | Shortest Path: Bellman-Ford, Dijkstra, All-Pairs Shortest Paths |
Notes | DPV: 4.6, 6.6 KT: 6.8 CLRS: 24.1, 25 |
| We 2/21 | Midterm 1: Lectures 1-10 | |||
| 11 | Mo 2/26 | Minimum Spanning Tree: Kruskal, Prim, Union-Find Data Structure | Notes | DPV: 5 KT: 4 CLRS: 16, 23 |
| 12 | We 2/28 | |||
| 13 | Mo 3/5 | Amortization and Potential Method | Notes | DPV: 5 CLRS: 17 |
| 14 | We 3/7 | Network Flows: Augmenting Paths Algorithm, Max-Flow Min-Cut Theorem | Notes | DPV: 7 KT: 7 CLRS: 26 |
| Mo 3/12, We 3/14 | Spring Break: No Class | |||
| 15 | Mo 3/19 | Max Flows (continued from 3/7) Random Processes: Geometric Random Variables, Coupon Collector |
Notes | |
| Randomized Algorithms | ||||
| 16 | We 3/21 | Random Processes: Birthday Paradox, Monte Carlo and Las Vegas Algorithms | Notes | DPV: virtual chapter KT: 13 CLRS: 5, 11 |
| 17 | Mo 3/26 | |||
| 18 | We 3/28 | Hashing | Notes | DPV: virtual chapter KT: 13 CLRS: 5, 11 |
| Linear Programming | ||||
| 19 | Mo 4/2 | LP Formulations, Integer Linear Program | Notes | CLRS: 29 |
| 20 | We 4/4 | LP Duality | Notes | CLRS: 29 |
| 21 | Mo 4/9 | |||
| We 4/11 | Midterm 2: Lectures 11-21 | |||
| 22 | Mo 4/16 | LP Algorithms, Simplex Algorithms, Separation Oracles | ||
| Intractability | ||||
| 23 | We 4/18 | Complexity Classes P and NP, Polynomial-time Reductions | Notes | DPV: 8 KT: 8 CLRS: 34 |
| 24 | Mo 4/23 | Approximation Algorithms: Vertex Cover, Set Cover, TSP | Notes | DPV: 8, 9 KT: 8, 11 CLRS: 34, 35 |
| 25 | We 4/25 | |||
| 26 | ||||
| Mo 4/30 | Final Exam: All Lectures Time: Monday April 30, 2 - 5 pm Location: French Science 2231 |
| Discussion | Date | Topic | Discussion Notes |
| 1 | Fr 1/12 | Induction, big-Oh notation | Notes |
| 2 | Fr 1/19 | ||
| 3 | Fr 1/26 | Divide and Conquer | Notes |
| 4 | Fr 2/2 | Greedy Algorithms | Notes |
| 5 | Fr 2/9 | Dynamic Programming | Notes |
| 6 | Fr 2/16 | All Pairs Shortest Path | |
| 7 | Fr 2/23 | Strongly Connected Components | |
| 8 | Fr 3/2 | MST Algorithms | |
| 9 | Fr 3/9 | Ford-Fulkerson Review; Bipartite Matching | |
| 10 | Fr 3/23 | Resource Contention; Balls and Bins | |
| 11 | Fr 3/30 | Randomized Quicksort Revisited | Notes |
| 12 | Fr 4/6 | LP Duality. Dual Fitting | |
| 13 | Fr 4/13 | Bipartite Matching LP Rounding | |
| 14 | Fr 4/20 | NP-hardness: Longest Path, Dominating Set |