CS 262
Computational Complexity
Spring 2018


Sandy Irani
4042 Bren Hall

Class Times and Place

MWF 10:00-10:50
DBH 1500

Course Overview

The study of computational complexity is concerned with the question of what can we computed with limited resources (time, space, randomness, parallelism, communication, etc.). We will define general classes of problems that can be solved with a particular set of resources and will study the relationships between these classes. We will provide proofs for many of the known relationships between these classes.


The best course to have taken in preparation for this class is an undergraduate class on automata theory. An undergraduate class in algorithms is also good background. The course, however, is fairly self-contained and should be accessible to any student who is comfortable with mathematical abstraction and proofs.

Course Requirements

There will be a total of seven problem sets, due on Wednesday of week 2, 3, 4, 5, 7, 8, and 9. There will be a midterm, which is due on Wednesday of week 6, and a final exam, which is due on Wednesday of finals week.

Homework Policies: The homework exercises are an essential part of this course because practicing solving problems is important part of understanding the material. You can probably find many of the solutions to the homework exercises on the internet or in the literature but you will not get the benefit of solving the problems on your own. Therefore, the only sources you are allowed to consult in solving these problems are the recommended texts listed below, and notes from class (either mine, yours, or those of another student).

I encourage you to work in small groups, but you must note your collaborators on the homework you turn in. In addition, you must write up your own solutions without any collaboration.

You may elect to take a two-day extension (until Friday 5PM) on one of the homework assignments. Other assignments turned in late (but before Friday 5PM) will receive half credit.

You are also encouraged to put your solutions into LaTeX. Here is a template that you can use: Homework Template .

Midterm and Final Policies: The midterm and final will be identical in format to the homework assignments, except that they will be cumulative, and you must do your work individually. In addition, no late work is accepted for the midterm or final.

Evaluation and Grades: The midterm and final exam are each worth 15% of your final grade. Each of the seven homework assignments is worth 10% of your final grade.

Course Materials

Most of the material for this class, including homework problems, came from Chris Umans' class in complexity theory at Caltech:

I will provide my own course notes before every lecture (although not necessarily very much in advance). When they are posted, you can reach them by clicking on the topic name in the course outline below. This is theoretically all you should need for understanding the material in class. However, you may wish to consult my sources in preparing these notes. These are:

Lecture Topics and Homework

The list of topics is tentative for now.

Week Topic Homework Class notes
Week 1 Languages, Turing Machines, Reductions,
Completeness, Hierarchy Theorems, Complexity Classes
Homework 1
HW1 Solutions
Mon, Wed, Fri
Week2 Non-determinism, Part 1
Non-determinism, Part 2
Homework 2
HW2 Solutions
Mon, Wed, Fri
Week 3 Non-deterministic Space
Circuits, non-uniformity
Homework 3
HW3 Solutions
Mon, Wed, Fri
Week 4 Randomness
Randomized Complexity Classes
Homework 4
HW4 Solutions
Mon, Wed, Fri
Week 5 - - -
Week 6 Alternation and the Polynomial Hierarchy Midterm
Midterm Solutions
Mon, Wed, Fri
Week 7 Complexity of Counting Homework 5
HW5 Solutions
Mon, Wed, Fri
Week 8 Interactive proof systems Homework 6
HW6 Solutions
Week 9 PCPs and hardness of approximation
PCPs and hardness of approximation, cont.
- Wed
Week 10 NP in PCP(poly,1) Final Exam Wed