Back

Theoretical Computer Science

Tutor (for lectures and tutorials):

News

Recent information about the course Theoretical Computer Science will appear here during the semester.


Content of the Course

The aim of the course is to introduce students to some basics of the following areas of theoretical computer science:

Preliminary Program of Lectures

  1. Introduction. Formal languages. Deterministic finite automata.
  2. Operations on Languages. Nondeterministic finite automata.
  3. Minimization of finite automata. Regular Expressions.
  4. Context-free grammars and languages.
  5. Pushdown automata. Construction of compilers.
  6. Algorithms and algorithmic problems. Models of computation. Church-Turing thesis.
  7. Asymptotic notation. Complexity of algorithms.
  8. Complexity of problems. Complexity classes. Classes P and NP.
  9. Reductions between problems. NP-complete problems.
  10. Class PSPACE=NPSPACE. PSPACE-complete problems. Other complexity classes.
  11. Algorithmically undecidable problems.
  12. Aproximation algorithms. Randomized algorithms.

Requirements for a Credit

Presentation

Topics for presentations will be published during the semester and each student will obtain an assigned topic.

To obtain a credit, it is necessary prepare the presentation in a written form and present it to a tutor. Students must show during these presentations that they understand the given topic. A particular term for the presentations will be specified during the semester.

It is possible to obtain up to 10 points for the presentation. It is necessary to obtain at least 5 points.

If some student does not obtain the necessary 5 points for his/her presentation, it is possible to do the presentation once again, however, the maximal number of points will be only 5 points in this case, while the required minimal number of points is 1 point.

Topics of presentations for the winter term 2021/22: topics.pdf

Written Test

There will be a written test during the semester. It will be possible to get up to 21 points from this test, while the minimum necessary to obtain a credit is 7 points.

The test will be written on some of tutorials. Particular date will be specified during the semester.

There will be some alternative date specified for students that due to some important reasons (e.g., illness) can not attend the written test in the regular date.

Students that do not obtain the necessary 7 points from the written test will have the possibility to obtain these points on a correcting test. However, it will be possible to obtain only a smaller number of points and it will be still necessary to obtain at least 7 point. (Points for a credit will be assigned according to the correcting test in this case.)

Activity on Tutorials

It is possible to obtain up to 7 points. The points for activity are added to the total number of obtained points but they are not required to obtain a credit.


Exam

It is possible to obtain up to 62 points for an exam. The exam will be in a written form.

The exam consists of two parts, it is possible to obtain up to 31 points from each part.

It is necessary to obtain at least 11 points from each of these two parts.


Materials

Slides from Lectures

Slides from lectures from the school year 2022/2023 will be published here during the semester.

Exercises for tutorials

Exercises for tutorials for the school year 2022/2023 will be published during the semester:

Animations


Supplemental Literature


Back