Course Announcement: Computational Complexity - Winter/Summer Semester (2012-13)

Time: TBD
Location: A-212 (STCS, TIFR)

Computational Complexity

Computational complexity is the study of efficient computation. Computational Complexity concerns itself with understanding the difference between "easy" problems and "intractable" problems: easy in the sense that the problem can be solved using a reasonable amount of computational resources and intractable in the sense that it is beyond the scope of existing computers. The computational resource could be time, memory, randomness, communication depending on the context.

This course will roughly be divided into two parts. In the first half of the course, we will cover the classical material (NP completeness, space complexity, time and space hierarchy, alternation, randomized algorithms, interactive proofs). In the second half of the course, we will deal with more advanced topics (possible research directions), a superset of which is given below.


  1. Sanjeev Arora and Boaz Barak, Computational Complexity: A Modern Approach (1st edition), Cambridge Universtiy Press, 2009.
  2. Michael Sipser, Introduction to the Theory of Computation (2nd edition), Course Technology, 2005.


Prahladh Harsha
Valid HTML 4.01! Valid CSS!