Our basic text will be my manuscript, Introduction to Complexity Classes, which you can download. Some additional handouts will be given as appropriate.

Other suggested references include:

  1. ``Computational Complexity'' by Christos Papadimitriou, Addison-Wesley, 1994. Book Errata (local copy)
  2. ``Intro to the Theory of Computation'' by Michael Sipser, PWS Publishing (1997).
  3. ``An Introduction to Kolmogorov Complexity and its Applications'' by Ming Li and Paul Vit\'anyi, Springer Verlag, Second Edition (1997).
  4. ``Quantum Computing'' by Jozef Gruska, McGraw-Hill (1999).
  5. ``The Complexity Theory Companion'' by Lane A. Hemaspaandra and Mitsunori Ogihara, Springer-Verlag, ISBN 3-540-67419-5, 2002,
Comments: Papadimitriou's book could essentially be our text book, but it goes somewhat into logic, which we will not require. Sipser's book is a good place to pick up the basics in finite automata, formal languages and recursive function theory. The last three books (Li and Vitanyi, Gruska, Hemaspaandra and Ogihara) focused on advanced topics which we will lightly touch upon.