Information on the course Theoretical Computer Science 1
(formerly Automata and Formal Languages
) is kept here.
To give the student an introduction to a mathematical framework for two central concepts in computer science:
that of formal languages (e.g., such as programming languages) and that of computation. A study of formal
languages and the correspondence between language classes and the automata that recognise them will be
presented. Formal definitions of finite state automata and pushdown automata, deterministic and nondeterministic
systems, context-free grammars and their ambiguity, finally Turing machines will be discussed.
- deterministic and nondeterministic finite automata
- regular expressions
- pumping lemma for regular languages
- Context-free languages
- context-free grammars
- pushdown automata
- Chomsky normal form
- pumping lemma for context-free languages
- Turing machines
- formal definition of a Turing machine
- Turing-recognisable and Turing-decidable languages
- variants of Turing machines
- definition of an algorithm
The text book for this course is Michael Sipser's "Introduction to the Theory of Computation"
Cengage Learning, 3rd edition (EMEA), 2013.
Lecture notes are available via Moodle
Further information can be found on Moodle