The theory of computation (Addison-Wesley, 1998)
Taking a practical approach, this modern introduction to the theory of computation focuses on the study of problem solving through computation in the presence of realistic resource constraints. The Theory of Computation explores questions and methods that characterize theoretical computer science while relating all developments to practical issues in computing. The book establishes clear limits to computation, relates these limits to resource usage, and explores possible avenues of compromise through approximation and randomization. The book also provides an overview of current areas of research in theoretical computer science that are likely to have a significant impact on the practice of computing within the next few years.