| Date | Meeting | Material covered | Required reading | Other materials |
| 9/9 | Lecture 1 | Course introduction; array with fast initialization | slides | |
| 9/11 | Lecture 2 | Finish initializable arrays; logs and asymptotic order | array slides; logs and order slides | |
| 9/12 | Lecture 3 | Induction practice; AVL trees have logarithmic height | Review BSTs | slides |
| 9/13 | Lecture 4 | Maintaining AVL tree balance; introducing recurences | AVL slides; recurrence slides | |
| 9/16 | Lecture 5 | Recurrences and solving them | Section 2.3 | slides |
| 9/18 | Lecture 6 | Maximizing profit; grade-school multiplication | slides | |
| 9/19 | Lecture 7 | Karatsuba's algorithm; practice problems | slides | |
| 9/20 | Lecture 8 | Linear-time selection; practice problems | Section 9.3 | slides |
| 9/23 | Lecture 9 | Multithreaded algorithms; spawn/sync; parallel for | Chapter 26 intro and Section 26.1 part 1 (pp. 748-759; up to "scheduling") | slides |
| 9/25 | Lecture 10 | Race conditions; multithreaded practice problems | Finish Section 26.1 | slides |
| 9/26 | Lecture 11 | Parallel merge and mergesort | slides | |
| 9/27 | Lecture 12 | Dynamic programming | Section 14.1 | slides |
| 9/30 | Lecture 13 | Dynamic programming practice problems | slides | |
| 10/2 | Lecture 14 | Dynamic programming: Longest common subsequence, party planning | Section 14.4 | slides |
| 10/3 | No class - work on Exam 1 | |||
| 10/4 | Lecture 15 | Matrix chain multiplication | slides | |
| 10/7 | Lecture 16 | More practice: Subset sum, making change | slides | |
| 10/9 | Lecture 17 | Graphs; DFS/BFS | slides | |
| 10/10 | Lecture 18 | Shortest path (Dijkstra's alg); MST; choosing a graph problem | slides; handout | |
| 10/11 | Lecture 19 | More graph applications; computing an MST | slides; handout | |
| 10/14 | Lecture 20 | Topological sorting; network flow and applications | top sort slides; network flow slides | |
| 10/16 | No class - Fall Institute Day | |||
| 10/17 | Lecture 21 | More network flow applications; Fork-Fulkerson; max flow-min cut | slides | |
| 10/18 | Lecture 22 | Finishing network flow; greedy algorithms (activity selection) | flow slides; greed slides | |
| 10/21 | No class - work on Exam 2 | |||
| 10/23 | Lecture 23 | More greedy algorithms: Scheduling to minimize lateness and flow, making change, start of Huffman encoding | slides | |
| 10/24 | Lecture 24 | More greedy algorithms: Huffman encoding, scheduling to meet deadlines w/ release times and preemption | slides | |
| 10/25 | Lecture 25 | Amortized analysis | slides | |
| 10/28 | Lecture 26 | Union-find (disjoint set data structure) | slides; notes | |
| 10/30 | Lecture 27 | Analysis of Move-to-front; decision problems and reductions; CIRCUIT SAT | move-to-front slides; hardness slides | |
| 10/31 | Lecture 28 | Transitivity of poly-time reductions; More problems: SAT, 3SAT, CLIQUE, INDEPDENDENT SET | slides | |
| 11/1 | Lecture 29 | P and NP; NP-completeness; more hard problems: VERTEX COVER, SET COVER, HAM CYCLE | slides | |
| 11/4 | Lecture 30 | More NP-complete problems: HAM PATH, LONGEST PATH, TSP, SUBSET SUM | slides | |
| 11/6 | Lecture 31 | |||
| 11/7 | Lecture 32 | |||
| 11/8 | Lecture 33 | |||
| 11/11 | Lecture 34 | |||