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'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.

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

Undergraduate students who wish to take this class should fill out the following Google Form: https://forms.gle/Ruovzk3nWyxo2xJa7

Additional information about grading and specific schedule to be added shortly.