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

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

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