CS 515: Algorithms and Data Structures (Fall 2019)
Instructor:
Amir Nayyeri (Office hours: Mon 3:00-4:00pm at KEC 3061)
TA:
William Maxwell, (email: maxwellw AT oregonstate DOT edu) (Office hours: Fri 12:00-1:00pm at KEC Atrium)
Lectures: Tue, Thr 8:30-9:50 in Owen Hall 103
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:
- Homework (30%)
- Midterm exam (35%)
- Final exam (35%)
Resources:
Announcements:
-
Here are two sample question sets for final: sample 1, and sample 2.
-
Midterm exam will be on Tue, Nov 5, in class.
Here are two sample sets of questions: sample 1, and sample 2.
Here are the answers to sample 1.
-
Glencora Borradaile and William Maxwell are teaching the first three lectures.
-
The grade cut-offs for this class are roughly (if they change they do so in your favor): A >= 90; A- 85-89; B+ 80-84; B 75-79; B- 70-74; C+ 65-69; C 60-64
Homework:
Lectures:
-
Thr 09/26:
Course introduction, Recursion; Hanoi tower.
-
Tue 10/01:
(1) Recursion (divide and conquer); merge sort.
(2) The closest pair of points.
-
Thr 10/03:
(1) Recursion (divide and conquer); median selection, integer multiplication.
(2) Matrix multiplication.
-
Tue 10/08:
Recursion (backtracking); n-queens, subset sum.
-
Thr 10/10:
Dynamic Programming; maximum weighted indepdent set, subset sum.
-
Tue 10/15:
Dynamic Programming; longest increasing subsequence.
-
Thr 10/17:
Dynamic Programming; edit distance, dynamic programming on trees.
-
Tue 10/22:
Dynamic Programming on Graphs; single source shortest paths.
-
Thr 10/24:
Greedy Algorithms; job scheduling.
-
Tue 10/29:
Greedy Algorithms; Huffman codes.
-
Thr 10/31:
Randomized Algorithms; nuts and bolts.
-
Tue 11/5:
Midterm Exam.
-
Thr 11/7:
Randomized Algorithms; quick sort analysis, treaps.
-
Tue 11/12:
Randomized Algorithms; skip lists.
-
Thr 11/14:
Maximum flows; maximum flow = minimum cut, Ford Fulkerson algortihm.
-
Tue 11/19:
Maximum flow applications; disjoint paths, bipartite matching, exam scheduling.
-
Thr 11/21:
Maximum flows; Edmond Karp algorithms.
-
Tue 11/26:
Linear programming; Agebraic/geometric view.
-
Thr 11/28:
Thanksgiving, no class.
-
Tue 12/3:
Linear programming; Agebraic/geometric view.
-
Thr 12/5:
Linear programming; Algorithms.