CS 515: Algorithms and Data Structures (Fall 2017)
Instructor:
Amir Nayyeri (Office hours: Wed 23pm at KEC 3061)
TA:
Marjan Adeli (Office hours: Tue 2:303:30pm at KEC Atrium)
Lectures: Tue, Thr 18:0019: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 CS519005 before this course.)
Evaluation:
 Homework (30%)
 Midterm exam (35%)
 Final exam (35%)
Resources:
Announcements:

First class at Thr, Sep 20.
Homework:
Lectures:
 Thr 9/21:
Course introduction, Recursion.
 Tue 9/26: (1) Recursion (Sections 1.2 to 1.5); Hanoi Tower, merge sort, QSort. (2) Induction (Section 6); Tiling by triominos.
 Thr 9/28: Recursion (Sections 1.5 to 1.8) Pancake sorting, binary sequences with no consecutive ones, median selection.
 Tue 10/3: (1) Recursion (Sections 1.8); Median selection. (2) The closest pair of points.
 Thr 10/5: (1) Strassen algorithm for matrix multiplication. (2) Dynamic programming ; Introduction, Longest increasing subsequence.
 Tue 10/10: (1) Dynamic programming ; Longest increasing subsequence, edit distance. (2) Knapsack . (3) Shimbel's single source shortest paths algorithm HW1 due.
 Thr 10/12: (1) All pairs shortest paths.
 Tue 10/17: (1) All pairs shortest paths. (2) Dynamic programming on trees (Section 5.9); Maximum indepedent set.
 Thr 10/19: (1) Greedy Algorithms; Job scheduling, Huffman codes.
 Tue 10/24: (1) Greedy Algorithms; Huffman codes. HW2 due.
 Thr 10/26: No class.
 Tue 10/31: Midterm.
Grades: 105 103 96 95 95 90 90 89 89 80 80 79.25 77 75 73.25 73 71.25 70.25 70 70 70 70 69.25 68 66.25 65 62.5 58 58 57.5 55 44.25 42.5 40.5 34.25 6
 Thr 11/2: Randomized algorithms; Probability overview, Deterministic vs. randomized algorithms, Bolts and nuts example.
 Tue 11/7: Randomized algorithms; Probability overview, Deterministic vs. randomized algorithms, Bolts and nuts example. (2) Minimum enclosing circle.
 Thr 11/9: Hashing; Universal hashing, expected number of collisions.
 Tue 11/14:
Maximum flows and minimum cuts, max flow min cut theorem.
 Thr 11/16:
Maximum flows and minimum cuts, FordFulkerson, Edmon's Karp Fat Pipe.
 Tue 11/21: Applications of maximum flow, Bipartite matching. HW3 due.
 Thr 11/23: No class, Thanksgiving.
 Tue 11/28: (1) Applications of maximum flow, Baseball elimination. (2) Linear Programming. See these lecture notes for LP detailed coverage, also see the wikipedia page .
 Thr 12/1: (1) Linear Programming, strong duality theorem. (2) Linear programming algorithms, the simplex algorithm (Sections 27.1 to 27.4). HW4 due.