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

Week
Lectures
Homework
1
Lect. 1. Stable matching problem: a motivating example
Lect. 2. Basics of algorithm analysis.
HW1. Stable matching, basic algorithm design and analysis.
2
Lect. 3. Asymtotic notations.
Lect. 4. Common running time.
HW2. Asymtotic notations. Running time analysis.
3
Lect. 5. Divide and conquer.
Lect. 6. Divide and conquer (cont.)

4
Lect. 7. Probabalistic analysis.
Lect. 8. Heapsort.
HW3. Divide and conquer and probabilistic analysis
5
Lect. 9. Lower bound, quicksort, and counting sort.
Lect. 10. Greedy algorithms.

6
 Midterm exam 1.
Lect.11. Greedy algorithm and dynamic programming.
HW4. Greedy algorithm and dynamic programming
7
Lect. 12. Dynamic programming (cont.)
Lect. 13. Dynamic programming (cont.)

8
Lect. 14. More dynamic programming
Lect. 15. Basic graph algorithms: BFS and DFS
HW5. Dynamic programming
9
Lect. 16. More DFS and its applications.
Lect. 17. Minimum spanning tree. (MST)

10
Lect. 18 Shortest path.
Midterm exam 2.
HW6. Basic graph algorithms and MST.
11
Lect. 19. Introduction to randomized algorithms.
Lect. 20. Introduction to algorithms on text and strings.

12
Lect. 21. Algorithms with numbers.
Lect. 22. Concept of NP completeness.
HW7. Shortest path and more.
13
Lect. 23. NP problems.
Lect. 24. NP completeness: proofs.
HW8. NP completeness.
14
Lect. 25. NP completeness: proofs
Lect. 26. Cope with NP completeness: heuristics, speical instances and approximation.

15
Final exam.