'This book by two leading theoretical computer scientists provides a comprehensive, insightful and mathematically precise overview of computational complexity theory, ranging from early foundational work to emerging areas such as quantum computation and hardness of approximation. It will serve the needs of a wide audience, ranging from experienced researchers to graduate students and ambitious undergraduates seeking an introduction to the mathematical foundations of computer science. I will keep it at my side as a useful reference for my own teaching and research.' Richard M. Karp, University of California at Berkeley