Tim Roughgarden's Stanford Courses
CS161, Design and Analysis of Algorithms. (Taught countless times, see here for current offering.)
- CS167, Readings in Algorithms:
- CS168, The Modern Algorithmic Toolbox (with Greg Valiant):
Spring '16 (with lecture notes), Spring '17.
- CS261, A Second Course in Algorithms:
Winter '16 (with lecture notes and videos).
CS264 (previously CS369N), Beyond Worst-Case Analysis:
Fall '14 (with lecture notes and videos),
CS269I, Incentives in Computer Science:
Fall '16 (with lecture notes).
- CS359D, Hardness of Approximation:
CS364A, Algorithmic Game Theory:
Fall '13 (with lecture notes and videos).
Topics in Algorithmic Game Theory (with Jason Hartline):
Fall '05 (with lecture notes)
Foundations of Sponsored Search:
- Frontiers in Mechanism Design:
Winter '14 (with lecture notes and videos).
- CS369B, Advanced Graph Algorithms:
- CS369C, Metric Embeddings and Algorithmic Applications:
- CS369E, Communication Complexity (for Algorithm Designers):
Winter '15 (with lecture notes).