Tentative Schedule

Date Topic Reading Problem sets
Sep 4
Stable matching; representative problems
KT 1.1-1.2
Sep 8
Algorithm efficiency; Stable matching implementation
KT 2.1-2.3
PS1 out
Sep 11
Asymptotic order of growth
KT 2.2, 2.4
DPV 0.3
Sep 15
Priority queues data structure
KT 2.5
DPV 4.5
Sep 18
Graphs and graph traversals
Graph traversal using stacks and queues
KT 3.1-3.3
DPV 3.1 - 3.3
PS1 due
PS2 out
Sep 22
DAGs and topological ordering
Strong connectivity in directed graphs
KT 3.5, 3.6
DPV 3.4
Sep 25
Greedy algorithms: Scheduling
KT 4.1
Sep 29
Shortest paths
KT 4.4
DPV 4.4 - 4.7
PS2 due
PS3 out
Oct 2
Minimum spanning trees
KT 4.5
DPV 5.1
Oct 6
Kruskal's algorithm implementation
KT 4.6
DPV 5.1
PS3 due
Oct 9
Midterm 1
PS4 out
Oct 13
Columbus Day, no class
Oct 16
Divide-and-conquer: Mergesort
KT 5.1
DPV 2.3
Oct 20
Solving recurrence relations
KT 5.1-5.2
DPV 2.2
Oct 23
Finding closest pair of points
KT 5.4
PS4 due
PS5 out
Oct 27
Dynamic programming: Weighted interval scheduling
KT 6.1-6.2
Oct 30
Shortest paths with negative weights
KT 6.8
DPV 4.6
Nov 3
Knapsack
Sequence alignment
KT 6.4, 6.6
DPV 6.3, 6.4
Nov 6
Network flows: Ford-Fulkerson algorithm
KT 7.1-7.3
DPV 7.2
PS5 due
PA out
Nov 10
Midterm 2 (tentative)
Nov 13
Maximum flow and minimum cuts
KT 7.1-7.3
Nov 17
Bipartite matching
Image segmentation
KT 7.5, 7.10
PS6 out
Nov 20
Flows and cuts: Project selection
KT 7.11
DPV 7.3
Nov 24
SAT, NP, and NP-completeness
KT 8.1-8.2
DPV 8.1-8.2
PA due
Nov 27
Thanksgiving Day, no class
Dec 1
NP-completeness reductions
KT 8.3-8.4
DPV 8.3