Theoretical Computer Science

Course code

IFI6212.DT

old course code

Course title in Estonian

Teoreetiline informaatika

Course title in English

Theoretical Computer Science

ECTS credits

4.0

Assessment form

Examination

lecturer of 2022/2023 Spring semester

Not opened for teaching. Click the study programme link below to see the nominal division schedule.

lecturer of 2023/2024 Autumn semester

Not opened for teaching. Click the study programme link below to see the nominal division schedule.

Course aims

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.

Learning outcomes in the course

Upon completing the course the student:

- 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.

- 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.

Teacher

Peeter Normak, PhD