Course detail

# Theoretical Computer Science Seminar

FIT-STIAcad. year: 2018/2019

The course has a form of practical demonstration exercises with an active participation of the students in solving various concrete problems from the areas of the theory of formal languages and automata as well as the theory of computability and complexity. The examples being solved fall into the areas of advanced theory and applications of regular languages, context-free and context languages, Turing machines, decidability, reductions of decidability problems, computable functions, and basics of complexity. The application areas include modeling of systems, formal analysis and verification, compilers, artificial intelligence, linguistics, etc.

Supervisor

Department

Learning outcomes of the course unit

A deeper understanding and an ability to apply knowledge from the theory of formal languages and the theory of computability and complexity. A student is able to apply the acquired knowledge when solving theoretical as well as practical problems in modelling of systems, programming, formal specification, design automation, verification, and/or artificial intelligence.

Broader and deeper abilities to formalize and solve problems of computer science as well as engineering, design algorithms as well as construct proofs. A student also acquires better abilities for research in various areas of computer science.

Prerequisites

Basic knowledge of the theory of algebra, graphs, as well as regular and context-free languages.

Co-requisites

Not applicable.

Recommended optional programme components

Not applicable.

Recommended or required reading

- Češka, M. a kol.: Vyčíslitelnost a složitost, Nakl. VUT Brno, 1993. ISBN 80-214-0441-8
- Češka, M., Rábová, Z.: Gramatiky a jazyky, Nakl. VUT Brno, 1992. ISBN 80-214-0449-3
- Kozen, D.C.: Automata and Computability, Springer-Verlag, New Yourk, Inc, 1997. ISBN 0-387-94907-0
- Hopcroft, J.E., Motwani, R., Ullman, J.D.: Introduction to Automata Theory, Languages, and Computation, Addison Wesley, 2. vydání, 2000. ISBN 0-201-44124-1
- Černá, I., Křetínský, M., Kučera, A.: Automaty a formální jazyky I, učební text FI MU, Brno, 1999.
- Gruska, J.: Foundations of Computing, International Thomson Computer Press, 1997. ISBN 1-85032-243-0

- Kozen, D.C.: Automata and Computability, Springer-Verlag, New Yourk, Inc, 1997. ISBN 0-387-94907-0
- Hopcroft, J.E., Motwani, R., Ullman, J.D.: Introduction to Automata Theory, Languages, and Computation, Addison Wesley, 2. vydání, 2000. ISBN 0-201-44124-1
- Martin, J.C.: Introduction to Languages and the Theory of Computation, McGraw-Hill, Inc., 3. vydání, 2002. ISBN 0-072-32200-4
- Brookshear, J.G.: Theory of Computation: Formal Languages, Automata, and Complexity, The Benjamin/Cummings Publishing Company, Inc, Redwood City, California, 1989. ISBN 0-805-30143-7
- Aho, A.V., Ullmann, J.D.: The Theory of Parsing,Translation and Compiling, Prentice-Hall, 1972. ISBN 0-139-14564-8

Planned learning activities and teaching methods

Not applicable.

Assesment methods and criteria linked to learning outcomes

A student can miss at most two lectures without a proper justification.

Language of instruction

Czech

Work placements

Not applicable.

Course curriculum

- Sets and relations. Strings, languages, and operations over them. Grammars, the Chomsky hierarchy of grammars and languages.
- Regular languages and finite-state automata (FSA), determinization and minimization of FSA, conversion of regular expressions to FSA.
- Kleene algebra. Pumping lemma, proofs of non-regularity of languages.
- Context-free languages and grammars. Transformations of context-free grammars.
- Operations on context-free languages and their closure properties. Pumping lemma for context-free languages.
- Push-down automata, (nondeterministic) top-down and bottom-up syntax analysis. Deterministic push-down languages.
- Turing machines.
- Recursive and recursively enumerable languages and their properties.
- Decidability, semi-decidability, and undecidability of problems, reductions of problems.
- Computable functions. Other Turing-complete computing mechanisms (automata with multiple push-down stacks, counter automata).
- Complexity classes. Properties of space and time complexity classes.
- NP problems. Polynomial reduction.
- Applications of results of theoretical computer science in compilers, automated verification, linguistics, etc. An overview of various areas extending the discussed subjects (automated learning of languages from patterns, tree languages with applications in verification or in XML manipulations, counter automata with constraints, hierarchies of undecidable problems, ...).

**Syllabus of lectures:**

Aims

To broaden student abilities to apply advanced knowledge from the theory of formal languages and automata as well as the theory of computability and complexity, and abilities to solve concrete theoretical as well as practical problems from the given area. The course covers, broadens, and practices all areas discussed in the course of Theoretical Computer Science, i.e., regular languages and finite automata, context-free languages and push-down automata, Turing machines, computability, recursive functions as well as complexity.

Specification of controlled education, way of implementation and compensation for absences

The participation of students is checked; a student can miss at most two lectures without a proper justification.

Classification of course in study plans

- Programme IT-MGR-2 Master's
branch MBI , 1. year of study, winter semester, 2 credits, elective

branch MPV , 1. year of study, winter semester, 2 credits, elective

branch MGM , 1. year of study, winter semester, 2 credits, elective

branch MSK , 1. year of study, winter semester, 2 credits, elective

branch MIS , 1. year of study, winter semester, 2 credits, elective

branch MBS , 1. year of study, winter semester, 2 credits, elective

branch MIN , 1. year of study, winter semester, 2 credits, elective

branch MMI , 1. year of study, winter semester, 2 credits, elective

branch MMM , 1. year of study, winter semester, 2 credits, elective

#### Type of course unit

Fundamentals seminar

26 hours, optionally

Teacher / Lecturer

Syllabus

- Sets and relations. Strings, languages, and operations over them. Grammars, the Chomsky hierarchy of grammars and languages.

- Regular languages and finite-state automata (FSA), determinization and minimization of FSA, conversion of regular expressions to FSA.

- Kleene algebra. Pumping lemma, proofs of non-regularity of languages.

- Context-free languages and grammars. Transformations of context-free grammars.

- Operations on context-free languages and their closure properties. Pumping lemma for context-free languages.

- Push-down automata, (nondeterministic) top-down and bottom-up syntax analysis. Deterministic push-down languages.

- Turing machines.

- Recursive and recursively enumerable languages and their properties.

- Decidability, semi-decidability, and undecidability of problems, reductions of problems.

- Computable functions. Other Turing-complete computing mechanisms (automata with multiple push-down stacks, counter automata).

- Complexity classes. Properties of space and time complexity classes.

- NP problems. Polynomial reduction.

- Applications of results of theoretical computer science in compilers, automated verification, linguistics, etc. An overview of various areas extending the discussed subjects (automated learning of languages from patterns, tree languages with applications in verification or in XML manipulations, counter automata with constraints, hierarchies of undecidable problems, ...).