| Homework 1 | released on 1/11 | due on 1/18 |
| Homework 2 | released on 1/18 | due on 1/25 |
| Homework 3 | released on 1/25 | due on 2/1 |
| Homework 4 | released on 2/1 | due on 2/8 |
| Homework 5 | released on 2/8 | due on 2/15 |
| Homework 6 | released on 2/15 | due on 2/27 |
| Homework 7 | released on 2/27 | due on 3/6 |
| Homework 8 | released on 3/6 | due on 3/22 |
| Homework 9 | released on 3/22 | due on 4/3 |
| Homework 10 | released on 4/3 | due on 4/17 |
| Homework 11 | released on 4/17 | due on |
| Homework 12 | released on 4/26 | Optional |
| Lecture | Date | Topic | Scribe Notes | References |
| Introduction | ||||
| 1 | We 1/11 | History of Algorithms; Asymptotic Notation; Worst-case Analysis | Notes | DPV: 0, 2 KT: 2 CLRS: 1, 2, 3, 4 |
| Algorithm Design Techniques | ||||
| Mo 1/16 | Martin Luther King, Jr. Holiday: No class | |||
| 2 | We 1/18 | Divide and Conquer: Binary Search, Quick Sort, Merge Sort, Integer Multiplication, Linear-time Selection. Guest lecturer on 1/18: Prof. Pankaj Agarwal |
Notes | DPV: 2 KT: 5 CLRS: 4, 7, 8, 9, 28 |
| 3 | Mo 1/23 | |||
| 4 | We 1/25 | Greedy Algorithms: Interval Scheduling, Interval Coloring, Fractional Knapsack, Huffman codes | Notes | DPV: 5 KT: 4 CLRS: 16 |
| 5 | Mo 1/30 | |||
| 6 | We 2/1 | Dynamic Programming: Longest Increasing Subsequence, 0-1 Knapsack, Maximal Matching on Trees, Maximal Independent Set on Trees |
Notes | DPV: 6 KT: 6 CLRS: 15 |
| 7 | Mo 2/6 | |||
| Graph Algorithms | ||||
| 8 | We 2/8 | Graph Representations and Traversal DFS, BFS and their applications From BFS to shortest path |
Notes | DPV: 3, 4.6, 6.6 KT: 3 CLRS: 22 |
| 9 | Mo 2/13 | |||
| 10 | We 2/15 | |||
| 11 | Mo 2/20 | |||
| We 2/22 | Midterm 1: Lectures 1-11 | |||
| 12 | Mo 2/27 | Shortest Path: Dijkstra's and Bellman-Ford; MST properties | Notes1 | DPV: 4 KT: 24, 25 |
| Notes2 | ||||
| 13 | We 3/1 | MST: Prim's and Kruskal's, The Union-Find Data Structure | Notes1 | KT: 23 |
| Notes2 | ||||
| 14 | Mo 3/6 | The Union-Find data structure and amortized analysis Network Flows |
Notes | KT: 7 CLRS: 26 |
| 15 | We 3/8 | |||
| Tu 3/13, Th 3/15 | Spring Break: No Class | |||
| 16 | Mo 3/20 | Maxmimum flow and minimum cut | Notes | KT: 7 CLRS: 26 |
| Randomized Algorithms | ||||
| 17 | We 3/22 | Monte Carlo algorithms | Notes | DPV: virtual chapter KT: 13 CLRS: 5, 11 |
| 18 | Mo 3/27 | Las Vegas algorithms | Notes | DPV: virtual chapter KT: 13 CLRS: 5, 11 |
| 19 | Mo 3/29 | Hashing (and preliminaries of prime field) | Notes | DPV: virtual chapter KT: 13 CLRS: 5, 11 |
| 20 | Mo 4/3 | |||
| Linear Programming | ||||
| 20 | Mo 4/3 | LP Formulations, Integer Linear Program | Notes | DPV: 7 CLRS: 29 |
| 21 | We 4/5 | LP Duality | Notes | DPV: 7 CLRS: 29 |
| 22 | Mo 4/10 | LP Algorithms, Simplex Algorithms, Separation Oracles | DPV: 7 CLRS: 29 |
|
| We 4/12 | Midterm 2: Lectures 12-22 | |||
| 23 | Mo 4/17 | Separation Oracles, Ellipsoid algorithms | Notes | DPV: 7 CLRS: 29 |
| 24 | We 4/19 | LP continued: Separation Oracles, Integrality Gap, Interior Point Methods | Notes | DPV: 7 CLRS: 29 |
| Intractability | ||||
| 25 | Mo 4/24 | Complexity: P, NP and NP-Hardness, Polynomial time reduction | Notes | DPV: 8, 9 KT: 8, 11 CLRS: 34, 35 |
| 26 | We 4/26 | Approximation algorithms | Notes | DPV: 8, 9 KT: 8, 11 CLRS: 34, 35 |
| Mo 5/1 | Final Exam: All Lectures Time: May 1, 9am-12pm Location: French Science 2231 |
| Discussion | Date | Topic | Discussion Notes |
| 1 | Fr 1/13 | Induction, big-Oh notation | Notes |
| 2 | Fr 1/20 | Divide and Conquer | Notes |
| 3 | Fr 1/27 | Greedy Algorithms | Notes |
| 4, 5 | Fr 2/3, Fr 2/10 | Dynamic Programming | Notes |
| 6 | Fr 2/17 | DFS and BFS | Notes |
| 7 | Fr 2/24 | Shortest Path | Notes |
| 8 | Fr 3/24 | Probability | Notes |
| 9 | Fr 3/31 | Randomized Quicksort and Collision Handling | Notes |
| 10 | Fr 4/7 | LP Duality | Notes |
| 11 | Fr 4/14 | LP Separation Oracle example | Notes |