An Introduction to Computability Theory provides an introduction to the essential concepts in computability, using several models of computation, from Turing machines to the modern computation models inspired by quantum physics. It is addressed to advanced undergraduate students, as a complement to programming courses, or to postgraduate students interested in foundations of computation and the theory of computability.
There are two parts in the book. The first highlights the traditional models of computation used in the first studies on computability:
- Automata and Turing Machines;
- Recursive functions and the Lambda-Calculus;
- Logic-based computation models.
The second part covers object-oriented and interaction-based models, and includes a chapter on concurrency and a chapter on emergent models of computation inspired by quantum mechanics and systems biology.
At the end of each chapter there is a list of exercises, solutions to selected exercises are provided in the final chapter of the book. The book gives an in-depth analysis of the basic concepts underlying each model of computation. It privileges the understanding of the basic techniques and their relationships over simply describing their properties.