| 1 |
Foundations of algorithm design |
Problem specification; pseudocode; correctness; O, Ω, Θ; worst-case analysis; induction and loop invariants |
KT, introductory analysis sections |
HW 1 assigned |
| 2 |
Stable matching and recurrences |
Gale–Shapley; termination and stability; proposer-optimality; recurrences; Master Theorem; modelling implications |
KT, stable matching and analysis sections |
HW 1 due |
| 3 |
Graph search |
Graph representations; BFS; DFS; connected components; reachability; shortest unweighted paths |
KT, graph algorithms sections |
HW 2 assigned |
| 4 |
Directed graphs and modelling |
Topological sorting; strongly connected components; bipartite testing; reductions to graph problems |
KT, graph algorithms sections |
HW 2 due |
| 5 |
Greedy design I |
Interval scheduling; minimising lateness; optimal caching; greedy-choice property; stays-ahead proofs |
KT, greedy algorithms sections |
HW 3 assigned |
| 6 |
Greedy design II |
MST cut/cycle properties; Kruskal; Prim; Dijkstra; Huffman coding; failure cases |
KT, greedy algorithms sections |
HW 3 due Midterm 1 review |
| 7 |
Divide and conquer I |
Merge sort; binary-search variants; counting inversions; recurrence formulation and analysis |
KT, divide-and-conquer sections |
Midterm 1 HW 4 assigned |
| 8 |
Divide and conquer II and lower bounds |
Selection; closest pair; maximum subarray; fast multiplication; comparison-tree lower bounds; brief pattern-matching application |
KT and CLRS selected sections |
HW 4 due |
| 9 |
Dynamic programming I |
Optimal substructure; memoisation/tabulation; weighted interval scheduling; 0/1 knapsack; reconstruction |
KT, dynamic-programming sections |
HW 5 assigned |
| 10 |
Dynamic programming II |
LCS/LIS; sequence alignment; grid DP; Bellman–Ford; negative edges; space optimisation |
KT, dynamic-programming sections |
HW 5 due Midterm 2 review |
| 11 |
Advanced dynamic programming |
Adding state parameters; DP on trees; correctness and runtime; integration of paradigms |
KT and instructor notes |
Midterm 2 HW 6 assigned |
| 12 |
Network flow fundamentals |
Flow networks; residual graphs; augmenting paths; Ford–Fulkerson; Edmonds–Karp; max-flow/min-cut |
KT, network-flow sections |
HW 6 due |
| 13 |
Network flow applications |
Bipartite matching; assignment; edge-disjoint paths; circulation with demands; modelling transformations |
KT, network-flow sections |
HW 7 assigned |
| 14 |
Computational complexity and reductions |
Decision problems; P and NP; certificates; polynomial reductions; SAT/3-SAT; Independent Set, Vertex Cover, Clique |
KT, NP-completeness sections |
HW 7 due |
| 15 |
Intractability, LP and approximation |
Hamiltonian Cycle/TSP reductions; proving NP-hardness; linear-programming models; 2-approx Vertex Cover; greedy Set Cover; brief randomisation |
KT, approximation/LP sections |
HW 8 assigned |
| 16 |
Synthesis and comprehensive assessment |
Paradigm selection; modelling choices; cumulative problem solving; connections among flow, LP, reductions and approximation |
Review materials and selected prior readings |
HW 8 due Final examination |