Lecture Topics

This schedule is tentative, subject to change.

1/22 — Introduction and Stable matching I: Gale–Shapley algorithm

Reading: §1.1

Problem Set 1 will be due Thursday, Feb 6 at 11:59pm

1/24 — Stable matching II: Analysis of Gale–Shapley

Reading: §1.1


1/27 — Greedy algorithms I: Interval Scheduling

Reading: §4.1 (suggested reading: §4.2)

1/29 — Greedy algorithms II: Minimum Spanning Tree

Reading: §4.5

1/31 — Greedy algorithms III: Huffman Codes and Data Compression

Reading: §4.8


2/3 — Dynamic programming I: Weighted Interval Scheduling,

Reading: §6.1

2/5 — Dynamic programming II: Segmented Least Squares

Reading: §6.3

Problem Set 2 due Thursday, Feb 13, 11:59pm

2/7 — Dynamic programming III: Sequence Alignment

Reading: §6.6

2/10 — Dynamic programming IV: Shortest path in a graph I

Reading: §6.8

2/12 — Dynamic programming V: Shortest path in a graph II

Reading: §6.8


Problem Set 3 due Thursday, Feb 27 11:59pm

2/14 — Divide and Conquer I: Multiplying Integers

Reading: §5.5

2/17 — Divide and Conquer II ; Randomized Algorithms I: Median Finding

Reading: §13.5

2/19, Prelim 1 (in class)

2/21 — Probability applied to randomized algorithms recitation

2/24, Feb break, no lecture

2/26 — Randomized Algorithms II: Hashing: A randomized dictionary

Reading: §13.6

Problem Set 4 due Saturday, Mar 7, 11:59pm

2/28 — Randomized Algorithms III: Universal Hashing II

Reading: §13.6

3/2 — Randomized Algorithms IV: Prime testing

Reading: Supplementary Notes


3/4 — Randomized Algorithms IV: Prime testing continued.

Reading: Supplementary Notes

Problem Set 5 due Thursday, Mar 12 11:59pm

3/6 — Network Flow I: Definition and Ford-Fulkerson Algorithm

Reading: §7.1


3/9 — Network Flow II: Max-Flow running time and Cut capacities

Reading: §7.2

3/11 — Network Flow III: Max-Flow=Min-Cut and an Application

Reading: §7.2, 7.5

Problem Set 6 due Thursday, Mar 26 11:59pm

3/13 — Network Flow IV: More Applications to Max-Flow

Reading: §7.5, 7.6


3/16 — Network Flow V: Applications to Min-Cuts

Reading: §7.11

3/18 — NP-Completeness I: Introduction to Hardness Reductions, P and NP, and First Reductions

Reading: §8.1, 8.3

3/20, Prelim 2 (in class)

3/23 — NP-Completeness II: NP, NP-complete, SAT as an NP-complete problem

Reading: §8.2, 8.4

3/25 — NP-Completeness III: Independent set is NP-complete

Reading: §8.2

Problem Set 7 due Thursday, Apr 9 11:59pm

3/27 — NP-Completeness IV: Graph Coloring

Reading: §8.7

3/30, 4/1, 4/3, Spring break, no lecture

4/6 — NP-Completeness V: Sequencing problems

Reading: §8.5


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

Reading: §8.9


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

Reading: Lecture Notes on Computability §1-5

4/13 — Computability Theory II: Undecidability via reduction

Reading: Lecture Notes on Computability §7

4/15 — Computability Theory III: Diagonalization and Undecidability of the Halting Problem

Reading: Lecture Notes on Computability §6

Problem Set 8 due Thursday, Apr 23 11:59pm

4/17, Prelim 3 (in class)

4/20 — Computability Theory IV: Turing Machines

Reading: Lecture Notes on Computability §10


4/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

Problem Set 9 due Thursday, Apr 30 11:59pm

4/24 — Approximation Algorithms II: Using Linear Programming

Reading: §11.6


4/27 — Approximation Algorithms III: Set Cover

Reading: § 11.3

4/29 — Approximation Algorithms IV: Center Selection

Reading: §11.2

5/1 — Online Algorithms and Algorithms with Selfish Users

Reading: Online Matching Notes and §12.7

5/4 — TBD