DD2372 Automata and Languages 6.0 credits
This course will be discontinued.
Last planned examination: Spring 2024
Decision to discontinue this course:
The course will be discontinued at the end of the Autumn semester 2023 according to the Head of School decision: J-2021-2305.
Decision date: 14/10/2021
The course is given for the last time Spring semester 2022. The last opportunity for examination in the course is given in the Spring semester 2024.
The examination is conducted during the transition period within the framework of the course DD2373. The course modules HEMA, LABA and TENA in DD2372 are replaced by the course modules HEM1, LAB1 and TEN1 in DD2373.
Automata are mathematical machines, that is, abstract computing devices. Their purpose is to capture, study and compare different models and views of the abstract notion of computation and its various aspects. The computational power of automata can be characterized through the classes of languages (that is, sets of strings over a finite alphabet of symbols) they can recognize.
Important notions in computer science like state, nondeterminism and minimization are captured in the simple model of finite automata, which recognize the class of regular languages. Automata provide the basis for the implementation of many programming languages, with parsing being a typical application. Another important reason for studying automata is to capture the notion of effective computability, that is, to characterize the notion of computation as a process which can be physically implemented. This allows the important question to be posed: what problems can be decided algorithmically, and where are the limits to this?
Content and learning outcomes
Course contents
Part I. Finite Automata and Regular Languages: determinisation, model checking, regular expressions, state minimization, proving non-regularity with the pumping lemma, Myhill-Nerode Theorem, regular inference.
Part II. Pushdown Automata and Context-Free Languages: context-free grammars and languages, parsing, Chomsky-Schützenberger Theorem, modelling the behaviour of programs with recursion, proving non-context-freeness with the pumping lemma, pushdown automata.
Part III. Turing Machines and Effective Computability: Turing machines, recursive sets, universal Turning machines, decidable and undecidable problems, Rice's theorem, other models of effective computability.
Intended learning outcomes
The overall aim of the course is to provide students with a profound understanding of computation and effective computability through the abstract notion of automata and the language classes they recognize. Along with this, the students will get acquainted with the important notions of state, nondeterminism and minimization.
After the course, the students will be able to:
1) Account for the main classes of automata and structural representations (regular expressions and grammars) and the corresponding language classes: Construct an automaton or a grammar from an informal language description [for grade E].
2) Relate the various classes by means of language-preserving transformations; apply the transformations for solving concrete problems: Apply the transformations on concrete examples [E], define new transformations [C], prove the transformations to be language-preserving [A].
3) For each language class, explain the main characterisation theorems; apply the theorems for solving concrete problems: Explain the easier theorems on concrete examples [E], explain the more difficult theorems on concrete examples [C], apply the theorems to prove various language properties [A].
Literature and preparations
Specific prerequisites
Recommended prerequisites
SF1610/SF1630/SF1688 Discrete Mathematics and DD1350 Logic for Computer Science, or the equivalent.
Equipment
Literature
Examination and completion
If the course is discontinued, students may request to be examined during the following two academic years.
Grading scale
Examination
- HEMA - Exercises, 2.5 credits, grading scale: P, F
- LABA - Laboratory work, 2.0 credits, grading scale: P, F
- TENA - Examination, 1.5 credits, grading scale: A, B, C, D, E, FX, F
Based on recommendation from KTH’s coordinator for disabilities, the examiner will decide how to adapt an examination for students with documented disability.
The examiner may apply another examination format when re-examining individual students.
In this course all the regulations of the code of honor at the School of Computer science and Communication apply, see: https://www.kth.se/en/csc/utbildning/hederskodex/.
Other requirements for final grade
Laboratory work (LAB1), home assignments including workshop (HEMA), and examination (TENA).
Opportunity to complete the requirements via supplementary examination
Opportunity to raise an approved grade via renewed examination
Examiner
Ethical approach
- All members of a group are responsible for the group's work.
- In any assessment, every student shall honestly disclose any help received and sources used.
- In an oral assessment, every student shall be able to present and answer questions about the entire assignment and solution.
Further information
Course room in Canvas
Offered by
Main field of study
Education cycle
Add-on studies
Contact
Transitional regulations
The examination is conducted during the transition period within the framework of the course DD2373. The course modules HEMA, LABA and TENA in DD2372 are replaced by the course modules HEM1, LAB1 and TEN1 in DD2373.