# Lecture Topics

This schedule is tentative, subject to change.

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

*Reading:* §1.1

## 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

## 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

## 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

## 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