Please note! Course description is confirmed for two academic years (1.8.2018-31.7.2020), which means that in general, e.g. Learning outcomes, assessment methods and key content stays unchanged. However, via course syllabus, it is possible to specify or change the course execution in each realization of the course, such as how the contact sessions are organized, assessment methods weighted or materials used.


After the course you know the most important mathematical models of computation and their characteristics. You can model computation using finite automata and describe simple syntactic patterns with regular expressions and context-free grammars. You understand the possibilities and limitations of the computation models and description formalisms studied during the course, and know their relationships. You understand how the Turing machine model characterises everything that can be computed with a computer program, and that there are well-defined problems that cannot be solved by any program.

Credits: 5

Schedule: 12.01.2021 - 14.04.2021

Teacher in charge (valid 01.08.2020-31.07.2022): Pekka Orponen

Teacher in charge (applies in this implementation): Pekka Orponen

Contact information for the course (applies in this implementation):

CEFR level (applies in this implementation):

Language of instruction and studies (valid 01.08.2020-31.07.2022):

Teaching language: English

Languages of study attainment: English


  • Valid 01.08.2020-31.07.2022:

    Finite automata and regular languages. Context-free grammars and pushdown automata. Turing machines and computability.

Assessment Methods and Criteria
  • Valid 01.08.2020-31.07.2022:

    Exam, tutorial problems and computerised assignments.

  • Valid 01.08.2020-31.07.2022:

    Lectures, teaching in small groups, independent work and exam.


Study Material
  • Valid 01.08.2020-31.07.2022:

    Lecture notes/slides and other separately announced study material. Supporting textbook (recommended but not obligatory): Michael Sipser, Introduction to the Theory of Computation.

Substitutes for Courses
  • Valid 01.08.2020-31.07.2022:

    CS-C2150 Theoretical Computer Science.

  • Valid 01.08.2020-31.07.2022:

    CS-A1110  Programming 1 and CS-A1120  Programming 2 or CS-A1111  Basic Course in Programming Y1 and CS-A1121  Basic Course in Programming Y2,
    MS-A0401/A0402/A0409 Foundations of discrete mathematics.

SDG: Sustainable Development Goals

    9 Industry, Innovation and Infrastructure



Registration and further information