CS 515: Algorithms and Data Structures (Fall 2015)

Instructor: Amir Nayyeri (Office hours: Wed 2-3pm at KEC 3061)

TA: Baigong Zheng (Office hours: Mon 4-5pm at KEC Atrium), Hung Le (Office hours: Fri 4-5pm at KEC Atrium)

Lectures: Mon, Wed 10:00am-11:50am in KEAR 212

Final Exam: Thr 12/10 (6:00pm) at DEAR 118

Tentative topic list: Recursive algorithms, Dynamic programming, Greedy algorithms, Randomized algorithms and data structures, Treaps, Hashing*, Network flow, Linear programming, NP-hardness*, Approximation algorithms*.

Prerequisites: Graduate standing in computer science and an undergraduate course in algorithms. I assume that the students are comfortable with CS325 material.





  1. Mon 9/28: Recursion; Reduction, Recursion, Recursive sort, Tower of Hanoi.

  2. Wed 9/30: Recursion; Divide and conquer, Merge sort, Finding median in linear time.

  3. Mon 10/5: Divide and conquer ; the closest pair of points. Dynamic Programming; Maximum weight independent set on a path.

  4. Wed 10/7: Dynamic Programming; Edit distance, Knapsack .

  5. Mon 10/12: Dynamic programming on trees (Maximum independet set), All Pairs shortest paths. Homework 1 due.

  6. Wed 10/14: All Pairs shortest paths (cont.), Greedy Algorithms.

  7. Mon 10/19: Greedy Algorithms Huffman coding.

  8. Wed 10/21: Randomized algorithms; Probability overview, Deterministic vs. randomized algorithms, Bolts and nuts example.

  9. Mon 10/26: Randomized data structures, Treaps. Homework 2 due.

  10. Wed 10/28: Randomized minimum cut, Kareger's algorithm.

  11. Mon 11/2: Midterm Exam.

  12. Wed 11/4: Maximum flows and minimum cuts, Flows, Cuts, Residual graphs.

  13. Mon 11/9: Maximum flows and minimum cuts, Flows, Cuts, Residual graphs, Maximum flow/minimum cut theorem, Ford-Fulkerson algorithm, Edmonds and Karp (fat pipes).

  14. Wed 11/11: No class, Veterans Day.

  15. Mon 11/16: Maximum flows and minimum cuts, Fat/short pipes of Edmonds and Karp. Homework 3 due.

  16. Wed 11/18: Applications of maximum flow, Disjoint paths, Bipartite matching, Project selection.

  17. Mon 11/23: Linear Programming. See these lecture notes for LP detailed coverage, also see the wikipedia page .

  18. Wed 11/25: Linear Programming, Duality, Weak and strong duality theorems, Example: maximum flow and minimum cut.

  19. Mon 11/30: Linear programming algorithms, Simplex algorithm, Primal-dual interpretations, Seidel's randomized algorithm. Homework 4 due.

  20. Wed 12/2: The knapsck problem, approximation algorithms.