## FI MU Study Catalogue 2019/2020

follow-up 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 non-classical 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 non-classical 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 non-trivial algorithms enable the students to find jobs in the financial sector. The acquired knowledge and skills may be well used also in the follow-up 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 |
---|---|

`IA008` |
Computational Logic |

`IA012` |
Complexity |

`IV003` |
Algorithms and Data Structures II |

`IV054` |
Coding, Cryptography and Cryptographic Protocols |

`IV111` |
Probability in Computer Science |

`MA007` |
Mathematical Logic |

`PA152` |
Efficient Use of Database Systems |

`PA159` |
Net-Centric Computing I |

`SOBHA` |
Defence of Thesis |

`SZMGR` |
State Exam (MSc degree) |

### Specialization: Algorithms and Computational Models

Specialization Algorithms and 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 non-classical 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 |

`IA077` |
Advanced Quantum Information Processing |

`IA082` |
Physical concepts of quantum information processing |

`IA101` |
Algorithmics for Hard Problems |

`MA017` |
Geometric Algorithms |

`MA018` |
Numerical Methods |

`PV021` |
Neural Networks |

#### Recommended course of study

##### Fall 2019 (1. term)

##### Spring 2020 (2. term)

##### Fall 2020 (3. term)

### Specialization: Formal Verification and Program Analysis

The specialization Formal verification and analysis of programs 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

`IA010` |
Principles of Programming Languages |
---|---|

`IA011` |
Programming Language Semantics |

`IA072` |
Seminar on Verification |

`IA159` |
Formal Verification Methods |

`IA168` |
Algorithmic game theory |

`IA169` |
System Verification and Assurance |

`IV022` |
Design and verification of algorithms |

`PA008` |
Compiler Construction |

`PV260` |
Software Quality |

#### Recommended course of study

##### Fall 2019 (1. term)

##### Spring 2020 (2. term)

##### Fall 2020 (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 |
---|---|

`IA011` |
Programming Language Semantics |

`IA014` |
Advanced Functional Programming |

`IA081` |
Lambda calculus |

`IA158` |
Real Time Systems |

`IV010` |
Communication and Parallelism |

`PA008` |
Compiler Construction |

`PA037` |
Compiler Project |