CMSC-641 Algorithms: Lectures (Fall 1995)

  1. 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.

  2. Monday, September 11: Dynamic programming. Example: longest common substrings.

  3. Wednesday, September 13: Amortized analysis. The aggregate method, the accountant's method, and the potential method.

  4. Monday, September 18: Binomial trees and binomial heaps and their application to Dijkstra's algorithm.

  5. Wednesday, September 20: Analyzing the running time of recursively linked algorithms. Reversible computation and solution to HW1, Problems 1-2.

  6. Monday, September 25: How to design algorithms. Example: Solution to HW1, Problem 3.

  7. Wednesday, September 27: Review: Big-Oh notations, analyzing looping and recursive programs.

  8. Monday, October 2: Fibonacci heaps.

    Review session I:Algorithm analysis. Analyzing straight-line, looping, and recursive algorithms. Examples from previous 441 tests.

  9. Wednesday, October 4: Average-case and probabilistic analysis. Examples: average case analysis of insertion sort and bucket sort. Probabilistic analysis of an ``unsorting'' algorithm.

  10. 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.

  11. 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?

  12. Monday, October 16: Matroids.

    Review session III:Algorithm Design. Example: Maximum subvector sum problem.

  13. Wednesday, October 18: Randomly built binary search trees.

  14. Monday, October 23: Discuss selected problems.

  15. Wednesday, October 25: Go over selected homework problems.

  16. Monday, October 30: Solve and discuss a practice exam.

  17. Wednesday, November 1: Exam I

  18. Monday, November 6: Go over Exam I. Begin Network flow.

  19. Wednesday, November 8: Network flow.

  20. Monday, November 13: NP-completeness (intro to complexity theory).

  21. Wednesday, November 15: NP-completeness (proving problems NP-complete).

  22. Monday, November 20: Network flow (preflow-push algorithms).

  23. Wednesday, November 22: No Class (Thanksgiving break)

  24. Monday, November 27: NP-completeness: gadgets (3SAT to Hamiltonian Circuit)

    M.S. Comprehensive Exam in Algorithms, 8:30-9:30pm

  25. Wednesday, November 29: NP-completeness: local replacement (Vertex COver to Feedback Arc Set)

  26. Monday, December 4: Sorting networks. Go over Master's Comprehensive Examination.

  27. Wednesday, December 6: Exam II

  28. Monday, December 11: Last class. Approximation algorithms.

  29. Monday, December 18: Final Exam, 6-8pm.