CSE 3500 (Fall 2016):  Algorithm and Complexity,  Instructor: Yufeng Wu
Tentative Class Schedule (subject to change)

Week
Lectures
Homework
1
Stable matching problem: a motivating example. Asymptotic notations. HW1. Stable matching, basic algorithm design and analysis.
2
Common running time.  Basic graph algorithms: BFS and DFS HW2. Asymptotic notations. Running time analysis.
3
More DFS and its applications. Greedy algorithms.
Programming assignment 1: implementing algorithms and evaluate running time
4
Greedy algorithm (cont.). Divide and conquer HW3. Basic graph algorithms. Greedy algorithm
5
More on divide and conquer. Still more on divide and conquer: FFT. HW4. Divide and conquer
6
Midterm exam 1.
Dynamic programming

7
More on dynamic programming HW5. Dynamic programming
8
Still more dynamic programming.
Programming assignment 2. Dynamic programming
9
Network flows
HW6. Network flows
10
Concept of NP completeness.
Midterm exam 2.

11
NP problems. NP completeness: proofs.
12
NP completeness: proofs. Cope with NP completeness: heuristics and speical instances. HW7. NP completeness.
13
Approximation algorithms.
HW8. Coping with NP completeness.
14
Introduction to randomized algorithms.

15
Final exam.