is an associate professor in computer science at McMaster University in Ontario, Canada. He finished his Ph.D. in 2001 at the University of Toronto, under the supervision of Stephen Cook. He was a Visiting Ulam Professor in the Department of Mathematics at the University of Colorado at Boulder during the academic year 2007/2008. His research interests are computational complexity and logic. He is particularly interested in proof complexity, an area which investigates logical systems that use restricted reasoning based on concepts from computational complexity.
This book is a quick introduction, at a graduate level, to the field of computational complexity. It aims at presenting a collection of classical results in the field, rather than a comprehensive overview of complexity. It includes chapters on circuit complexity, proof complexity (a subfield of complexity that is rarely presented in similar textbooks) and randomized algorithms.
The material from which the book arises has been used as a graduate special topics course at McMaster University in Canada, the Jagiellonian University in Poland and the University of Colorado at Boulder in the U.S.A. The book provides a peek into powerful methods that have been used in attacks against the fundamental question of theoretical computer science, namely the famous P=NP question. It is the techniques themselves that have been emphasized by the Author, rather than the results obtainable by employing them. Thus, an important feature of the book is precisely that it affords a quick introduction to these techniques. For this reason the book might be of interest to anyone starting to work on problems in the fascinating field of computational complexity.