Theory of Computing: Computability and Complexity (#comcomMOOC)

course duration:Self-study course
Instructor:Andreas Schäfer
Duration:6 weeks

What is this course about?

Formal Languages and Automata provide the basis for analyzing user input from addresses in web forms to complex Java code. This 3-part course provides the basics of the theory. It also shows the limits of each machine model and finally the limits of computability in general.

This course, building on the previous two, discusses Turing machines and problems of decideabiliy and complexity.

What do you learn in this course?

With the help of this course, we want you to achieve the following learning outcomes:

  • You can describe basic principles of Turing machines.
  • You can discuss the problem of undecidability and name multiple examples.
  • You can distinguish between undecidable and semi-decidable problems.
  • You can describe the idea of the time complexity classes P and NP.
  • You can elaborate on the basic idea of space complexity.

How is the course structured?

  1. Organization
  2. Turing machines
  3. Undecideable Problems
  4. Semi-decideable Problems
  5. Time Complexity
  6. Space Complexity

Who leads you through the course?

Prof. Dr. Andreas Schäfer

Prof. Dr. Andreas Schäfer

Andreas Schäfer

Andreas Schäfer received his PhD 2007 from the Carl von Ossietzky University in Oldenburg, Germany. 

He then worked at the European Patent Office for 5 years. Since 2012 he is Professor of Computer 

Science  at the Technische Hochschule Lübeck. His interests include Automata Theory, Logic and Formal Methods. 


In this course, you can earn Training certificate.


Technische Hochschule Lübeck

Cooperation partners

RWTH AachenKiron

Supported by

Federal Ministry of Education  


Unless there is no licence specified, the content is licenced under

Creative Commons - Attribution 4.0 International (CC BY 4.0)

Creative Commons - Attribution 4.0 International (CC BY 4.0)

This might also be of interest to you