Part I. Basic Complexity Classes:
Ch 1. The computational model - and why it doesn't matter
Ch 2. NP and NP completeness
Ch 3. Diagonalization
Ch 4. Space complexity
Ch 5. The polynomial hierarchy and alternations
Ch 6. Boolean circuits
Ch 7. Randomized computation
Ch 8. Interactive proofs
Ch 9. Cryptography
Ch 10. Quantum computation
Ch 11. PCP theorem and hardness of approximation: an introduction
Part II. Lower Bounds for Concrete Computational Models:
Ch 12. Decision trees
Ch 13. Communication complexity
Ch 14. Circuit lower bounds
Ch 15. Proof complexity
Ch 16. Algebraic computation models
Part III. Advanced Topics:
Ch 17. Complexity of counting
Ch 18. Average case complexity: Levin's theory
Ch 19. Hardness amplification and error correcting codes
Ch 20. Derandomization
Ch 21. Pseudorandom constructions: expanders and extractor
Ch 22. Proofs of PCP theorems and the Fourier transform technique
Ch 23. Why are circuit lower bounds so difficult?Appendix A: mathematical background.