CS 278 Computational Complexity Theory

Course Description:

Computational Complexity studies the power and limitations of efficient computation. What can be computed with bounded resources such as time, memory, randomness, communication, and parallel cores? In this course, we will explore these beautiful questions. While most of them are widely open (e.g., Is verifying easier than proving? Is parallelism always helpful? Does randomness help in computation?), we will see many surprising connections between them. The course will be based on selected chapters from the book “Computational Complexity” by Sanjeev Arora and Boaz Barak.

Among the highlights, we will discuss Randomized Algorithms, Bounded-Space Algorithms, Savitch's Theorem, Immerman-Szelepcsényi's Theorem, the PCP Theorem and its connections to Hardness of Approximation, Interactive Proofs and IP = PSPACE, Hardness vs. Randomness, Pseudorandomness and Derandomization, Hardness Amplification, Introduction to Communication Complexity, Karchmer-Wigderson games, Circuit Complexity, Hardness within P.

General Information:

Time and Place: Tuesday, Thursday 2:00-3:30 PM (via Zoom)

Instructor: Avishay Tal, atal "at" berkeley.edu

Office Hours: Monday 4:00-5:00 PM

TA: Nagaganesh Jaladanki, nagaganesh "at" berkeley.edu

Grading: Homework assignments - 50% (5 assignments), scribe - mandatory + replaces the lowest-grade hw assignment, Final Project & Presentation - 50%. Participation in class - extra credit.

Prereqs: CS170 or equivalent is required. CS172 or equivalent is recommended.


For those of you that want a refresher on the general setting, or those that haven't took 172, please see Chapter 3 in Sipser's book ("Introduction to the Theory Of Computation" by Michael Sipser) or chapters 1 & 2 Arora-Barak.

Textbooks & Lecture Notes:



Problem Sets:


Time-Complexity (Chapter 3 AB)

Hierarchy Theorems

Barriers to diagonalization

Space-Complexity (Chapter 4 AB)


st-conn is NL complete

Savitch’s Theorem (NSPACE[s] in DSPACE[s^2])

Immerman-Szelepcsényi's Theorem (NSPACE is closed to complement)

Randomness in Computation (Chapters 5,7 AB)

Relation to the Polynomial Hierarchy

Relation to Circuits


Circuit Complexity (Chapters 6, 14, 23 AB)

The circuit complexity approach to P!=NP

The Karp-Lipton Theorem

Uncoditional lower bounds for restrictive circuit classes like bounded-depth circuits


NEXP not in ACC^0

Barriers: Natural Proofs.

Hardness vs Randomness (Chapters 19, 20 AB)

Pseudorandom Generators from Hard functions

Derandomization implies Circuit Lower Bounds

Hardness Amplification

Interactive Proofs (Chapter 8 AB)

Arthur-Merlin Protocols


The PCP theorem and its connections to Hardness of Approximation (Chapter 11 AB)

Communication Complexity - KW Games, Lower Bounds on Randomized Communication Complexity

Hardness within P

Scribe Notes

172 Review Session