Computer Science 366b Schedule, Spring 2022

This page contains the schedule of lectures and assignments. Other information, such as office hours, may be found on the Canvas pages for this course. Please consult these, as well as announcements on Canvas, before emailing the course staff.
The following schedule lists the topics of each lecture, the readings that go along with them, and the associated homeworks. Listings of future events are speculative.
before class Background that I will not cover (or that I will cover very little).
Reading: Kleinberg-Tardos Sections 2 and 3.
If you have not taken CPSC 223, you should definitely read this!
1/25/22 Lecture 1. (Zoom) Introduction and Scheduling Problems.
Reading: Kleinberg-Tardos Sections 1.2, 2.4, and 4.1
A Note on Asymptotics
Problem set 1 out. Find it on Canvas
1/27/22 Lecture 2. (Zoom) Scheduling problems, part 2.
Reading: Kleinberg-Tardos Section 4.2.
2/1/22 Lecture 3. (Zoom) Shortest Paths.
Reading: Kleinberg-Tardos Section 4.4, and my notes on Dijkstra's Algorithm.
2/3/22 Lecture 4. (Zoom) Minimum Spanning Trees, Part 1.
Reading: Kleinberg-Tardos Section 4.5 and 4.6.
2/8/22 Lecture 5. Minimum Spanning Trees, Part 2. Clustering, d-ary heaps, Union-Find, and other data structures
Reading: Kleinberg-Tardos Section 4.5, 4.6 and 4.7.
For d-ary heaps, I recommend Wikipedia
Problem set 1 due. Problem set 2 out.
2/10/22 Lecture 6. Dynamic Programming 1
Reading: Kleinberg-Tardos Sections 6.1, 6.2 and 6.3.
2/15/22 Lecture 7. Dynamic Programming 2
Reading: Kleinberg-Tardos Section 6.4 and 6.6.
2/17/22 Lecture 8. Dynamic Programming 3.
Reading: Kleinberg-Tardos Sections 6.8 and 6.9.
Problem set 2 due. Problem set 3 out.
2/22/22 Lecture 9. Divide and Conquer 1.
Mergesort: Kleinberg-Tardos Section 5.1
Integer Multiplication: Kleinberg-Tardos Section 5.5.
Fast Matrix Multiplication. Try Wikipedia.
Recurrences: Kleinberg-Tardos Section 5.2. And, here's an exposition of the method of Akra and Bazzi, written by Tom Leighton.
2/24/22 Lecture 10. Divide and Conquer 2: Convolutions and the Fast Fourier Transform (FFT).
Background on polynomials: Notes by Satish Rao and David Tse.
Reading: Kleinberg-Tardos Section 5.6, or Jeff Erickson's notes
3/1/22 Lecture 11. Rearranging computations to save time and space. my lecture notes
Problem set 3 due. Problem set 4 out.
3/3/22 Lecture 12. Network Flow 1.
Reading: Kleinberg-Tardos Sections 7.1.
The demo from class
3/8/22 Lecture 13. Network Flow 2.
Reading: Kleinberg-Tardos Section 7.2 and 7.5.
3/10/22 Lecture 14. Network Flow 3.
Reading: Kleinberg-Tardos Section 7.3.
Bobby Kleinberg's notes on the Edmonds Karp Algorithm
3/15/22 Lecture 15. Linear Programming
Reading: Jeff Erickson's notes on Linear Programming.
Problem set 4 due. Problem set 5 out.
3/17/22 Lecture 16. Reductions. And NP-completeness.
Reading: Kleinberg-Tardos Section 8.1 and 8.2.
Spring Break!
3/29/22 Lecture 17. NP hard problems 2
Reading: Kleinberg-Tardos Section 8.3 and 8.4.
3/31/22 Lecture 18. NP hard problems 3
Reading: Kleinberg-Tardos Section 8.6 and 8.8.
Reading: My slides for this lecture
Problem set 5 due. Problem set 6 out.
4/5/22 Lecture 19. NP hard problems 4.
Reading: Kleinberg-Tardos Section 8.4,8.5 and 8.7.
Reading: My slides for this lecture
4/7/22 Lecture 20. Approximation Algorithms.
Reading: Kleinberg-Tardos Section 11.1 and 11.2.
4/12/22 Lecture 21. Approximation Algorithms, part 2.
Reading: Kleinberg-Tardos Section 11.3 and 11.6.
Problem set 6 due. Problem set 7 out.
4/14/22 Lecture 22. Randomized Algorithms, part 1.
Reading: Kleinberg-Tardos Section 13.1 and 13.3.
4/19/22 Lecture 23. Randomized Algorithms, part 2. Randomized Quick-Select and Quick-Sort.
Reading: Kleinberg-Tardos Section 13.5
Problem set 7 due. Problem set 8 out.
4/21/22 Lecture 24. Matchings in Regular Bipartite Graphs. my lecture notes
4/26/22 Lecture 25. SAT Solvers.
Reading: Jeff Erickson's notes on Backtrack Algorithms for 3-SAT.
Reading: My notes on Schoening's algorithm
4/28/22 Lecture 26. Where it goes from here. my slides
Problem set 8 due.
5/10/22 Final exam. 10:00 AM - noon in BASS 305.