CS 473: Lecture Schedule


The schedule below lists the topic of each lecture, with links to relevant lecture notes or book chapters, lecture videos, and lecture scribbles. All future lecture topics are subject to change; links to future lecture scribbles and videos are placeholders.

Please let me know if you find any of the bugs I've cleverly hidden in the book and notes. Most of these bugs are just typos, but undoubtedly a few are actually quite serious. Notes that have been recently revised (however lightly) are marked ✍️.

Lecture videos are available on a separate page. New videos should be available at most a day after each lecture.


Prerequisite material

already
Induction
Solving recurrences
Divide and conquer
Whatever-first search
Depth-first search and topological sorting

Recursion

Tue Aug 23
Introduction, administrivia
Recursion
[scribbles, video]
Thu Aug 25
Fast Fourier transforms ✍️
[ 🔥3Blue1Brown🔥 , scribbles, video]
Tue Aug 30
Backtracking and dynamic programming: subsequences
[scribbles, video]
Thu Sep 1
Tree-shaped dynamic programming
[scribbles, video]
Fri Sep 2
Add deadline
Mon Sep 5
Labor Day — university holiday
Tue Sep 6
Dynamic programming in trees and dags
[scribbles, video]
Thu Sep 8
Advanced dynamic programming: divide-and-conquer
[scribbles, video]
Tue Sep 13
Advanced dynamic programming: monotonicity, SMAWK
[scribbles, video]

Randomization

Thu Sep 15
Flipping coins, collecting Pokémon, and shuffling cards
[scribbles, video]
Tue Sep 20
Sorting nuts and bolts ✍️
[scribbles, video]
Thu Sep 22
No lecture; optional midterm review session
[just the problems, scribbles, video]
Mon Sep 26
Midterm 1, 7pm-9pm, 141 Loomis
Tue Sep 27
Treaps
[scribbles, video]
Thu Sep 29
Tail inequalities (and review of midterm problem 3)
[scribbles, video]
Tue Oct 4
Hashing: limited randomness, universality, chaining, perfect hashing
[scribbles, video]
Thu Oct 6
Hashing: open addressing, linear/binary probing
[scribbles, video]
Tue Oct 11
String matching: Rolling hashes ✍️
[scribbles, video]
Thu Oct 13
String matching: Knuth-Morris-Pratt (dynamic programming) ✍️
[scribbles, video]
Fri Oct 14
Undergraduate drop deadline

Optimization

Tue Oct 18
Flows and cuts, maxflow-mincut theorem, residual graphs and augmenting paths
[scribbles, video]
Thu Oct 20
Ford-Fulkerson, flow decomposition, efficient maxflow algorithms
[scribbles, video]
Tue Oct 25
Applications of maximum flows
[scribbles, video]
Thu Oct 27
No lecture; optional midterm review session
[just the questions, scribbles, video]
Mon Oct 31
Midterm 2, 7pm-9pm, 141 Loomis (🧑🏻‍🔬🧪🧟🧠🧛🩸🕷🪰🎃🕯👻🍫)
Tue Nov 1
More applications of maximum flows
[scribbles, video]
Thu Nov 3
Applications of minimum cuts; supplies and demands
[scribbles, video]
Tue Nov 8
Election day — university holiday
Thu Nov 10
Minimum-cost flows: minimum-cost circulations, cycle canceling, successive shortest paths
[scribbles, video]
Tue Nov 15
Linear programming: definitions, duality
[scribbles, video]
Fri Nov 11
Graduate drop deadline
Thu Nov 17
The (primal and dual) simplex algorithm(s)
[scribbles, video]
Nov 19–27
Thanksgiving break 🍂🏈🦃🥦🍠🍷🥧🥃🛌💤

Other Cool Stuff

Tue Nov 29
Online algorithms: Lost cows and meteor coffee
[scribbles, video]
Thu Dec 1
Splay trees and the dynamic optimality conjecture
[scribbles, video]
Tue Dec 6
No lecture; optional final review session
[just the problems, scribbles, video]
Tue Dec 13
Final exam 7pm–10pm, 2079 Natural History