Lecture Topics

8/23—Introduction

Reading: §1.2

8/25—Stable matching: Gale–Shapley algorithm

Reading: §1.1


8/28—Greedy Algorithms I: Interval scheduling

Reading: §4.1

8/30—Greedy Algorithms II: Scheduling to minimize lateness

Reading: §4.2

8/31—Homework 1 due (on data structures and stable matching)

9/1—Greedy Algorithms III: Minimum spanning tree

Reading: §4.5


 

9/4—Labor Day, no class

9/6—Dynamic Programming I: weighted interval scheduling

Reading: §6.1-6.2

9/7—Homework 2 due (on greedy algorithms)

9/8—Dynamic Programming II: segmented least squares

Reading: §6.3

9/11—Dynamic programming III: Sequence Alignment

Reading: §6.6

9/13—Dynamic programming IV: Knapsack Algorithm

Reading: §6.4

9/14—Homework 3 due (on dynamic programming I)

9/15—Dynamic programming V: Bellman Ford Algorithm

Reading: §6.8


9/18—Divide and Conquer I: Integer Multiplication

Reading: §5.2 and 5.5

9/20—Randomized Divide and Conquer: Median Finding

Reading: §13.5

9/21—Homework 4 due (on dynamic programming II +probability)

9/22—Radomized Algorithms II: Finding a min-cut in a graph

Reading: §13.2

9/25—more on min cuts in a graph, and probabilities and expectations

Reading: §13.2 and 13.3

9/27—Divide and Conquer III: Sequence Alignment in Linear Space

Reading: §6.7

9/28—Homework 5 due (on divide and counquer and randomized algorithms)

9/29—Randomized Algorithms III: Hashing

Reading: §13.6

10/2—Randomized Algorithms IV: Prime Testing

Reading: Supplementary Notes


10/4—Network Flows I: Introduction

Reading: §7.1

10/6—Network Flows II: Flows and Cuts

Reading: §7.2

10/9-10—Fall Break

10/11—Prelim Review

10/12—Prelim at 7:30pm

10/13—Network Flows III: running time and Application to Matching

Reading: §7.5

10/16—Network Flows IV: Applications of min cuts

Reading: §7.10

10/18—Network Flows V: extensions of flow, and other applications

Reading: §7.7

10/19—Homework 6 due (on flows and cuts)


10/20—NP-Completeness I: Reductions between problems: Independent Set and Vertex Cover

Reading: §8.1

10/23—NP-Completeness II: More Reductions: Satisfiability (SAT) and definition of NP

Reading: §8.2 and 8.3

10/25—NP-Completeness III: Proving problems NP-complete, Clique, Set Cover, 3-SAT

Reading: §8.4

10/26—Homework 7 due (flows applications and reduction)

10/27—NP-Completeness IV: the Traveling Salesman Problem (TSP)

Reading: §8.5

10/30—NP-Completeness V: Partitioning problems

Reading: §8.6

11/1—NP-Completeness V: Subset Sum

Reading: §8.8

11/2—Homework 8 due (on NP-completeness)

11/3—NP and co-NP and other complexity classes

Reading: §8.9 and 8.10

11/6—Prelim Review

11/7—Prelim at 7:30pm


11/8—Introduction to Turing Machines

Reading: Sections 1 and 2 from the Notes on Turing Machines

11/10—Universal Turing Machines

Reading: Sections 3 from the Notes on Turing Machines

11/13—Undecidable Problems

Reading: Sections 4 from the Notes on Turing Machines

11/15—SAT is NP-complete

Reading: Sections 5 from the Notes on Turing Machines

11/16—Homework 9 due (on Computability)


11/17-Approximation Algorithm I: Simple Greedy Algorithms

Reading: Introduction to Chapter §11 and Section 2 of the notes on Greedy Approximation Algorithms

11/20-Approximation Algorithm II: Using Linear Programming

Reading: §11.6

11/27-Approximation Algorithm III: Center Selection

Reading: §11.2

11/29-Approximation Algorithm IV: Online Matching

Reading: Section 1 of the notes on Greedy Approximation Algorithms

11/30—Homework 10 due (on Approximation Algorithms)


12/1-Final Review

12/11 at 2-4:30pm—Final exam