Lecture Topics

This schedule is tentative, subject to change

8/30 — Introduction and Stable matching I: Gale–Shapley algorithm

Reading: §1.1

Problem Set 1 will be due Thursday, Sept 12th at 11:59pm

9/2 — Labor Day, no class

9/4 — Stable matching II: Analysis of Gale–Shapley

Reading: §1.1


9/6 — Greedy algorithms I: Interval Scheduling

Reading: §4.1 (suggested reading: §4.2)

Problem Set 1 due Thursday, Sept 12th 11:59pm

9/9 — Greedy algorithms II: Minimum Spanning Tree

Reading: §4.5

9/11 — Greedy algorithms III: Huffman Codes and Data Compression

Reading: §4.8


9/13 — Dynamic programming I: Weighted Interval Scheduling,

Reading: §6.1

Problem Set 2 due Thursday, Sept 19th 11:59pm

9/16 — Dynamic programming II: Segmented Least Squares

Reading: §6.3

9/18 — Dynamic programming III: Sequence Alignment

Reading: §6.6

9/20 — Dynamic programming IV: Shortest path in a graph I

Reading: §6.8

Problem Set 3 due Thursday, Sept 26th 11:59pm

9/23 — Dynamic programming V: Shortest path in a graph II

Reading: §6.8


9/25 — Divide and Conquer I: Multiplying Integers

Reading: §5.5

9/27 — Divide and Conquer II ; Randomized Algorithms I: Median Finding

Reading: §13.5

Problem Set 4 due Tuesday, Oct 8th 11:59pm no late days

9/30 — Randomized Algorithms II: Hashing: A randomized dictionary

Reading: §13.6

10/2 — Randomized Algorithms III: Universal Hashing II

Reading: §13.6

10/4 — Divide and Conquer III: Fast Fourier Transform

Reading: §5.6

10/7 — Randomized Algorithms IV: Prime testing

Reading: Supplementary Notes


10/9 — Randomized Algorithms IV: Prime testing continued.

Reading: Supplementary Notes

10/11 — Network Flow I: Definition and Ford-Fulkerson Algorithm

Reading: §7.1


10/14 — Fall Break, no class

10/16 — Review for Prelim 1


10/18 — Network Flow II: Max-Flow running time and Cut capacities

Reading: §7.2

Problem Set 5 due Thursday, Oct 24th 11:59pm

10/21 — Network Flow III: Max-Flow=Min-Cut and an Application

Reading: §7.2, 7.5

10/23 — Network Flow IV: More Applications to Max-Flow

Reading: §7.5, 7.6


10/25 — Network Flow V: Applications to Min-Cuts

Reading: §7.11 Problem Set 6 due Thursday, Oct 31st 11:59pm

10/28 — NP-Completeness I: Introduction to Hardness Reductions, P and NP, and First Reductions

Reading: §8.1, 8.3

10/30 — NP-Completeness II: NP, NP-complete, SAT as an NP-complete problem

Reading: §8.2, 8.4

11/1 — NP-Completeness III: Independent set is NP-complete

Reading: §8.2

Problem Set 7 due Thursday, Nov 7th 11:59pm no late days

11/4 — NP-Completeness IV: Graph Coloring

Reading: §8.7

11/6 — NP-Completeness V: Sequencing problems

Reading: §8.5


11/8 — NP, co-NP, and other complexity classes:

Reading: §8.9


11/11 — Review for Prelim 2


11/13 — Computability Theory I: SJava, a simple model of computation and the Halting Problem

Reading: Lecture Notes on Computability §1-5

11/15 — Computability Theory II: Undecidability via reduction

Reading: Lecture Notes on Computability §7

Problem Set 8 due Thursday, Nov 21st 11:59pm

11/18 — Computability Theory III: Diagonalization and Undecidability of the Halting Problem

Reading: Lecture Notes on Computability §6

11/20 — Computability Theory IV: Turing Machines

Reading: Lecture Notes on Computability §10


11/22 — Approximation Algorithms I: Greedy Algorithms

Reading: Introduction to Chapter §11, Notes for Greedy Approximation Algorithms for Knapsack and see also §6.4 and 8.8

11/25 — Approximation Algorithms II: Using Linear Programming

Reading: §11.6

Problem Set 9 due Thursday, Dec 5th 11:59pm

11/27,29 — Thanksgiving break, no class


12/2 — Class cancelled due to weather

12/4 — Approximation Algorithms III: Set Cover

Reading: § 11.3

12/6 — Approximation Algorithms IV: Center Selection

Reading: §11.2

12/9 — Online Algorithms and Algorithms with Selfish Users

Reading: Online Matching Notes and §12.7