FI MU Study Catalogue 2023/2024
followup master's program (Czech) with specializations
The study of theoretical computer science focuses on a deeper understanding of basic principles underpinning the development of contemporary information technologies, including nonclassical computational devices such as neural networks or quantum computers. Together with the active mastering of advanced theoretical as well as practical concepts, a special emphasis is put on the development of abstract thinking. The students gain a deeper understanding of advanced algorithms, principles of modern programming languages, and methods for verification and analysis of computer programs. Further, they understand the basic advantages and limitations of nonclassical computational devices. After successfully completing the programme, the students are qualified for a wide variety of positions requiring complex expert skills.
After successfully completing the study programme, the students are qualified for a variety of IT positions including a developer, system architect, or verification engineer. Solid mathematical skills together with deep knowledge of nontrivial algorithms enable the students to find jobs in the financial sector. The acquired knowledge and skills may be well used also in the followup Ph.D. programme.
Requirements for successful graduation
 Obtain at least 120 credits overall and pass the final state exam.
 Obtain 20 credits from SDIPR subject and successfully defend Master's Thesis. See more details.
 Pass all the compulsory and elective courses of the program and selected specialization with the highest possible graduation form.
 Fulfil requirements of at least one specialization.
Compulsory subjects of the program
IA006 
Selected topics on automata theory 

Logic and reasoning Pass at least 1 course of the following list  
IA008

Computational Logic 
IA085

Satisfiability and Automated Reasoning 
IA011 
Programming Language Semantics 
IA012 
Complexity 
IV003 
Algorithms and Data Structures II 
IV111 
Probability in Computer Science 
MA007 
Mathematical Logic 
PV027 
Optimization 
SOBHA 
Defence of Thesis 
SZMGR 
State Exam (MSc degree) 
Specialization: Discrete algorithms and models
Students specializing in Discrete Algorithms and Models 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 from selected areas of theoretical computer science and will have basic experience with scientific work similar to doctoral studies.
Compulsory subjects of the specialization
IA101 
Algorithmics for Hard Problems 

IA168 
Algorithmic game theory 
MA010 
Graph Theory 
MA015 
Graph Algorithms 
Advanced mathematics and algorithms Pass at least 3 courses of the following list  
MA017

Geometric Algorithms 
PV021

Neural Networks 
IA174

Fundaments of Cryptography 
IA062

Randomized Algorithms and Computations 
PřF:M8190

Number Theoretic Algorithms 
MA009

Algebra II 
MA026

Advanced Combinatorics 
Choice of Seminar Obtain at least 2 credits by passing subjects of the following list  
IA072

Seminar on Verification 
IV115

Parallel and Distributed Laboratory Seminar 
IV131

Seminar of Discrete Methods and Algorithms Laboratory 
IV125

Formela lab seminar 
Recommended course of study
Fall 2023 (1. term)
Spring 2024 (2. term)
Fall 2024 (3. term)
Specialization: Quantum and other Nonclassical Computational Models
Specialization Quantum and other Nonclassical Computational Models will familiarize students with problem solving methods, which are computationally demanding on conventional computers. Graduates are also familiar with the principles, benefits and limitations of nonclassical computing systems such as neural networks or quantum computers.
Compulsory subjects of the specialization
IV100 
Parallel and distributed computations 

IA062 
Randomized Algorithms and Computations 
IA066 
Introduction to Quantum Computing 
IA082 
Physical concepts of quantum information processing 
IA101 
Algorithmics for Hard Problems 
IA174 
Fundaments of Cryptography 
PV056 
Machine Learning and Data Mining 
PV021 
Neural Networks 
Recommended course of study
Fall 2023 (1. term)
Spring 2024 (2. term)
Fall 2024 (3. term)
Specialization: Formal Analysis of Computer Systems
The specialization Formal Analysis of Computer Systems focuses on formal methods for modeling, analysis, testing, and verification of computer programs as one of the basic building blocks of software systems development. Students get acquainted with the principles of modern verification tools and master practical skills required for working in teams responsible for ensuring the quality of the software products (quality assurance teams).
Compulsory subjects of the specialization
IA023 
Petri Nets 

IA085 
Satisfiability and Automated Reasoning 
IA159 
Formal Methods for Software Analysis 
IA168 
Algorithmic game theory 
IA169 
Model Checking 
IA175 
Algorithms for Quantitative Verification 
IV120 
Continuous and Hybrid Systems 
Choice of Seminar Obtain at least 4 credits by passing subjects of the following list  
IA072

Seminar on Verification 
IV115

Parallel and Distributed Laboratory Seminar 
IV131

Seminar of Discrete Methods and Algorithms Laboratory 
IV125

Formela lab seminar 
Recommended course of study
Fall 2023 (1. term)
Spring 2024 (2. term)
Fall 2024 (3. term)
Specialization: Principles of Programming Languages
Specialization Principles of programming languages provide a deeper insight into the paradigms of modern programming languages and the structure of their compilers. Graduates can choose the optimal programming tools for a given application type and can quickly acquire new programming languages.
Compulsory subjects of the specialization
IA010 
Principles of Programming Languages 

IA014 
Advanced Functional Programming 
Advanced Types Pass at least 1 course of the following list  
IA038

Types and Proofs 
IA081

Lambda calculus 
IA158 
Real Time Systems 
IA174 
Fundaments of Cryptography 
IV010 
Communication and Parallelism 
PA008 
Compiler Construction 
PA037 
Compiler Project 