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.
Evaluation:
- Homework (30%)
- Midterm exam (35%)
- Final exam (35%)
Resources:
Homework:
Lectures:
- Mon 9/28: Recursion; Reduction, Recursion, Recursive sort, Tower of Hanoi.
- Wed 9/30: Recursion; Divide and conquer, Merge sort, Finding median in linear time.
- Mon 10/5: Divide and conquer ; the closest pair of points. Dynamic Programming; Maximum weight independent set on a path.
- Wed 10/7: Dynamic Programming; Edit distance, Knapsack .
- Mon 10/12: Dynamic programming on trees (Maximum independet set), All Pairs shortest paths. Homework 1 due.
- Wed 10/14: All Pairs shortest paths (cont.), Greedy Algorithms.
- Mon 10/19: Greedy Algorithms Huffman coding.
- Wed 10/21: Randomized algorithms; Probability overview, Deterministic vs. randomized algorithms, Bolts and nuts example.
- Mon 10/26: Randomized data structures, Treaps. Homework 2 due.
- Wed 10/28: Randomized minimum cut, Kareger's algorithm.
- Mon 11/2: Midterm Exam.
- Wed 11/4: Maximum flows and minimum cuts, Flows, Cuts, Residual graphs.
- 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).
- Wed 11/11: No class, Veterans Day.
- Mon 11/16: Maximum flows and minimum cuts, Fat/short pipes of Edmonds and Karp. Homework 3 due.
- Wed 11/18: Applications of maximum flow, Disjoint paths, Bipartite matching, Project selection.
- Mon 11/23: Linear Programming. See these lecture notes for LP detailed coverage, also see the wikipedia page .
- Wed 11/25: Linear Programming, Duality, Weak and strong duality theorems, Example: maximum flow and minimum cut.
- Mon 11/30: Linear programming algorithms, Simplex algorithm, Primal-dual interpretations, Seidel's randomized algorithm. Homework 4 due.
- Wed 12/2: The knapsck problem, approximation algorithms.