MCS 541 - Computational Complexity
University of Illinois at Chicago
Spring 2023


This course will introduce students to the fundamental ideas underlying modern computational complexity. We will cover different computing models, time and space complexity of computations, and the classification of problems according to their computational complexity. Topics to be covered include completeness, the power of randomness, cryptography and one-way functions, interactive proof systems, relativization, and more.

Basic Information

Syllabus: pdf
Time and location: M-W-F 1:00-1:50PM, 302 Addams Hall (AH)
Instructor information: Lev Reyzin, SEO 417
Textbook: Sanjeev Arora and Boaz Barak. Computational Complexity: A Modern Approach (see free online draft)
Optional textbook: Michael Sipser. Introduction to the Theory of Computation, 3rd Edition (earlier editions are also fine)
Office hours: T 9:00-9:50AM (online), F 9:00-9:50AM (in-person)
Piazza site: link

Problem Sets

problem set 1, due 1/23/23
problem set 2, due 2/13/23

Lectures and Readings

Lecture 1 (1/9/23)
covered material: automata (DFAs), regular languages
reading: chapter 0 of Arora-Barak
optional reading: chapter 1 of Sipser

Lecture 2 (1/11/23)
covered material: nondeterminism (NFAs), Turing Machines (TMs)
reading: chapters 1.1 and 1.2 of Arora-Barak
optional reading: chapter 3.1 of Sipser

Lecture 3 (1/13/23)
covered material: Church-Turing thesis, uncomputability, Turing reductions
reading: chapter 1.5 of Arora-Barak
optional reading: chapter 4 of Sipser

Lecture 4 (1/18/23)
covered material: universal Turing machines (UTMs), nondeterministic Turing machines (NTMs)
reading: chapter 1.4 of Arora-Barak
optional reading: chapter 3.2 of Sipser

Lecture 5 (1/20/23)
covered material: computable functions, DTIME, NTIME, P, NP
reading: chapters 1.3, 1.6, and 2.1 of Arora-Barak
optional reading: chapters 7.1 - 7.3 of Sipser

Lecture 6 (1/23/23)
covered material: Karp reductions, NP-Completeness
reading: chapter 2.2 of Arora-Barak
optional reading: chapter 7.4 up to Cook-Levin of Sipser

Lecture 7 (1/25/23)
covered material: Cook-Levin theorem
reading: chapter 2.3 of Arora-Barak
optional reading: chapter 7.4 starting from Cook-Levin of Sipser

Lecture 8 (1/27/23)
covered material: web of reductions, coNP
reading: chapters 2.4 and 2.5 of Arora-Barak
optional reading: chapter 7.5 of Sipser

Lecture 9 (1/30/23)
covered material: EXP, NEXP, padding argument, and introduction to space complexity
reading: chapters 2.6 and 2.7 of Arora-Barak
optional reading: chapter 8.2 of Sipser

Lecture 10 (2/1/23)
covered material: bounding space by time, heirarchy theorems
reading: chapters 3.1 and 4.1 of Arora-Barak
optional reading: chapter 9.1 of Sipser