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

Week
Lectures
Homework
1
Lect. 1. No class
Lect. 2.
Stable matching problem: a motivating example
HW1. Stable matching, basic algorithm design and analysis.
2
Lect. 3. Asymptotic notations.
Lect. 4. Common running time.
HW2. Asymptotic notations. Running time analysis.
3
Lect. 5. Quiz. Basic graph algorithms: BFS and DFS
Lect. 6. More DFS and its applications.
HW3. Basic graph algorithms.
4
Lect. 7. Greedy algorithms.
Lect. 8. Greedy algorithm (cont.).
HW4. Greedy algorithm
5
Lect. 9. Divide and conquer
Lect. 10. More on divide and conquer.
HW5. Divide and conquer
6
Midterm exam 1.
Lect.11. Still more on divide and conquer: FFT.

7
Lect. 12. Dynamic programming
Lect. 13. More on dynamic programming
HW6. Dynamic programming
8
Lect. 14. Still more dynamic programming
Lect. 15. Even more dynamic programming
HW7. Dynamic programming
9
Lect. 16. Network flows
Lect. 17. Network flows (cont.)
HW8. Network flows
10
Lect. 18 Concept of NP completeness.
Midterm exam 2.

11
Lect. 19. NP problems. 
Lect. 20. NP completeness: proofs.

12
Lect. 21. NP completeness: proofs
Lect. 22.
Cope with NP completeness: heuristics and speical instances.
HW9. NP completeness.
13
Lect. 23. Approximation algorithms.
Lect. 24. More on approximation algorithms.
HW10. Coping with NP completeness.
14
Lect. 25. Introduction to randomized algorithms.
Lect. 26.
More on randomized algorithms.

15
Final exam.