Michael Sipser's 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 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.
This highly anticipated revision builds upon the strengths of the previous edition. Sipser's candid, crystal-clear style allows students at every level to understand and enjoy this field. Important Notice: Media content referenced within the product description or the product text may not be available in the ebook version.
Introduction to Languages and the Theory of Computation is an introduction to the theory of computation that emphasizes formal languages, automata and abstract models of computation, and computability; it also includes an introduction to computational complexity and NP-completeness. Through the study of these topics, students encounter profound computational questions and are introduced to topics that will have an ongoing impact in computer science. Once students have seen some of the many diverse technologies contributing to computer science, they can also begin to appreciate the field as a coherent discipline. A distinctive feature of this text is its gentle and gradual introduction of the necessary mathematical tools in the context in which they are used. Martin takes advantage of the clarity and precision of mathematical language but also provides discussion and examples that make the language intelligible to those just learning to read and speak it. The material is designed to be accessible to students who do not have a strong background in discrete mathematics, but it is also appropriate for students who have had some exposure to discrete math but whose skills in this area need to be consolidated and sharpened.
The aim of this textbook is to present an account of the theory of computation. After introducing the concept of a model of computation and presenting various examples, the author explores the limitations of effective computation via basic recursion theory. Self-reference and other methods are introduced as fundamental and basic tools for constructing and manipulating algorithms. From there the book considers the complexity of computations and the notion of a complexity measure is introduced. Finally, the book culminates in considering time and space measures and in classifying computable functions as being either feasible or not. The author assumes only a basic familiarity with discrete mathematics and computing, making this textbook ideal for a graduate-level introductory course. It is based on many such courses presented by the author and so numerous exercises are included. In addition, the solutions to most of these exercises are provided.
This the Second Edition of Lewis and Papadimtriou's best-selling theory of computation text. In this substantially modified edition, the authors have enhanced the clarity of their presentation by making the material more accessible to a broader undergraduate audience with no special mathematical experience. For example, long proofs have been simplified and/or truncated, with their more technical points delegated to exercises, advanced material is presented in an informal and friendly manner, and problems follow each section to check student comprehension. The book continues to comprise a mathematically sound introduction to the classical and contemporary theory of computation, and provide deep insights into the fundamental paradigms of computer science.
This book provides a concise and modern introduction to Formal Languages and Machine Computation, a group of disparate topics in the theory of computation, which includes formal languages, automata theory, turing machines, computability, complexity, number-theoretic computation, public-key cryptography, and some new models of computation, such as quantum and biological computation. As the theory of computation is a subject based on mathematics, a thorough introduction to a number of relevant mathematical topics, including mathematical logic, set theory, graph theory, modern abstract algebra, and particularly number theory, is given in the first chapter of the book. The book can be used either as a textbook for an undergraduate course, for a first-year graduate course, or as a basic reference in the field.
Starting with the fundamentals of number theory, this text advances to an intermediate level. Author Harold N. Shapiro, Professor Emeritus of Mathematics at New York University's Courant Institute, addresses this treatment toward advanced undergraduates and graduate students. Selected chapters, sections, and exercises are appropriate for undergraduate courses. The first five chapters focus on the basic material of number theory, employing special problems, some of which are of historical interest. Succeeding chapters explore evolutions from the notion of congruence, examine a variety of applications related to counting problems, and develop the roots of number theory. Two "do-it-yourself" chapters offer readers the chance to carry out small-scale mathematical investigations that involve material covered in previous chapters.
This textbook presents a thorough foundation to the theory of computation. Combining intuitive descriptions and illustrations with rigorous arguments and detailed proofs for key topics, the logically structured discussion guides the reader through the core concepts of automata and languages, computability, and complexity of computation. Topics and features: presents a detailed introduction to the theory of computation, complete with concise explanations of the mathematical prerequisites; provides end-of-chapter problems with solutions, in addition to chapter-opening summaries and numerous examples and definitions throughout the text; draws upon the author’s extensive teaching experience and broad research interests; discusses finite automata, context-free languages, and pushdown automata; examines the concept, universality and limitations of the Turing machine; investigates computational complexity based on Turing machines and Boolean circuits, as well as the notion of NP-completeness.