CS 710 - Complexity Theory
This course provides a graduate-level introduction to computational complexity
theory, the study of the power and limitations of efficient computation.
In the first part of the course we focus on the standard setting, in which one
tries to realize a given mapping of inputs to outputs in a time- and
space-efficient way. We develop models of computation that represent the
various capabilities of digital computing devices, including parallelism,
randomness, quantum effects, and nonuniformity. We also introduce models
based on the notions of nondeterminism, alternation, and counting, which
precisely capture the power needed to efficiently compute important types
of mappings. The meat of this part of the course consists of intricate
relationships between these models, as well as some separation results.
In the second part we study other computational processes that arise in
diverse areas of computer science, each with their own relevant efficiency
measures. Specific topics include:
All of these topics have grown into substantial research areas in their own
right. We will cover the main concepts and key results from each one, as
- proof complexity, interactive proofs, and probabilistically checkable
proofs -- motivated by verification,
- pseudorandomness and zero-knowledge -- motivated by cryptography and
- computational learning theory -- motivated by artificial intelligence,
- communication complexity -- motivated by distributed computing,
- query complexity -- motivated by databases.
Complexity theory at the level of CS 520. We will start the course with
a quick review of the relevant CS 520 material. If you haven't taken
CS 520 or an equivalent course before but are mathematically mature,
you should be able to pick up the prerequisite material from the review.
TR 1:00-2:15pm in 1263 CS&S.
There is no required text.
Lecture notes will be made available from the course web page.
Relevant references are the text books
A Modern Approach by Sanjeev Arora and Boaz Barak, and
Complexity: A Conceptual Perspective by Oded Goldreich.
- Scribes (40%).
Write lecture notes for two to three lectures.
Someone who missed the class should
be able to learn the material from the notes.
You need to type your notes in LaTeX using the
- Homework (60%).
There will be 3 assignments. You are allowed to discuss the problems in
group but you should write out the solutions on your own.