CS 515: Algorithms and Data Structures (Fall 2019)
Instructor:
Amir Nayyeri (Office hours: Mon 3:004:00pm at KEC 3061)
TA:
William Maxwell, (email: maxwellw AT oregonstate DOT edu) (Office hours: Fri 12:001:00pm at KEC Atrium)
Lectures: Tue, Thr 8:309: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 CS519005 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 cutoffs for this class are roughly (if they change they do so in your favor): A >= 90; A 8589; B+ 8084; B 7579; B 7074; C+ 6569; C 6064
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); nqueens, 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.