Outline

We will begin with the classical results in space and
time complexity: hierarchy theorems, closure under complementation.
Then, we will study results in the area of randomized space
complexity.
The second part of the course will be concerned with time
complexity. We will introduce the important complexity classes such as
P, NP and sharp P, and the Alternating Turing Machine model. The
latter part of the course will be devoted to the study of interactive
proofs. After characterising NP as the class of properties that have
easily verifiable proofs, we will study the effect of introducing
randomness and interaction in the verification process. This will lead
us naturally to Arthur-Merlin games. We will present the PCP theorem
in detail, and show that that certain functions that were earlier
believed to be hard to compute exactly are equally hard even to
estimate approximately.

If there is time available in the end, we will discuss some
results in circuit complexity and communication complexity.

The courses on Mathematical Structures and Automata \& Computability are
prerequisites for this course.