Computation lies at the heart of modern digital technology and our increasingly advanced information society. The theory of computation describes what tasks can and cannot be computed, and why this should be.This focused and accessible guide/textbook presents a thorough foundation to the theory of computation, whilst also providing a deeper insight for those looking to pursue research in this field. 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. Self-contained and supported by practical examples, the text is suitable for a one- or two-semester undergraduate course in the theory 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.This hands-on and easy-to-read textbook/reference is ideal for undergraduate students of computer science and related disciplines needing to develop a deep understanding of this fascinating field, even if they have no prior knowledge of the subject.
Concise Guide to Computation Theory