Skip to main content
  • Textbook
  • © 2016

Limits of Computation

From a Programming Perspective

Authors:

  • Illustrates proofs by means of programs written in a high-level imperative programming language
  • Includes chapters on the emergent fields of molecular and quantum computing
  • Highlights countless connections to all areas in computer science
  • Includes supplementary material: sn.pub/extras

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

Buy it now

Buying options

eBook USD 44.99
Price excludes VAT (USA)
  • Available as EPUB and PDF
  • Read on any device
  • Instant download
  • Own it forever
Softcover Book USD 59.99
Price excludes VAT (USA)
  • Compact, lightweight edition
  • Dispatched in 3 to 5 business days
  • Free shipping worldwide - see info

Tax calculation will be finalised at checkout

Other ways to access

This is a preview of subscription content, log in via an institution to check for access.

Table of contents (23 chapters)

  1. Front Matter

    Pages i-xviii
  2. Limits? What Limits?

    • Bernhard Reus
    Pages 1-9
  3. Computability

    1. Front Matter

      Pages 11-11
    2. Problems and Effective Procedures

      • Bernhard Reus
      Pages 13-28
    3. The WHILE-Language

      • Bernhard Reus
      Pages 29-45
    4. Semantics of WHILE

      • Bernhard Reus
      Pages 47-54
    5. Extensions of WHILE

      • Bernhard Reus
      Pages 55-63
    6. Programs as Data Objects

      • Bernhard Reus
      Pages 65-70
    7. A Self-interpreter for WHILE

      • Bernhard Reus
      Pages 71-86
    8. An Undecidable (Non-computable) Problem

      • Bernhard Reus
      Pages 87-96
    9. More Undecidable Problems

      • Bernhard Reus
      Pages 97-112
    10. Self-referencing Programs

      • Bernhard Reus
      Pages 113-121
    11. The Church-Turing Thesis

      • Bernhard Reus
      Pages 123-148
  4. Complexity

    1. Front Matter

      Pages 149-149
    2. Measuring Time Usage

      • Bernhard Reus
      Pages 151-160
    3. Complexity Classes

      • Bernhard Reus
      Pages 161-171
    4. Robustness of P

      • Bernhard Reus
      Pages 173-181
    5. Hierarchy Theorems

      • Bernhard Reus
      Pages 183-194
    6. Famous Problems in P

      • Bernhard Reus
      Pages 195-216
    7. Common Problems Not Known to Be in P

      • 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. 

Reviews

“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)

Authors and Affiliations

  • Department of Informatics, University of Sussex, Brighton, United Kingdom

    Bernhard Reus

About the author

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

Buy it now

Buying options

eBook USD 44.99
Price excludes VAT (USA)
  • Available as EPUB and PDF
  • Read on any device
  • Instant download
  • Own it forever
Softcover Book USD 59.99
Price excludes VAT (USA)
  • Compact, lightweight edition
  • Dispatched in 3 to 5 business days
  • Free shipping worldwide - see info

Tax calculation will be finalised at checkout

Other ways to access