translated by Google

Machine-translated page for increased accessibility for English questioners.

Theoretical computer science

The study of theoretical computer science is focused on a deeper understanding of the basic principles on which modern information technologies are based, including non-classical computer systems such as neural networks or quantum computers. In addition to the active acquisition of knowledge of a theoretical and technical nature, special emphasis is placed on the development of abstract thinking.

Students will master advanced algorithmic procedures, gain insight into the principles of modern programming languages, learn about methods for analysis, testing and verification of code, and understand the possibilities and limitations of emerging computing devices that operate on different principles than conventional computers. The acquired knowledge and skills will prepare students for expert analytical work, which may include independent research.

The candidate chooses one of the specializations Discrete algorithms and models, Formal analysis of computer systems, Quantum and other non-classical computational models or Principles of programming languages.

Application for study
Admission Procedure Guide

Czech study program
Form full-time
Study time 2 years
Graduate profile

The graduate of the program is ready to work in companies focused on the design and development of software systems, especially in the positions of analyst, software architect or verifier. It can also be used in companies providing consulting and advisory services in the field of informatics. A solid mathematical foundation together with knowledge of non-trivial algorithmic procedures are a good prerequisite for working in the financial sector. The graduate can also use the acquired knowledge and skills very well in the follow-up doctoral study.

Where after this study?
Graduate employment survey

FI graduates are valued in practice, their average gross starting salary has been more than CZK 45,000 in the last few years, according to a survey of all levels of study. More about the employment of graduates

Meet successful graduates

Gallery of graduates

We are preparing more information about graduates for you.

Study catalog

In the study catalog you will find lists of compulsory and optional subjects and a recommended course of study.

Study catalog


The internship is not planned as part of the study.


Specializations are study plans that set out the conditions for graduation, such as compulsory subjects.

Discrete algorithms and models

Students will gain advanced knowledge in a wide range of areas of theoretical computer science and related areas of mathematics. Graduates of the specialization will be able to solve very demanding tasks in selected areas of theoretical computer science and will have basic experience with scientific work similar to doctoral studies.

Solving a challenging task

Formal analysis of computer systems

The specialization is focused on formal methods for modeling, analysis, testing and verification of computer programs, which are a key part of the development of modern software systems. Students will gain the necessary theoretical basis in the field of formal methods, a deeper insight into the principles of modern verification tools and a set of practice-oriented skills that can be used in teams responsible for ensuring the quality of software products.

Workload in the ParaDiSe laboratory

Quantum and other nonclassical computational models

The specialization introduces students to methods of solving problems that are computationally demanding on classical computers. Graduates will also be introduced to the principles, advantages and limitations of non-classical computing systems such as neural networks or quantum computers.

Quantum Information & Computation Magazine

Principles of programming languages

The specialization provides a deeper insight into the paradigms of modern programming languages and the structure of their compilers. Graduates are able to choose the optimal programming tools for a given type of application and can quickly learn new programming languages.

Code development is what we enjoy