Information on the course
Theoretical Computer Science 1 (formerly
Automata and Formal Languages) is kept here.
Instructors
Objectives
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.
Content
- Regular-languages
- 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
Reading material
The text book for this course is Michael Sipser's
"Introduction to the Theory of Computation",
Cengage Learning, 3rd edition (EMEA), 2013.
ISBN-10: 113318779X
ISBN-13: 978-1133187790
Lecture notes are available via
Moodle.
Moodle
Further information can be found on
Moodle.