Tentative Lecture Schedule

Here is a tentative schedule detailing the major topics covered, the corresponding section(s) in the textbook, and the approximate amount of time that we will spend on each of them.

  1. Introduction: the stable matching problem (2 hours, section 1.1)
  2. Asymptotic notations (4 hours, section 2.1, 2.2, 2.4)
  3. Greedy algorithms (6 hours, sections 4.1, 4.4, 4.5)
  4. Amortized Analysis and merge-find data structures (4 hours, section 4.6 + additional material)
  5. Divide and conquer algorithms (5 hours, sections 5.1 -- 5.4)
  6. Randomized algorithms (4 hours, sections 13.5, 13.7)
  7. Dynamic programming (6 hours, sections 6.1 -- 6.3, 6.6)
  8. NP-Completeness (3 hours, sections 8.1 -- 8.4)