Introduction to the theory of computationMichael Sipser's philosophy in writing this book is simple: make the subject interesting and relevant, and the students will learn. His emphasis on unifying computer science theory  rather than offering a collection of lowlevel details  sets the book apart, as do his intuitive explanations. Throughout the book, Sipser  a noted authority on the theory of computation  builds students' knowledge of conceptual tools used in computer science, the aesthetic sense they need to create elegant systems, and the ability to think through problems on their own. INTRODUCTION TO THE THEORY OF COMPUTATION provides a mathematical treatment of computation theory grounded in theorems and proofs. Proofs are presented with a "proof idea" component to reveal the concepts underpinning the formalism. Algorithms are presented using prose instead of pseudocode to focus attention on the algorithms themselves, rather than on specific computational models. Topic coverage, terminology, and order of presentation are traditional for an upperlevel course in computer science theory. Users of the Preliminary Edition (now out of print) will be interested to note several new chapters on complexity theory: Chapter 8 on space complexity; Chapter 9 on provable intractability, and Chapter 10 on advanced topics, including approximation algorithms, alternation, interactive proof systems, cryptography, and parallel computing. 
What people are saying  Write a review
User ratings
5 stars 
 
4 stars 
 
3 stars 
 
2 stars 
 
1 star 

Review: Introduction to the Theory of Computation
User Review  Shawn  GoodreadsI recently took a Finite Automata course in which we actually only covered about half of the material presented in the book. It was very wellwritten and for the most part pretty easy to follow. I'm ... Read full review
Review: Introduction to the Theory of Computation
User Review  Captain Hampton  GoodreadsOne of the texts used for a computational complexity class I had quite a while ago. It's a bit less dense than some other texts on the subject, but still manages to get into many of the core bits of computational complexity theory. Ideal text for an undergraduate course on the subject. Read full review
Contents
Introduction IONvJ0JlJJvllI  1 
Regular Languages  31 
ContextFree Languages  91 
Copyright  
10 other sections not shown
Common terms and phrases
3SAT alphabet arrows automata binary Boolean circuit Boolean formula branch called cell Chomsky normal form clause computation history construct contains contextfree grammar contextfree language convert corresponding decidable decidable language deﬁne describe deterministic directed graph edges encoding equivalent example exponential FIGURE ﬁnd ﬁnger ﬁnite automaton ﬁrst ﬁxed following ﬁgure formal deﬁnition function f give GNFA graph G halts Hence induction inﬁnite input string integer labeled log space mathematical move natural numbers nondeterministic nondeterministic Turing machine notation NPcomplete operation oracle output parse tree Player polynomial polynomial time algorithm polynomial time reducible PROOF IDEA prove PSPACE pumping lemma pushdown automaton quantiﬁers recognizes recursion theorem regular expression regular languages reject runs satisﬁable satisfying assignment sequence simulation space complexity stage statement steps strings of length tape transition function true Turing machine Turingrecognizable undecidable variables Veriﬁer write