© 2016

Limits of Computation

From a Programming Perspective


Part of the Undergraduate Topics in Computer Science book series (UTICS)

Table of contents

  1. Front Matter
    Pages i-xviii
  2. Bernhard Reus
    Pages 1-9
  3. Computability

    1. Front Matter
      Pages 11-11
    2. Bernhard Reus
      Pages 13-28
    3. Bernhard Reus
      Pages 29-45
    4. Bernhard Reus
      Pages 47-54
    5. Bernhard Reus
      Pages 55-63
    6. Bernhard Reus
      Pages 65-70
    7. Bernhard Reus
      Pages 71-86
    8. Bernhard Reus
      Pages 87-96
    9. Bernhard Reus
      Pages 97-112
    10. Bernhard Reus
      Pages 113-121
    11. Bernhard Reus
      Pages 123-148
  4. Complexity

    1. Front Matter
      Pages 149-149
    2. Bernhard Reus
      Pages 151-160
    3. Bernhard Reus
      Pages 161-171
    4. Bernhard Reus
      Pages 173-181
    5. Bernhard Reus
      Pages 183-194
    6. Bernhard Reus
      Pages 195-216
    7. Bernhard Reus
      Pages 217-226

About this book


This textbook discusses the most fundamental and puzzling questions about the foundations of computing. In 23 lecture-sized chapters it provides an exciting tour through the most important results in the field of computability and time complexity, including the Halting Problem, Rice's Theorem, Kleene's Recursion Theorem, the Church-Turing Thesis, Hierarchy Theorems, and Cook-Levin's Theorem. Each chapter contains classroom-tested material, including examples and exercises. Links between adjacent chapters provide a coherent narrative.

Fundamental results are explained lucidly by means of programs written in a simple, high-level imperative programming language, which only requires basic mathematical knowledge. Throughout the book, the impact of the presented results on the entire field of computer science is emphasised. Examples range from program analysis to networking, from database programming to popular games and puzzles.  Numerous biographical footnotes about the famous scientists who developed the subject are also included.

"Limits of Computation" offers a thorough, yet accessible, introduction to computability and complexity for the computer science student of the 21st century.


Computability Computational Complexity Fixpoint Theorem Halting Problem Graph Theory

Authors and affiliations

  1. 1.Department of InformaticsUniversity of SussexBrightonUnited Kingdom

About the authors

Dr. Bernhard Reus is a Senior Lecturer in the Department of Informatics at the University of Sussex, with 15 years experience in teaching computability and complexity. 

Bibliographic information

  • Book Title Limits of Computation
  • Book Subtitle From a Programming Perspective
  • Authors Bernhard Reus
  • Series Title Undergraduate Topics in Computer Science
  • Series Abbreviated Title Undergraduate Topics Computer Sci.
  • DOI
  • Copyright Information Springer International Publishing Switzerland 2016
  • Publisher Name Springer, Cham
  • eBook Packages Computer Science Computer Science (R0)
  • Softcover ISBN 978-3-319-27887-2
  • eBook ISBN 978-3-319-27889-6
  • Series ISSN 1863-7310
  • Series E-ISSN 2197-1781
  • Edition Number 1
  • Number of Pages XVIII, 348
  • Number of Illustrations 80 b/w illustrations, 0 illustrations in colour
  • Topics Algorithm Analysis and Problem Complexity
    Mathematics of Algorithmic Complexity
  • Buy this book on publisher's site
Industry Sectors
Materials & Steel
IT & Software
Consumer Packaged Goods
Finance, Business & Banking
Energy, Utilities & Environment


“This is a textbook about computability and complexity delivered as a one-semester final year module for undergraduates. ... There are quite a few exercises and dozens of important references at the end of each chapter, as well as a lot of interesting historical footnotes throughout. ... book may serve not only as an undergraduate text, but also as a reference source.” (Haim Kilov, zbMATH 1376.68003, 2018)

“I think this is a very good update of Neil Jones’s brilliant approach at teaching computability and complexity in a nontraditional manner that may resonate with students who are not necessarily deeply interested in mathematical abstractions. … I think Reus’s book deserves a large readership and should be tried out as an alternative text … in computing and communications courses worldwide.” (Sitabhra Sinha, Computing Reviews, January, 2017)

“The book under review is a textbook intended to provide the material for an introductory course on the classic theory of algorithms and modern complexity theory for senior undergraduate computer science students. … the book is a good, concise introduction to the fields of computability and complexity for students, and a good reference for working professionals in all areas of computer science and mathematics.” (M. I. Dekhtyar, Mathematical Reviews, November, 2016)