CS 515: Algorithms and Data Structures (Fall 2014)

Instructor: Amir Nayyeri (Office hours: Mon 4:00pm-5:00pm at KEC 3061)

TA: Baigong Zheng (Office hours: Thr 4:00pm-5:00pm at KEC Atrium), Prashant Kumar (Office hours: Fri 2:00pm-3:00pm at KEC Atrium)

Lectures: Mon, Wed 10:00am-11:50am in BEXL 412

Final Exam: Wed 12/10 (2:00pm) at LPSC 125.

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.





  1. Mon 9/29: Recursion; Reduction, Recursion, Divide and conqure, Sorting algorithms.

  2. Wed 10/1: Recursion; Tower of Hanoi, Karatsuba multiplication algorithm, Closest pair of points (Notes by Subhash Suri).

  3. Mon 10/6: Dynamic Programming; Fibonacci Numbers, Longest common subsequence.

  4. Wed 10/8: Dynamic Programming; Optimal binary search trees, Dynamic Programming on Trees.

  5. Mon 10/13: More Dynamic Programming; All Pairs shortest paths. Homework 1 due.

  6. Wed 10/15: Greedy Algorithms; Storing files on tape, Job scheduling.

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

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

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

  10. Wed 10/29: Randomized minimum cut, Kareger's O(n^4 log n) algorithm.

  11. Mon 11/3: Midterm Exam: curved grades.

  12. Wed 11/5: Hashing, (Near-)universal hashing, Chaining, Multiplicative hashing.

  13. Mon 11/10: Maximum flows and minimum cuts, Flows, Cuts, Residual graphs, Ford-Fulkerson algorithm.

  14. Wed 11/12: Maximum flows and minimum cuts, Maximum flow and minimum cut theorem, Fat pipes of Edomonds and Karp.

  15. Mon 11/17: Maximum flows and minimum cuts, Short pipes of Edmonds and Karp.

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

  17. Mon 11/24: Linear Programming, Basic definitions, LPs for maximum flow and minimum cut, LPs for shortest paths. See these lecture notes for LP detailed coverage.

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

  19. Mon 12/1: Linear programming algorithms, Simplex algorithm, Primal-dual interpretations, Seidel's randomized algorithm.

  20. Wed 12/3: LP duality applications (section 6.2.2), K├Ânig's theorem.