A practical introduction to essential topics at the core of computer science
Automata, formal language, and complexity theory are central to the understanding of computer science. This book provides, in an accessible, practically oriented style, a thorough grounding in these topics for practitioners and students on all levels.
Based on the authors' belief that the problem-solving approach is the most effective, Problem Solving in Automata, Languages, and Complexity collects a rich variety of worked examples, questions, and exercises designed to ensure understanding and mastery of the subject matter. Building from the fundamentals for beginning engineers to more advanced concepts, the book examines the most common topics in the field, including:
- Finite-state automata
- Context-free grammars
- Turing machines
- Recursive and recursively enumerable languages
- Computability theory
- Complexity classes
Focused, practical, and versatile, Problem Solving in Automata, Languages, and Complexity gives students and engineers a solid grounding in essential areas in computer science.