Fundamentals of the Theory of Computation

This innovative textbook presents the key foundational concepts that can be covered in a one semester undergraduate course in the theory of computation. It offers the most accessible and motivational course material available for undergraduate computer theory classes and is directed at the typical undergraduate who may have difficulty understanding the relevance of the course to their future careers. The text helps make students more comfortable with techniques required for the deeper study of computer science. This text is a bridge between theory and practice. It shows how theory is motivated by practical problems, and in turn how theory influences the practice of computing. Simple tools like string matchers, complex tools like compilers,and general notions like cryptographic security all lie at the interface between principles and practice. * Contains coverage of contemporary topics: languages and problems, machine models, grammars, reductions, resource...