Introduction to the Theory of Computation
Michael 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 low-level 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 upper-level 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
Review: Introduction to the Theory of ComputationUser Review - Chris Herdt - Goodreads
This was a surprisingly well-organized and well-written textbook. I consulted some additional texts on the subject during the course I was taking, but this book was superior to any of them. I would ... Read full review
10 other sections not shown
Other editions - View all
3SAT alphabet arrows automata binary Boolean circuit Boolean formula branch called cell Chomsky normal form clause computation history construct contains context-free grammar context-free 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 NP-complete 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 Turing-recognizable undecidable variables Veriﬁer write