CS 515: Algorithms and Data Structures (Fall 2016)

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

TA: Baigong Zheng (Office hours: Wed 4-5pm at KEC Atrium)

Lectures: Tue, Thr 18:00-19:20 in KEAR 212


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

Prerequisites: Graduate standing in computer science and an undergraduate course in algorithms. I assume that the students are comfortable with CS325 material. (If you have not taken any undergraduate algorithm course, I strongly recommand taking CS519-005 before this course.)

Evaluation:

Resources:


Announcements:


Homework:


Lectures:

  1. Thr 9/22: Course introduction, Recursion.

  2. Tue 9/27: (1) Recursion (Sections 1.2 to 1.4); Hanoi Tower, merge sort, simplify and delegate. (2) Induction (Section 6); Tiling by triominos.

  3. Thr 9/29: Recursion (Sections 1.5 to 1.8); Quick sort, median selection, Karastuba's 'multiplication.

  4. Tue 10/4: (1) The closest pair of points. (2) Maximum weight independent set on a path; Dynamic programming.

  5. Thr 10/6: Dynamic programming (Sections 1.1 to 1.5); Longest increasing subsequence, edit distance.

  6. Tue 10/11: (1) Knapsack . (2) Shimbel's single source shortest paths algorithm. HW1 due.

  7. Thr 10/13: (1) All pairs shortest paths (Sections 22.4 to 22.7)). (2) Dynamic programming on trees (Section 5.9); Maximum indepedent set.

  8. Tue 10/18: (1) Dynamic Programming on DAGs (Sections 9.4 to 9.6). (2) Greedy Algorithms (Section 7.2); Job scheduling.

  9. Thr 10/20: (1) Greedy Algorithms (Section 7.3); Huffman codes. (2) Matroids.

  10. Tue 10/25: (1) Matroids(cont.). (2) Randomized algorithms; Probability overview, deterministic vs. randomized algorithms. HW2 due.

  11. Thr 10/27: Randomized algorithms; Probability overview, Deterministic vs. randomized algorithms, Bolts and nuts example.

  12. Tue 11/1: Midterm. Grades: 100, 100, 97, 96, 93, 91, 91, 90, 88, 85, 85, 83, 82, 80, 78, 77, 76, 74, 73, 66, 63, 60, 60, 54, 31, 30.

  13. Thr 11/3: (1) Randomized algorithms; Probability overview, Deterministic vs. randomized algorithms, Bolts and nuts example. (2) Randomized data structures, Treaps.

  14. Tue 11/8: (1) Randomized data structures, Skip lists. (2) Minimum enclosing circle.

  15. Thr 11/10: (1) Randomized minimum cut, Kareger's algorithm. (2) Maximum flows and minimum cuts, Flows and cuts.

  16. Tue 11/15: Maximum flows and minimum cuts, max flow min cut theorem. HW3 due.

  17. Thr 11/17: Maximum flows and minimum cuts, Ford-Fulkerson, Edmon's Karp.

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

  19. Thr 11/24: No class, Thanksgiving.

  20. Tue 11/29: Linear Programming. See these lecture notes for LP detailed coverage, also see the wikipedia page . HW4 due.

  21. Thr 12/1: (1) Linear Programming, strong duality theorem. (2) Linear programming algorithms, the simplex algorithm (Sections 27.1 to 27.4).