| Date | Topic | Reading |
| Sep 27 | Analyzing algorithms | Chapter 0 |
| Oct 2 | Graphs; undirected depth-first search | Chapter 3.1, 3.2 |
| Oct 4 | DFS in directed graphs | Chapter 3.3 |
| Oct 9 | DAGs; Strongly connected components | Chapter 3.3, 3.4 |
| Oct 11 | Breadth-first search | Chapter 4.1, 4.2, 4.3 |
| Oct 16 | Dijkstra's algorithm | Chapter 4.4, 4.5 |
| Oct 18 | Dijkstra's algorithm and priority queues | Chapter 4.4, 4.5 |
| Oct 23 | Class canceled due to fires | |
| Oct 25 | Class canceled due to fires | |
| Oct 30 | Midterm 1 | |
| Nov 1 | Bellman-Ford algorithm | Chapter 4.6, 4.7 |
| Nov 6 | Divide-and-conquer algorithms | Chapter 2 (omit 2.6) |
| Nov 8 | Divide-and-conquer algorithms | Chapter 2 (omit 2.6) |
| Nov 13 | Dynamic programming | Chapter 6 |
| Nov 15 | Dynamic programming | Chapter 6 |
| Nov 20 | Midterm 2 | |
| Nov 27 | Flows and matchings | Chapter 7.2, 7.3 | Nov 29 | Flows and matchings | Chapter 7.2, 7.3 |
| Dec 4 | Linear programming | Chapter 7.1 |
| Dec 6 | Intractability | Chapter 8 |