COM2109 Automata, Computation and Complexity
| Summary |
This module introduces the theoretical foundations for
computing systems: finite state machines, pushdown
automata, and Turing machines, along with the formal
languages that can be recognised by these machine models.
It also deals with the question 'What is computable?'
and 'What is efficiently computable?' by showing when
problems are computationally hard, and how to find
algorithmic solutions to computationally hard problems.
|
| Session |
Academic Year 2026/27 |
| Credits |
20 |
| Assessment |
Autumn
Formal exam Spring
Formal exam
|
| Lecturer(s) |
Dr Bei Peng, Mr Mike Cruchten, Prof Parinya Chalermsook & Dr Swagato Sanyal |
| Resources |
|
| Aims |
This unit aims to:
- Introduce machine models (i.e. models of computation)
and the corresponding notions of formal languages;
- Introduce complexity theory and algorithmic solutions
to computationally hard problems;
- Enhance analytical and logical skills in reasoning
abstractly (about computation and complexity);
- Teach the foundations of theoretical computer
science, providing a thorough grounding for theoretical
courses at more advanced levels.
|
| Learning Outcomes |
By the end of the unit, a candidate will be able to:
- Use different machine models and the formal languages
they are able to recognise.
- Show that a problem is computationally easy or hard.
- Identify algorithmic solutions for computationally hard
problems.
|
| Content |
Models of Computation (Semester 1)
- finite automata and regular languages
- pushdown automata and context free languages
- Turing machines and decidability
Computation and Complexity (Semester 2)
Time Complexity
- P vs. NP, NP-completeness, Cook-Levin theorem
- Techniques for proving NP-hardness
Algorithm Design Techniques:
- Dynamic Programming
- Network flows
- Linear Programming
Coping with Intractability:
- Approximation algorithms
- Heuristics
- Randomisation
|
| Teaching Method |
The theoretical background and techniques will be
presented in a series of formal lectures, 2 lectures per
week. Students will reinforce the material through
self-study, and through weekly problems classes where
students will apply analytical skills obtained in class.
Both lectures and problem classes are designed to achieve
objectives 1-4.
|
| Feedback |
Feedback on tutorial exercises and quizzes. |
|