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 Saturday, Feb 29 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 Thursday, Mar 5, 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, Apr 9 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

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

Reading: §7.5


Cancelled — Network Flow V: Applications to Min-Cuts

Reading: §7.11

4/6 — NP-Completeness I: Introduction to Hardness Reductions

Reading: §8.1

4/8 — NP-Completeness II: Independent Set and Vertex Cover

Reading: §8.1

4/10 — NP-Completeness III: 3SAT

Reading: §8.2

4/13 — NP-Completeness IV: P vs NP

Reading: §8.3

4/15 — NP-Completeness V: More NP Completeness

Reading: §8.4


4/15 10:00AM -4/18 11:59AM, Prelim 2 (Take-home)

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

4/20 — NP-Completeness VI: Sequencing Problems

Reading: §8.5

4/22 — NP-Completeness VII: Co-NP

Reading: §8.9


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

Reading: Lecture Notes on Computability §1-5

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

4/27 — Computability Theory II: Undecidability via reduction

Reading: Lecture Notes on Computability §7

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

Reading: Lecture Notes on Computability §6

5/1 — Computability Theory IV: Turing Machines (Optional guest lecture)

Reading: Lecture Notes on Computability §10

Problem Set 8 due Thursday, May 7 11:59pm

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

5/6 — Approximation Algorithms II: Using Linear Programming

Reading: §11.6

5/8 — Approximation Algorithms III: Set Cover

Reading: § 11.3

Problem Set 9 due Thursday, May 14 11:59pm

5/11 — Approximation Algorithms IV: Set Cover (continued)

Reading: § 11.3