MT4512 Automata, Languages and Complexity
Academic year
2024 to 2025 Semester 2
Curricular information may be subject to change
Further information on which modules are specific to your programme.
Key module information
SCOTCAT credits
15
SCQF level
SCQF level 10
Availability restrictions
This module will run in alternate (even) years: 2020-21, 2022-23, 2024-25, etc. Not available to Joint Honours Mathematics and Computer Science students.
Planned timetable
10am Mon (even weeks), Tue and Thu
Module Staff
Dr Sophie Huczynska
Module description
This module concerns formal languages, and the machines that recognise them. It begins with regular languages and finite state machines, both deterministic and non-deterministic. We then go on to study pushdown automata and context-free grammars. Turing machines are introduced, followed by studies on decidability and the Halting problem. In the final third of the course, we introduce big-O notation, and study the complexity classes P, NP, co-NP, NP-hard, etc..
Relationship to other modules
Pre-requisites
BEFORE TAKING THIS MODULE YOU MUST PASS MT2504 OR ( (PASS CS2001 OR PASS CS2101) AND PASS CS2002 )
Anti-requisites
YOU CANNOT TAKE THIS MODULE IF YOU TAKE CS3052
Assessment pattern
90% exam, 10% continual assessment
Re-assessment
Oral examination = 100%
Learning and teaching methods and delivery
Weekly contact
2.5 lectures (X 10 weeks), 1 tutorial (X 10 weeks).
Intended learning outcomes
- Design finite state automata, pushdown automata and Turing machines to recognise (or decide) appropriate languages
- Use the Pumping Lemmas to prove that languages are not regular or not context free, and the Halting Theorem to prove that languages are undecidable
- Prove that a given language is in complexity class P or NP, and show that a given language is NP-complete
- State and prove all key results from lectures