CS 312
Algorithm Design

Course Schedule

The following publications are referred to on the schedule below:

Kleinberg
Jon Kleinberg and Éva Tardos, Algorithm Design, Addison-Wesley, 2006.
Jan. 25: Stable matching
Readings
Kleinberg, Chapter 1
Slides
Homework 1
Jan. 30: Efficiency
Readings
Kleinberg, 2.1-2.2
Slides
Homework 2
API for starter code
StableMatcher.java
Chooser.java
Chosen.java
Feb. 1: Asymptotic bounds on running time
Readings
Kleinberg, 2.3-2.5
Slides
Feb. 6: Introduction to graphs, Breadth-First Search, Depth-First Search
Readings
Kleinberg, 3.1-3.2
Slides
Homework 3
Feb. 8: Implementation of BFS and DFS
Readings
Kleinberg, 3.3-3.4
Slides
Feb. 13: O() Analysis of BFS and DFS, Bipartiteness, Topological sort
Readings
Kleinberg, 3.5-3.6
Feb. 15: Greedy Algorithms: Interval Scheduling
Readings
Kleinberg, 4.1
Feb. 20: Greedy Algorithms: Interval Partitioning, Minimizing Maximum Lateness
Readings
Kleinberg, 4.2
Feb. 22: Dijkstra's Algorithm
Readings
Kleinberg, 4.4
Feb. 27: Minimum Spanning Trees
Readings
Kleinberg, 4.5-4.6
Feb. 29: Divide and Conquer Intro, Recurrence relations
Readings
Kleinberg, 5.1-5.2
Mar. 5: Midterm 1 - no class
Mar. 7: Counting Inversions
Readings
Kleinberg, 5.3
Mar. 12: Closest Pair of Points
Readings
Kleinberg, 5.4
Mar. 14: Dynamic Programming
Readings
Kleinberg, 6.1-6.2
Mar. 26: Segmented Least Squares, Subset Sum
Readings
Kleinberg, 6.3-6.4
Mar. 28: Sequence Alignment
Readings
Kleinberg, 6.6-6.7
Apr. 2: Network Flow
Readings
Kleinberg, 7.1
Apr. 4: Maximum Flow / Minimum Cut
Readings
Kleinberg, 7.2-7.3
Apr. 9: Midterm 2
Apr. 11: Bipartite Matching, Circulation with Demands
Readings
Kleinberg, 7.5, 7.7
Apr. 16: Network Flow Applications
Readings
Kleinberg, 7.8-7.9
Apr. 18: Polynomial Reducibility
Readings
Kleinberg, 8.1-8.2
Apr. 23: NP-Completeness
Readings
Kleinberg, 8.3-8.4
Apr. 25: Sequencing Problems and Partitioning Problems
Readings
Kleinberg, 8.5-8.6
Apr. 30: Algorithms and CS