- Wednesday, September 6: First class. Introduction by example:
The RSA cryptosystem. Repeated squaring. Divide-and-conquer integer multiplication.
Uniform-cost vs. logarithmic-cost models of computation.
- Monday, September 11: Dynamic programming. Example: longest common substrings.
- Wednesday, September 13: Amortized analysis. The aggregate method, the accountant's
method, and the potential method.
- Monday, September 18: Binomial trees and binomial heaps and their application
to Dijkstra's algorithm.
- Wednesday, September 20: Analyzing the running time of recursively linked algorithms.
Reversible computation and solution to HW1, Problems 1-2.
- Monday, September 25: How to design algorithms. Example:
Solution to HW1, Problem 3.
- Wednesday, September 27: Review: Big-Oh notations, analyzing
looping and recursive programs.
- Monday, October 2: Fibonacci heaps.
Review session I:Algorithm analysis.
Analyzing straight-line, looping, and recursive algorithms. Examples
from previous 441 tests.
- Wednesday, October 4: Average-case and probabilistic analysis.
Examples: average case analysis of insertion sort and bucket sort.
Probabilistic analysis of an ``unsorting'' algorithm.
- Monday, October 9: Union/Find problem.
Review session II:Some techniques from discrete mathematics.
Comparing orders of growth. Splitting and bounding summations.
Solving recurrences. Constructive induction.
- Wednesday, October 11: O(m lg* n)
Amortized analysis of union/find using
accountant's method. Discussion: What constitutes excellent
research in computer science? What do journals expect? What do
funding agencies expect?
- Monday, October 16: Matroids.
Review session III:Algorithm Design.
Example: Maximum subvector sum problem.
- Wednesday, October 18: Randomly built binary search trees.
- Monday, October 23: Discuss selected problems.
- Wednesday, October 25: Go over selected homework problems.
- Monday, October 30: Solve and discuss a practice exam.
- Wednesday, November 1: Exam I
- Monday, November 6: Go over Exam I. Begin Network flow.
- Wednesday, November 8: Network flow.
- Monday, November 13: NP-completeness (intro to complexity theory).
- Wednesday, November 15: NP-completeness (proving problems NP-complete).
- Monday, November 20: Network flow (preflow-push algorithms).
- Wednesday, November 22: No Class (Thanksgiving break)
- Monday, November 27: NP-completeness: gadgets (3SAT to Hamiltonian Circuit)
M.S. Comprehensive Exam in Algorithms, 8:30-9:30pm
- Wednesday, November 29: NP-completeness: local replacement (Vertex COver to Feedback Arc Set)
- Monday, December 4: Sorting networks. Go over Master's Comprehensive Examination.
- Wednesday, December 6: Exam II
- Monday, December 11: Last class. Approximation algorithms.
- Monday, December 18: Final Exam, 6-8pm.