CS 501 / MCS 501 - Computer Algorithms II
University of Illinois - Chicago
Spring 2024


This course will introduce students to the fundamental ideas underlying modern algorithmic techniques. Students will be taught how to design and analyze approximation algorithms and randomized algorithms, as well as other advanced topics. Knowledge of topics covered in Computer Algorithms I (CS 401 / MCS 401 or equivalent) is required.

This course is represented in the CS Ph.D. prelim exam in the MSCS department.

Basic Information

Syllabus: pdf
Time and Location: M-W-F 9:00–9:50 a.m., Addams Hall 307
Instructor Contact Information: Lev Reyzin, SEO 417
Required Textbook: D. P. Williamson and D. B. Shmoys, The Design of Approximation Algorithms (available free online)
Instructor's Office Hours: M 10:00-10:50am, W 11:00-11:50am
Piazza site: please sign up via this link

Problem Sets

problem set 1, due 2/7/24
problem set 2, due 2/16/24
problem set 3, due 3/6/24

Lectures and Readings

Note: lectures will have material not covered in the readings.

Lecture 1 (1/8/24)
covered material: intro to the course, discussion of modern algorithms vs traditional approaches

Lecture 2 (1/10/24)
covered material: review of Ford-Fulkerson algorithm, reduction from min-cut to min-s-t-cut
reading: review these notes on flows by Kevin Wayne (Princeton)

Lecture 3 (1/12/24)
covered material: Karger's randomized algorithm for min-cut
reading: these notes by Eric Vigoda (Georgia Tech)

Lecture 4 (1/17/24)
covered material: the Karger-Stein improvement to randomized min-cut
reading: these notes by Sasho Nikolov (Toronto)
for review: these notes on the master theorem

Lecture 5 (1/19/24)
covered material: introduction to approximation algorithms
reading: 1.1 of Williamson and Shmoys

Lecture 6 (1/22/24)
covered material: metric k-center approximation, related problems
reading: 2.2 of Williamson and Shmoys
optional reading: these notes by Patrick Jaillet (MIT)

Lecture 7 (1/24/24)
covered material: greedy algorithms for SC and VC
reading: 1.6 of Williamson and Shmoys and these notes by Dieter van Melkebeek (Wisconsin)

Lecture 8 (1/26/24)
covered material: linear programming (LP) relaxations for SC and VC
reading: 1.2 of Williamson and Shmoys
optional reading: appendix A of Williamson and Shmoys for background on LP

Lecture 9 (1/29/24)
covered material: deterministic and randomized rounding of LP relaxation for VC and SC
reading: 1.3 and 1.7 of Williamson and Shmoys

Lecture 10 (1/31/24)
covered material: hardness by reducing from NP-Complete (NPC) problems
reading: 16.1 of Williamson and Shmoys
optional reading: appendix B of Williamson and Shmoys for background on NPC

Lecture 11 (2/2/24)
covered material: minimum spanning trees (MST), nearest addition for metric traveling salesman problem (TSP)
reading: these notes by Santosh Vempala (Georgia Tech) for review of MSTs

Lecture 12 (2/5/24)
covered material: Christofides algorithm
reading: 2.4 of Williamson and Shmoys

Lecture 13 (2/7/24)
covered material: review of dynamic programming, subset sum
reading: these notes by Deeparnab Chakrabarty (Dartmouth)

Lecture 14 (2/9/24)
covered material: dynamic programming for knapsack, towards an FPTAS
reading: 3.1 of Williamson and Shmoys

Lecture 15 (2/12/24)
covered material: FPTAS for knapsack reading: these notes from Goemans's class

Lecture 16 (2/14/24)
covered material: prize-collecting Steiner tree (PCST), problem of connectivity with exponential-size IPs/LPs
reading: 4.4 of Williamson and Shmoys

Lecture 17 (2/16/24)
covered material: separation oracle and rounding scheme for PCST 3-approximation
reading: 4.3 of Williamson and Shmoys

Lecture 18 (2/18/24)
covered material: ellipsiod method (optional)
optional reading: these notes by Michel Goemans (MIT)