Accessibility statement

Theory 3: Computability & Complexity - COM00023I

« Back to module search

  • Department: Computer Science
  • Module co-ordinator: Dr. Detlef Plump
  • Credit value: 10 credits
  • Credit level: I
  • Academic year of delivery: 2022-23
    • See module specification for other years: 2021-22

Module summary

Computability and Complexity

Related modules

Co-requisite modules

  • None

Prohibited combinations

  • None

Module will run

Occurrence Teaching period
A Autumn Term 2022-23

Module aims

The aim of this module is to introduce basic concepts and results in computability theory and complexity theory. In particular, students will learn the concepts of Turing-recognizable languages and Turing-computable functions, and the difference between solvable and unsolvable problems. They will be able to prove unsolvability by reduction. They will understand the time and space complexity of Turing machines, and complexity classes such as P, NP, PSpace, NPSpace and NPC. They will be able to prove NP-completeness by reduction.

Module learning outcomes


Determine a language’s place in the Chomsky hierarchy (regular, context-free, context-sensitive or recursively enumerable).


Provide examples of unsolvable problems.


Prove that a problem is unsolvable by reducing a known unsolvable problem to it.


Explain the Church-Turing thesis and its significance.


Define the classes P and NP, and explain their relation to the class ExpTime.


Explain the significance of NP-completeness and provide examples of NP-complete problems.


Task Length % of module mark
Online Exam -less than 24hrs (Centrally scheduled)
Theory 3 Exam
3 hours 100

Special assessment rules



Task Length % of module mark
Online Exam -less than 24hrs (Centrally scheduled)
Theory 3 Exam
3 hours 100

Module feedback

Feedback is provided through work in practical sessions, revision classes, and after the final assessment as per normal University guidelines.

Indicative reading

**** Martin, John C., Introduction to Languages and the Theory of Computation (4th ed.), McGraw Hill, 2010

** Rich, Elaine, Automata, Computability and Complexity, Pearson Education, 2008

** Sipser, Michael, Introduction to the Theory of Computation (3rd ed.), South-Western College Publishing, 2012

* Hopcroft, John E. and Motwani, Rajeev and Ullman, Jeffrey D., Introduction to Automata Theory, Languages and Computation (3rd ed.), Pearson Education, 2013

* Arora, Sanjeev and Barak, Boaz, Computational Complexity: A Modern Approach, Cambridge University Press, 2009

++ Garey, Michael R. and Johnson, David S., Computers and Intractability: A Guide to the Theory of NP-Completeness, W.H. Freeman, 1979

The information on this page is indicative of the module that is currently on offer. The University is constantly exploring ways to enhance and improve its degree programmes and therefore reserves the right to make variations to the content and method of delivery of modules, and to discontinue modules, if such action is reasonably considered to be necessary by the University. Where appropriate, the University will notify and consult with affected students in advance about any changes that are required in line with the University's policy on the Approval of Modifications to Existing Taught Programmes of Study.