 
Summary: COS 522: Computational Complexity
Princeton University, Spring 2001
Lecturer: Sanjeev Arora
These are scribe notes from the above course. Eight grads and two undergrads took
the course. They were supposed to have an undergrad level preparation in Theory of
Computation, preferably using Mike Sipser's excellent text.
I am grateful to these students, who eagerly attended these lectures, solved the home
work problems (gamely trying their hands at the occasional open problem), and wrote up
scribe notes. I have edited the scribe notes but many errors undoubtedly remain.
These lecture notes omit many topics from complexity theory, most notably the PCP
Theorem and computational pseudorandomness as developed in the 1990s (extractors, hard
ness vs randomness, etc). Luca Trevisan and I plan to write a graduate textbook on Com
putational Complexity that will cover these and other topics as well.
Course homepage: http://www.cs.princeton.edu/courses/archive/spring01/cs522/
Homepage for Luca's course: http://www.cs.berkeley.edu/ luca/cs278/
1
Contents
1 Introduction 5
2 Space Complexity 9
