CS 401 / MCS 401 - Computer Algorithms I
University of Illinois - Chicago
Spring 2022


This course will cover the important principles behind the design and analysis of computer algorithms. We will study techniques such as divide-and-conquer, dynamic programming, and greedy methods, as well as algorithms for sorting, searching, graph computations, and pattern matching. We will also discuss the theory of NP-completeness.

Basic Information

Syllabus: pdf
Time and Location: M-W-F 11:00–11:50AM, 180G Thomas Beckham Hall (TBH), online first two weeks
Instructor: Lev Reyzin, SEO 417
TA/Grader: TBD
Textbook: J. Kleinberg and É. Tardos, Algorithm Design, 1st edition
Instructor's Office Hours: M 10:00–10:50AM (in person, starting Jan 24th), R 10:00–10:50AM (online)
TA/Grader Office Hours: TBD
Piazza site: link for self sign-up (from where a Zoom link is available)

Problem Sets

problem set 1 due 1/28/22

Lectures and Readings

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

Lecture 1 (1/10/22)
covered material: intro to the course, overview of covered material, introduction to stable marriage problem
reading: preface

Lecture 2 (1/12/22)
covered material: the Gale-Shapley stable marriage algorithm
reading: begin chapter 1.1
optional reading: chapter 1.2

Lecture 3 (1/14/22)
covered material: proof of the Gale-Shapley algorithm
reading: finish chapter 1.1

Lecture 4 (1/19/22)
covered material: measuring algorithm complexity, efficient algorithms
reading: chapter 2.1