Course title in Estonian
Course title in English
Theoretical Computer Science
approximate amount of contact lessons
lecturer of 2019/2020 Spring semester
õppejõud on määramata
lecturer of 2020/2021 Autumn semester
lecturer not assigned
The aim is to offer basic knowledge about the main structures of theoretical computer science – finite automata, formal languages, solvability, complexity – and their basic properties as well as skills to apply the knowledge acquired for solving various exercises.
Brief description of the course
Scope of theoretical computer science. Basic notions from graph theory and formal languages. Finite automata and recognizable languages. Regular expressions; correspondence between regular expressions and finite automata. Pumping-lemma for regular languages. Context-free grammars and their normal forms. Pumping-lemma for context-free languages. Pushdown automata. Turing machines and type 0 languages. Chomsky hierarchy. Solvability and complexity of algorithms. Petri nets.
Acquiring lecture notes and solving exercises.
Learning outcomes in the course
- Knows basic concepts, results and problems of a problem area (finite automata and formal languages) of theoretical computer science;
- Is able to solve exercises related to finite automata and formal languages;
- Is able to analyse finite automata, grammars and languages.
Exam. The score has two components: solving exercises (50%) and theoretical questions (50%).
Peeter Normak, PhD
Peeter Normak, Teoreetiline informaatika. Loengukonspekt. TLÜ informaatika instituut 2010
1. Michael Sipser (1997), Introduction to the Theory of Computation, ISBN 0-534-94728-X.
2. John C. Martin (2011), Introduction to Languages and the Theory of Computation, ISBN 9780071289429.
3. John E.Hopcroft, Rajeev Motwani, Jeffrey D.Ullman (2007), Introduction to automata theory, languages and computation, Addison-Wesley, (www-db.stanford.edu/~ullman/ialc.html).