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.
Evaluation:
- Homework (30%)
- Midterm exam (35%)
- Final exam (35%)
Resources:
Homework:
Lectures:
- Mon 9/29: Recursion; Reduction, Recursion, Divide and conqure, Sorting algorithms.
- Wed 10/1: Recursion; Tower of Hanoi, Karatsuba multiplication algorithm, Closest pair of points (Notes by Subhash Suri).
- Mon 10/6: Dynamic Programming; Fibonacci Numbers, Longest common subsequence.
- Wed 10/8: Dynamic Programming; Optimal binary search trees, Dynamic Programming on Trees.
- Mon 10/13: More Dynamic Programming; All Pairs shortest paths. Homework 1 due.
- Wed 10/15: Greedy Algorithms; Storing files on tape, Job scheduling.
- Mon 10/20: Greedy Algorithms Huffman coding.
- Wed 10/22: Randomized algorithms; Probability overview, Deterministic vs. randomized algorithms, Bolts and nuts example.
- Mon 10/27: Randomized data structures, Treaps, Skiplists. Homework 2 due.
- Wed 10/29: Randomized minimum cut, Kareger's O(n^4 log n) algorithm.
- Mon 11/3: Midterm Exam: curved grades.
- Wed 11/5: Hashing, (Near-)universal hashing, Chaining, Multiplicative hashing.
- Mon 11/10: Maximum flows and minimum cuts, Flows, Cuts, Residual graphs, Ford-Fulkerson algorithm.
- Wed 11/12: Maximum flows and minimum cuts, Maximum flow and minimum cut theorem, Fat pipes of Edomonds and Karp.
- Mon 11/17: Maximum flows and minimum cuts, Short pipes of Edmonds and Karp.
- Wed 11/19: Applications of maximum flow, Disjoint paths, Bipartite matching, Project selection.
- 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.
- Wed 11/26: Linear Programming, Duality, Weak and strong duality theorems, Example: maximum flow and minimum cut. Homework 3 due.
- Mon 12/1: Linear programming algorithms, Simplex algorithm, Primal-dual interpretations, Seidel's randomized algorithm.
- Wed 12/3: LP duality applications (section 6.2.2), König's theorem.