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