FI MU Study Catalogue 2019/2020
Study catalogue in allinone version
The FI MU Study Catalogue is a document describing the conditions of study at the Faculty of Informatics in Bachelor's and Followup Master's Degree Programs, which are valid for students who have started their studies in one of those study programs in the given academic year. Faculty of Informatics is committed to preserve these conditions as much as possible during the whole period of studies.
Bachelor's Degree Programs
Followup Master's Degree Programs (English)
Bachelor's Degree Programs
bachelor's program without specializations supporting Major/Minor study
This study programme is recommended to students who intend to get fundamental knowledge in informatics and get acquainted with the general principals of making and using information technology. Besides, the basic orientation in the field students will get enough knowledge and practical training to be able to find employment in the field immediately after graduation. The programme offers some options to aim the profile of the education towards selected basic areas of computer science, such as computer graphics, data processing, information security, networking, artificial intelligence, and computer science.
Graduates may immediately start working on junior IT positions and will be ready to deepen their knowledge according to the needs of their employer. Graduates are also ready to continue their studies in any master degree programme related to informatics or to opt for some other discipline to get interesting interdisciplinary knowledge.
Requirements for successful graduation
 Obtain at least 180 credits overall and pass the final state exam.
 Obtain 10 credits for SBAPR subject and successfully defend Bachelor's Thesis. See more details.
 Fulfil requirements of a singlefield study option or Major study option.
 Pass all the compulsory and elective courses of the program, selected study option, and selected focus with the highest possible graduation form.
 Obtain at least two credits from Physical training. See University Sport Centre.
Compulsory subjects of the program
IB000 
Mathematical Foundations of Computer Science 

IB002 
Algorithms and data structures I 
IB005 
Formal Languages and Automata 
IB015 
NonImperative Programming 
IB111 
Foundations of Programming 
MB151 
Linear models 
MB152 
Differential and Integral Calculus 
MB153 
Statistics I 
MB154 
Discrete mathematics 
PB006 
Principles of Programming Languages and OOP 
PB007 
Software Engineering I 
PB071 
Principles of lowlevel programming 
PB151 
Computer Systems 
PB152 
Operating Systems 
PB154 
Database Systems 
PB156 
Computer Networks 
PV004 
UNIX 
PV080 
Information security and cryptography 
VB000 
Elements of Style 
VB001 
English Exam 
SBPrip 
Revisions for Bachelor State Exam 
SOBHA 
Defence of Thesis 
SZB 
State Exam (Bc degree) 
English Obtain at least 2 credits by passing subjects of the following list  
VB035

English I 
VB036

English II 
VV064

Academic and Professional Skills in English for IT 
Common university background Obtain at least 10 credits by passing subjects of the following list  
IV123

InformaticsDriven Future 
VB003

Economic Style of Thinking I 
VB004

Economic Style of Thinking II 
VB005

Panorama of Physics I 
VB006

Panorama of Physics II 
VB007

Philosophy of Science I 
VB008

Philosophy of Science II 
VB010

Philosophy of Language and Its Problems I 
VB011

Philosophy of Language and Its Problems II 
VB023

Folk Music 
VB041

The Principles of Legal Reasoning 
VB042

Intellectual Property 
VV014

Religionistics 
VV015

Political Science 
VV018

Topics in Religionistics 
VV019

Selected chapters in politology 
VV024

Interpretation of Texts 
VV026

Creative Writing Workshop 
VV027

Postmodern culture 
VV028

Psychology in Informatics 
VV030

Philosophy and Theories of the Mind 
VV031

Basics of Fine Art I 
VV032

Introduction to History of Fine Art II 
VV040

Theater Play 
VV063

Computers and Ergonomy 
VV065

Selected chapters in the Theory of Mind 
Study option: Singlefield study of Informatics
Compulsory subjects and other obligations of the study option
Pass all obligatory courses of the program.  
IB107 
Computability and Complexity 

IB031 
Introduction to Machine Learning 
PB016 
Artificial Intelligence I 
Programming Pass at least 1 course of the following list  
PB161

C++ Programming 
PB162

Java 
PB069

Desktop Application Development in C#/.NET 
Fulfil the conditions of at least one focus group. 
Focus groups
Informatics with no focus
This choice is recommended to students who intend to stay without any focus in their Bachelors' degree study.
PV065 
UNIX  Programming and System Management I 

MV008 
Algebra I 
PB009 
Principles of Computer Graphics 
PV003 
Relational Database System Architecture 
IB109 
Design and Implementation of Parallel Systems 
PV028 
Applied Information Systems 
PV005 
Computer Network Services 
Computer Systems, Communication and Security
This focus is recommended to students who intend to continue their studies in followup Masters' degree program Computer Systems, Communication and Security.
PV170 
Design of Digital Systems 

PV065 
UNIX  Programming and System Management I 
PB138 
Modern Markup Languages and Their Applications 
PV077 
UNIX  Programming and System Management II 
PV005 
Computer Network Services 
IB109 
Design and Implementation of Parallel Systems 
PV062 
File Structures 
Visual Informatics
This focus is recommended to students who intend to continue their studies in followup Masters' degree program Visual Informatics.
PB130 
Introduction to Digital Image Processing 

PB009 
Principles of Computer Graphics 
PV272 
3D Modelling 
PV112 
Computer Graphics API 
PV131 
Digital Image Processing 
Choice in visual informatics Obtain at least 2 credits by passing subjects of the following list  
PV160

Laboratory of HumanComputer Interaction 
PV162

Image Processing Project 
Graphic Design
This focus is recommended to students who intend to continue their studies in followup Masters' degree program Visual Informatics specialized in Graphic Design.
PB130 
Introduction to Digital Image Processing 

PV123 
Introduction to Visual Communication 
PB009 
Principles of Computer Graphics 
PV078 
Graphic Design I 
PV272 
3D Modelling 
PV066 
Typography I 
PV131 
Digital Image Processing 
PV084 
Type Design I 
Bioinformatics and System Biology
This focus is recommended to students who intend to continue their studies in followup Masters' degree program Artificial Intelligence and Data Processing specialized in Bioinformatics and System Biology.
IV107 
Bioinformatics I 

VV071 
Biochemistry for bioinformatics 
PA052 
Introduction to Systems Biology 
VV072 
Molecular biology for bioinformatics 
IV114 
Bioinformatics and Systems Biology Project 
PB051 
Computational methods in Bioinformatics and Systems Biology 
Math Informatics
This focus is recommended to students who intend to continue their studies in followup Masters' degree program Theoretical Computer Science or followup Masters' degree program Artificial Intelligence and Data Processing.
MV008 
Algebra I 

IV109 
Modeling and Simulation 
IV119 
Seminar on Discrete Mathematical Methods 
MA010 
Graph Theory 
MA018 
Numerical Methods 
Natural Language Processing
This focus is recommended to students who intend to continue their studies in followup Masters' degree program Artificial Intelligence and Data Processing specialized in Natural Language Processing.
MV008 
Algebra I 

IB030 
Introduction to Computational Linguistics 
IB047 
Introduction to Corpus Linguistics and Computer Lexicography 
PB095 
Introduction to Speech Processing 
PB106 
Corpus Linguistic Project I 
PV173 
Natural Language Processing Seminar 
Extended math education
When selecting this option, the obligation of courses with prefix MB is cancelled. This focus is recommended to students who intend to continue their studies in followup Masters' degree program Theoretical Computer Science or followup Masters' degree program Artificial Intelligence and Data Processing.
PřF:MIN101 
Mathematics I 

PřF:M1VM01 
Algorithmization and numerical computations 
PřF:MIN201 
Mathematics II 
PřF:MIN202 
Numerical calculations 
PřF:MIN301 
Mathematics III 
PřF:MIN401 
Mathematics IV 
PřF:M3121 
Probability and Statistics I 
PřF:M4122 
Probability and Statistics II 
Recommended course of study
Fall 2019 (1. term)
Spring 2020 (2. term)
Fall 2020 (3. term)
Spring 2021 (4. term)
Fall 2021 (5. term)
Study option: Major
Compulsory subjects and other obligations of the study option
Pass all obligatory courses of the program.  
Fulfill conditions of Minor of another study program. 
Recommended course of study
Fall 2019 (1. term)
Spring 2020 (2. term)
Fall 2020 (3. term)
Spring 2021 (4. term)
Fall 2021 (5. term)
Study option: Minor
Compulsory subjects and other obligations of the study option
IB000 
Mathematical Foundations of Computer Science 

IB110 
Introduction to Informatics 
IB113 
Introduction to Programming and Algorithms 
IB114 
Introduction to Programming and Algorithms II 
PB001 
Introduction to Information Technologies 
PB007 
Software Engineering I 
PB153 
Operating Systems and their Interfaces 
PB156 
Computer Networks 
PB168 
Introduction to DB and IS 
PV004 
UNIX 
PV157 
Authentication and Access Control 
PV260 
Software Quality 
SBPrip 
Revisions for Bachelor State Exam 
SZB 
State Exam (Bc degree) 
Subject interconnecting study fields of Major and Minor. Obtain at least 3 credits by passing subjects of the following list  
PV165

Process Management 
IV057

Seminar on Information Society 
IV109

Modeling and Simulation 
Recommended course of study
Fall 2020 (3. term)
Spring 2021 (4. term)
Fall 2021 (5. term)
bachelor's program without specializations
The focus of the Programming and development bachelor program is design, creation, implementation, and program maintenance technology and in lesser amount also technical equipment of modern computer systems and digitally controlled systems. Graduates of the program will have a fundamental understanding of the whole computer systems life cycle, starting with computer architectures, programming and software engineering, through computer networks and operating systems and ending with the development of embedded systems. This technological view is supported by the necessary mathematical foundations and by an introduction to design principles of secure computer systems. An important feature of the program is the focus on continuous practical verification of attained knowledge, including semestral project and voluntary semesterlong internship. The goal of this program is to focus the graduates on the solving the technological (real world) problems.
Graduates are able to immediately work as junior programmers, designers or members of a test team with fundamentals broad enough for following professional and career growth.
Requirements for successful graduation
 Obtain at least 180 credits overall and pass the final state exam.
 Obtain 10 credits for SBAPR subject and successfully defend Bachelor's Thesis. See more details.
 Pass all the compulsory and elective courses of the program with the highest possible graduation form.
 Obtain at least two credits from Physical training. See University Sport Centre.
Compulsory subjects of the program
IB000 
Mathematical Foundations of Computer Science 

IB002 
Algorithms and data structures I 
IB015 
NonImperative Programming 
IB109 
Design and Implementation of Parallel Systems 
IB110 
Introduction to Informatics 
IB111 
Foundations of Programming 
PB006 
Principles of Programming Languages and OOP 
PB007 
Software Engineering I 
PB071 
Principles of lowlevel programming 
PB138 
Modern Markup Languages and Their Applications 
PB151 
Computer Systems 
PB152 
Operating Systems 
PB152cv 
Operating Systems  practicals 
PB154 
Database Systems 
PB156 
Computer Networks 
PB156cv 
Computer Networks  practicals 
PB175 
Project managment and project 
PV028 
Applied Information Systems 
PV080 
Information security and cryptography 
PV170 
Design of Digital Systems 
PV239 
Mobile Application Development 
PV260 
Software Quality 
MB141 
Linear algebra and discrete mathematics 
MB142 
Applied math analysis 
MB143 
Design and analysis of statistical experiments 
PV004 
UNIX 
VB000 
Elements of Style 
VB001 
English Exam 
SBPrip 
Revisions for Bachelor State Exam 
SOBHA 
Defence of Thesis 
SZB 
State Exam (Bc degree) 
Programming Pass at least 1 course of the following list  
PB161

C++ Programming 
PB162

Java 
PB069

Desktop Application Development in C#/.NET 
English Obtain at least 2 credits by passing subjects of the following list  
VB035

English I 
VB036

English II 
VV064

Academic and Professional Skills in English for IT 
Common university background Obtain at least 10 credits by passing subjects of the following list  
IV123

InformaticsDriven Future 
VB003

Economic Style of Thinking I 
VB004

Economic Style of Thinking II 
VB005

Panorama of Physics I 
VB006

Panorama of Physics II 
VB007

Philosophy of Science I 
VB008

Philosophy of Science II 
VB023

Folk Music 
VB041

The Principles of Legal Reasoning 
VB042

Intellectual Property 
VV019

Selected chapters in politology 
VV024

Interpretation of Texts 
VV026

Creative Writing Workshop 
VV027

Postmodern culture 
VV028

Psychology in Informatics 
VV030

Philosophy and Theories of the Mind 
VV031

Basics of Fine Art I 
VV032

Introduction to History of Fine Art II 
VV040

Theater Play 
VV063

Computers and Ergonomy 
VV065

Selected chapters in the Theory of Mind 
Recommended course of study
Fall 2019 (1. term)
Spring 2020 (2. term)
Fall 2020 (3. term)
Spring 2021 (4. term)

MB143
Design and analysis of statistical experiments 
IB109
Design and Implementation of Parallel Systems 
IB110
Introduction to Informatics 
PV080
Information security and cryptography 
PB175
Project managment and project  Choice: 1 course from Programming
 Choice: 5 credits from Common university background
bachelor's program without specializations supporting Major/Minor study
The aim of this bachelor's study program is to equip applicants with the necessary professional knowledge and the necessary minimum of psychologicalpedagogical knowledge for successful work in education in the field of informatics. The program is also a program that in combination with a followup teaching program at MU, prepares graduates for the teaching profession. The degree is open only in the minor version in cooperation with the degrees of the Faculty of Science of Masaryk University.
The graduate is ready to continue studying in a followup teaching program at MU or can work in various training centers with a focus on IT training.
Requirements for successful graduation
 Obtain at least 180 credits overall and pass the final state exam.
 Obtain 10 credits for SBAPR subject and successfully defend Bachelor's Thesis. See more details.
 Pass all the compulsory and elective courses of the selected study option with the highest possible graduation form.
Study option: Minor
Compulsory subjects and other obligations of the study option
IB000 
Mathematical Foundations of Computer Science 

IB110 
Introduction to Informatics 
IB113 
Introduction to Programming and Algorithms 
IB114 
Introduction to Programming and Algorithms II 
PB151 
Computer Systems 
PB153 
Operating Systems and their Interfaces 
PB156 
Computer Networks 
PV157 
Authentication and Access Control 
PB007 
Software Engineering I 
PB168 
Introduction to DB and IS 
UB001 
Assesment of teaching in Informatics 
SBPrip 
Revisions for Bachelor State Exam 
Programming Pass at least 1 course of the following list  
PB161

C++ Programming 
PB162

Java 
PB071

Principles of lowlevel programming 
Application development Pass at least 1 course of the following list  
PB069

Desktop Application Development in C#/.NET 
PB138

Modern Markup Languages and Their Applications 
PV239

Mobile Application Development 
Collect at least 70 credits from courses tought at FI with prefixes IB, IB, PB, or PV. 
Recommended course of study
Spring 2020 (2. term)
Fall 2020 (3. term)
Spring 2021 (4. term)

IB110
Introduction to Informatics  Choice: 1 course from Programming
Fall 2021 (5. term)
Followup Master's Degree Programs (Czech)
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 

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 
NetCentric 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 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 
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 
Recommended course of study
Fall 2019 (1. term)
Spring 2020 (2. term)
Fall 2020 (3. term)
followup master's program (Czech) with specializations
The Artificial Intelligence and Data Processing program prepares students to work in the areas of design and development of intelligent systems and analysis of big data. These areas are currently undergoing very fast development and are becoming increasingly important. The program leads students to a thorough understanding of basic theoretical concepts and methods. During the study students also solve specific case studies to familiarize themselves with the currently used tools and technologies. Students will thus gain experience that will allow them to immediately use the current state of knowledge in practice, as well as solid foundations, which will enable them to continue to independently follow the developments in the field. The program is divided into four specializations that provide deeper knowledge in a chosen direction. Specializations share a common core, where students learn the most important mathematical, algorithmic, and technological aspects of the field. Machine Learning and Artificial Intelligence specialization lead graduates to gain indepth knowledge of machine learning and artificial intelligence techniques and to gain experience with their practical application. Natural Language Processing specialization prepares graduates to work with natural languages (eg. Czech, English) in written and spoken form from the perspective of computer science. Data Management and Analysis specialization focus on data science, which creates value from big data by collecting, exploring, interpreting, and presenting data from different viewpoints with the goal of socalled business intelligence. Bioinformatics and Systems Biology specialization focuses on computational methods for automated analysis of large biological data and on creating predictive models of biological processes with the goal to better understand complex biological systems.
Due to the dynamic development of the area, the graduates have a wide range of career opportunities, with specific employment positions being created continuously during the course of their studies. Examples of different types of possible positions: positions in applied and basic research, typically concerning extensive data processing, often also in collaboration with experts from other disciplines such as biology or linguistics; positions in companies with an immediate interest in artificial intelligence and data processing (e.g., Seznam, Google) such as Data Scientist and Machine Learning Engineer; positions in companies that have extensive, valuable data (such as banking, telecom operators) or companies focusing on cloud data analysis, e.g., Business Intelligence Analyst or Data Analyst; graduates can also start their own startup specializing in the use of artificial intelligence methods in a particular area.
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
MA012 
Statistics II 

IV126 
Artificial Intelligence II 
PA039 
Supercomputer Architecture and Intensive Computations 
PA152 
Efficient Use of Database Systems 
PV021 
Neural Networks 
PV056 
Machine Learning and Data Mining 
PV211 
Introduction to Information Retrieval 
PV251 
Visualization 
SOBHA 
Defence of Thesis 
SZMGR 
State Exam (MSc degree) 
Specialization: Bioinformatics and System Biology
Specialization Bioinformatics and System Biology is intended for students who want to acquire, besides the general knowledge of informatics, the latest knowledge in dynamically developing fields at the border of informatics and biology. By selecting this specialization, the student acquires deep knowledge about the processing, storage, and analysis of biological data or the use of formal methods for analysis and prediction of the behavior of biological systems.
Compulsory subjects of the specialization
IV106 
Bioinformatics seminar 

IV108 
Bionformatics II 
IV110 
Bionformatics project I 
IV120 
Continuous and Hybrid Systems 
PA054 
Formal Methods in Systems Biology 
PA183 
Project in Systems Biology 
PB050 
Modelling and Prediction in Systems Biology 
PB172 
Systems Biology Seminar 
PV027 
Optimization 
PV225 
Laboratory of Systems Biology 
Applications Pass at least 1 course of the following list  
PV269

Advanced methods in bioinformatics 
PV270

Biocomputing 
Recommended course of study
Fall 2019 (1. term)
Spring 2020 (2. term)
Fall 2020 (3. term)
Specialization: Machine Learning and Artificial Intelligence
Machine Learning and Artificial Intelligence specialization leads graduates to gain indepth knowledge of machine learning and artificial intelligence techniques and to gain experience with their practical application.
Compulsory subjects of the specialization
IV111 
Probability in Computer Science 

PA153 
Natural Language Processing 
Logic and Algorithms Pass at least 3 courses of the following list  
MA007

Mathematical Logic 
PA164

Machine learning and natural language processing 
IA008

Computational Logic 
PA163

Constraint programming 
IA168

Algorithmic game theory 
Applications of Machine Learning Pass at least 1 course of the following list  
PA167

Scheduling 
PA212

Advanced Search Techniques for Large Scale Data Analytics 
PA128

Similarity Searching in Multimedia Data 
PV254

Recommender Systems 
Projects and Laboratory Obtain at least 4 credits by passing subjects of the following list  
PA026

Artificial Intelligence Project 
PV115

Laboratory of Knowledge Discovery 
IV127

Adaptive Learning Seminar 
IV125

Formela lab seminar 
Optimizations and Numeric Computing Pass at least 1 course of the following list  
PV027

Optimization 
MA018

Numerical Methods 
PřF:M7PNM1

Advanced numerical methods I 
Recommended course of study
Fall 2019 (1. term)
Spring 2020 (2. term)
Fall 2020 (3. term)
Specialization: Data Management and Analysis
Data Management and Analysis specialization focuses on data science, which creates value from big data by collecting, exploring, interpreting, and presenting data from different viewpoints with the goal of so called business intelligence.
Compulsory subjects of the specialization
PA017 
Software Engineering II 

PA195 
NoSQL Databases 
PA200 
Cloud Computing 
PA212 
Advanced Search Techniques for Large Scale Data Analytics 
PA220 
Database systems for data analytics 
PV062 
File Structures 
PV065 
UNIX  Programming and System Management I 
PV079 
Applied Cryptography 
Projects and Laboratory Obtain at least 4 credits by passing subjects of the following list  
PV253

Seminar of DISA Laboratory 
PV115

Laboratory of Knowledge Discovery 
Recommended course of study
Fall 2019 (1. term)
Spring 2020 (2. term)
Fall 2020 (3. term)
Specialization: Natural Language Processing
Natural Language Processing specialization prepares graduates to work with natural languages (eg. Czech, English) in written and spoken form from the perspective of computer science.
Compulsory subjects of the specialization
IA161 
Advanced Techniques of Natural Language Processing 

IV111 
Probability in Computer Science 
PA153 
Natural Language Processing 
PA154 
Language Modeling 
PA156 
Dialogue Systems 
Math Pass at least 2 courses of the following list  
MA007

Mathematical Logic 
IA008

Computational Logic 
MA010

Graph Theory 
MA015

Graph Algorithms 
MV008

Algebra I 
MA018

Numerical Methods 
PřF:M7130

Computational geometry 
Natural Language Processing Pass at least 1 course of the following list  
PA164

Machine learning and natural language processing 
PV061

Introduction to Machine Translation 
IV029

Introduction to Transparent Intensional Logic 
Seminar or Project Obtain at least 2 credits by passing subjects of the following list  
PV173

Natural Language Processing Seminar 
PB106

Corpus Linguistic Project I 
PA107

Corpus Tools Project 
Recommended course of study
Fall 2019 (1. term)
Spring 2020 (2. term)
Fall 2020 (3. term)
followup master's program (Czech) with specializations
The study program Visual Informatics prepares students to work with image information and spatial scene models that involve or touch areas such as computer graphics, image processing, visualization, computer vision, virtual and expanded reality, video processing, pattern recognition, humancomputer communication, 3D modeling, animation, graphic design, and machine learning.
The graduate will find application in various fields, such as the development of graphics applications, simulators, computer games, applications for multimedia processing and analysis, visualization of data, virtual and enhanced reality or creation of the professionallevel graphic design. For example, a graduate may be an analyst, graphic designer, application programmer, research or development team leader. The acquired theoretical knowledge and practical skills allow them to thoroughly understand the problems solved and will make it possible in practice to use a wide range of modern technologies  from common mobile devices to dedicated systems with high computing power.
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
IV003 
Algorithms and Data Structures II 

MA018 
Numerical Methods 
MV013 
Statistics for Computer Science 
PA103 
Objectoriented Methods for Design of Information Systems 
PA010 
Intermediate Computer Graphics 
PV021 
Neural Networks 
PV182 
Human Computer Interaction 
PV189 
Mathematics for Computer Graphics 
PV248 
Python 
SOBHA 
Defence of Thesis 
SZMGR 
State Exam (MSc degree) 
Specialization: Computer Graphics and Visualization
Computer Graphics and Visualization specialization offers the latest knowledge of informatics as well as the knowledge from the dynamically progressing area of computer graphics and its development based on interdisciplinary activities and use in other scientific fields. Students will be acquainted with the principles of graphics architectures, mathematical methods used to solve challenging imaging tasks. The studies provide students with a more indepth knowledge focused on the design and implementation of software applications using advanced computer graphics technologies.
Compulsory subjects of the specialization
MA017 
Geometric Algorithms 

PA213 
Advanced Computer Graphics 
PA093 
Computational Geometry Project 
PA157 
Seminar on Computer Graphics Research 
PA166 
Advanced Methods of Digital Image Processing 
PA214 
Visualization II 
PV160 
Laboratory of HumanComputer Interaction 
PV227 
GPU Rendering 
PV251 
Visualization 
Recommended course of study
Fall 2019 (1. term)
Spring 2020 (2. term)
Fall 2020 (3. term)
Specialization: Image Processing and Analysis
Image Processing and Analysis specialization provides a comprehensive view of getting and processing image information, starting with simple image editing using point transformations or linear filters, and ending with sophisticated tools such as mathematical morphology or deformable models. Graduates will find their place in the development and deployment of imaging systems in a variety of fields, for example in medicine, biology, meteorological and geographic data processing, biometric applications, etc.
Compulsory subjects of the specialization
MA017 
Geometric Algorithms 

PA093 
Computational Geometry Project 
PA166 
Advanced Methods of Digital Image Processing 
PA170 
Digital Geometry 
PA171 
Digital Image Filtering 
PA172 
Image Acquisition 
PA173 
Mathematical Morphology 
PV187 
Seminar of digital image processing 
PV197 
GPU Programming 
Recommended course of study
Fall 2019 (1. term)
Spring 2020 (2. term)
Fall 2020 (3. term)
Specialization: Computer Game Development
Development of Computer Games specialization gives students a comprehensive insight into how to create graphics aspects of contemporary multimedia entertainment software. Students will become acquainted with modern modeling, imaging and animation techniques, not only in the context of classic 2D and 3D imaging but also in the context of virtual or augmented reality.
Compulsory subjects of the specialization
PA213 
Advanced Computer Graphics 

PA199 
Advanced Game Development 
PA215 
Game Design I 
PA216 
Game Design II 
PA217 
Artificial Intelligence for Computer Games 
PA218 
Internship  Computer Games 
PV227 
GPU Rendering 
PV255 
Game Development I 
PV266 
Game Development II 
VV035 
3D Character Modeling 
VV036 
3D Character Modeling II 
Recommended course of study
Fall 2019 (1. term)
Spring 2020 (2. term)
Fall 2020 (3. term)
Specialization: Graphic Design
Graphic Design Specialization offers the study of graphic design and related disciplines in cooperation with the Graphic Design and Multimedia Studio (AGD + M). The studio focuses primarily on digital media, which nowadays replaces most of the printed forms. In terms of mastering highquality graphic design, this is an identical problem, but digital media opens up new opportunities in communicating with the consumer. For these media, concurrent informatic education of students is necessary and is developed in the course of this specialization. Students work on topics such as game making, interactive information graphics, creating interactive media applications, generative programming, animation, video, 3D digital modeling and 3D printing, epublishing, webdesign, font creation, and more.
Compulsory subjects of the specialization
PV067 
Typography II 

PV083 
Graphic Design II 
PV085 
Type Design II 
PV257 
Graphic Design and Multimedia Project 
PV259 
Generative Design Programming 
PV268 
Digital Design 
VV036 
3D Character Modeling II 
VV051 
Animation 
VV068 
Concept and Intermedia II 
Gr.Design I Obtain at least 5 credits by passing subjects of the following list  
PV112

Computer Graphics API 
PV239

Mobile Application Development 
Gr.Design II Obtain at least 9 credits by passing subjects of the following list  
PV156

Digital Photography 
VV067

Concept and Intermedia I 
VV034

Photography II 
VV035

3D Character Modeling 
VV050

Motion Design 
PV110

Základy filmové řeči 
PV101

Type Design III 
PV251

Visualization 
PV097

Visual creativity informatics 
Recommended course of study
Fall 2019 (1. term)
Spring 2020 (2. term)
Fall 2020 (3. term)
followup master's program (Czech) with specializations
The study program Computer Systems, Communications and Security aims to lead its graduate to an understanding of architectures, principles, design methods and operations of secure computer systems, respecting both hardware and software aspects, including network communications. The graduate will also gain deeper knowledge in of the chose specializations of the programme.
Program graduate will be prepared to design and maintain operations of secure computer systems with respect to both hardware and software aspects, including network communications. Graduate in the specialization Hardware Systems will be prepared to design solutions to practical problems with the use of computer hardware, to creatively adjust hardware systems and to deploy them. Graduate in the specialization Software Systems will be ready to take various roles in the IT departments taking part in the development and operations of information systems and in the use of IT for support of organizations. Graduates of the specialization Information Security will be able to work in organizations developing or providing systems respecting security requirements, but also in advanced management and operations of such systems. Graduate on the specialization Computer Networks and Communications will be able to work as an architect of large networks, manage network operations and related projects, or to work as an expert in applications or security of computer networks.
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
IA158 
Real Time Systems 

IV054 
Coding, Cryptography and Cryptographic Protocols 
MV013 
Statistics for Computer Science 
PA191 
Advanced Computer Networking 
PV079 
Applied Cryptography 
PV260 
Software Quality 
SOBHA 
Defence of Thesis 
SZMGR 
State Exam (MSc degree) 
Math Pass at least 2 courses of the following list  
IV111

Probability in Computer Science 
MA007

Mathematical Logic 
MA010

Graph Theory 
MA015

Graph Algorithms 
MA018

Numerical Methods 
Theory of Informatics Pass at least 1 course of the following list  
IA101

Algorithmics for Hard Problems 
IA169

System Verification and Assurance 
Hardware Systems Pass at least 1 course of the following list  
PA174

Design of Digital Systems II 
PA175

Digital Systems Diagnostics II 
PA176

Architecture of Digital Systems II 
PA190

Digital Signal Processing 
PA192

Secure hardwarebased system design 
PA221

Hardware description languages 
PV191

Project from Designing Digital Systems 
PV193

Accelerating Algorithms at Circuit Level 
PV194

External Environments of Digital Systems 
PV198

Onechip Controllers 
PV200

Introduction to hardware description languages 
Specialization: Hardware Systems
Specialization Hardware Systems provides specific knowledge to work with programmable structures extending into parallel and distributed systems, computer networks and cryptography. Teaching emphasizes the balance of courses providing the necessary theoretical basis and courses focusing on practical skills that are involved in the design, implementation, analysis, testing and operation of embedded systems. An integral part of the study is also working on a project with a small team and oriented towards experimental and prototype solutions to interesting problems associated with the solution of practical problems arising from research and development activities of the faculty.
Compulsory subjects of the specialization
PB170 
Seminar on Digital System Design 

PB171 
Seminar on Digital System Architecture 
PA175 
Digital Systems Diagnostics II 
PA176 
Architecture of Digital Systems II 
PA190 
Digital Signal Processing 
PA221 
Hardware description languages 
PV191 
Project from Designing Digital Systems 
PV198 
Onechip Controllers 
Recommended course of study
Fall 2019 (1. term)
Spring 2020 (2. term)
Fall 2020 (3. term)
Specialization: Software Systems
Specialization Software Systems will lead the graduate to knowledge and skills necessary in all stages of development and changes in extensive software systems, especially information systems. Emphasis is set on knowledge necessary at the design and development of systems with on deployed modern software technologies.
Compulsory subjects of the specialization
IV003 
Algorithms and Data Structures II 

PA017 
Software Engineering II 
PA039 
Supercomputer Architecture and Intensive Computations 
PA103 
Objectoriented Methods for Design of Information Systems 
PA152 
Efficient Use of Database Systems 
PA160 
NetCentric Computing II 
PA165 
Enterprise Applications in Java 
PV217 
Service Oriented Architecture 
PV258 
Software Requirements Engineering 
Programming Obtain at least 3 credits by passing subjects of the following list  
PV179

System Development in C#/.NET 
PV248

Python 
PV249

Development in Ruby 
Recommended course of study
Fall 2019 (1. term)
Spring 2020 (2. term)
Fall 2020 (3. term)
Specialization: Information Security
Specialization Information Security focuses on areas of security in computer systems and networks, cryptography and its applications. The aim is to prepare such a graduate who will be able to work in a variety of roles critical to ensure security of ICTs – specific profiling (e.g., toward cryptography, technological aspects or security management) beyond a common basis of field of study is left to the choice of the student.
Compulsory subjects of the specialization
PV181 
Laboratory of security and applied cryptography 

PV204 
Security Technologies 
PA197 
Secure Network Design 
PA193 
Secure coding principles and practices 
PA018 
Advanced Topics in Information Technology Security 
PA168 
Postgraduate seminar on IT security and cryptography 
Recommended course of study
Fall 2019 (1. term)
Spring 2020 (2. term)
Fall 2020 (3. term)
Specialization: Networks and Communication
Computer Networks and Communications specialization focuses on acquiring advanced knowledge of architectures, operation principles, and principles of operation of computer networks. The field is conceived to satisfy both those interested in practically oriented advanced information and knowledge in the field of computer networks and their applications, as well as those interested in deeper acquaintance with the theoretical fundaments of the field and the study of computer networks as a special case of distributed systems. In addition to knowledge of computer networks, the student acquires knowledge of security, principles of working with multimedia data, basic knowledge of parallel systems and necessary theoretical background.
Compulsory subjects of the specialization
PA039 
Supercomputer Architecture and Intensive Computations 

PA053 
Distributed Systems and Middleware 
PA151 
Advanced Computer Networks 
PA160 
NetCentric Computing II 
PV169 
Communication Systems Basics 
PV188 
Principles of Multimedia Processing and Transport 
PV233 
Networks and Routing Protocols 
PV234 
LAN Switching and Wireless Networks, WAN 
Recommended course of study
Fall 2019 (1. term)
Spring 2020 (2. term)
Fall 2020 (3. term)
followup master's program (Czech) with specializations
The study program develops unique competence profile of the student based on the intersection of multiple areas of knowledge that are relevant for managing the development of software systems and services, as well as cybersecurity management. A specific feature is a focus on strategic and operational management related to the targeting, design, implementation, and operation of software systems and services within the context of organizations and different types with a possible focus on their safe operation or IT services. In addition to developing basic theoretical and technological knowledge and practical developmental skills acquired in the bachelor's study, the content of the followup study is extended by other dimensions such as theories and practices of team, project and process management, communication, soft skills and knowledge essential to functioning in economic relations  the basics of marketing, law and others, which especially (but not only) concerns the specialization of service development. The cybersecurity study takes into account aspects of overlapping computer data processing outside of tightly defined system perimeters (e.g. impacting on critical infrastructure), thus enabling a specific multidisciplinary overlap of technical, social and legal aspects in this area.
The graduates find employment in companies and organizations of different sizes and orientation, but they also get the motivation and the possibility of basic preparation for their own innovative business. The strong competitive advantage of the program graduates is the ability to solve complex managementrelated problems of the development of systems and services for which they can use the acquired skills by the study. Their potential is predestined to hold managerial positions, such as the Chief Information Officer (CIO), project manager, and risk manager. Graduates of the cybersecurity management specialization will find application primarily in companies and institutions that need specialists able to work with relevant coordinating institutions and ensure the management of cybersecurity processes. These are positions as a cybersecurity manager and Chief Information Security Officer (CISO).
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
PA017 
Software Engineering II 

PV206 
Communication and Soft Skills 
PV079 
Applied Cryptography 
MV013 
Statistics for Computer Science 
PA152 
Efficient Use of Database Systems 
PA179 
Project Management 
PA180 
Interim Project I+II 
SOBHA 
Defence of Thesis 
SZMGR 
State Exam (MSc degree) 
Management Pass at least 1 course of the following list  
PA182

Managing in Reality 
PV214

IT Service Management based on ITIL 
PV215

Management by Competencies 
PV237

Strategy and Leadership 
PV271

Risk Management in IT 
PV203

IT Services Management 
PV274

Data Quality Management Seminar 
Specialization: Software Systems Development and Management
Software Systems Development and Managment specialization focuses on software engineering, i.e., to acquire the knowledge and skills needed at all stages of development, management and maintenance of information, and other types of large software systems. The specialization emphasizes the ability to analyse and specify system requirements, system design, and implementation and deployment.
Compulsory subjects of the specialization
IA169 
System Verification and Assurance 

PA053 
Distributed Systems and Middleware 
PA103 
Objectoriented Methods for Design of Information Systems 
PA165 
Enterprise Applications in Java 
PA197 
Secure Network Design 
PV028 
Applied Information Systems 
Programming Pass at least 1 course of the following list  
PA036

Database System Project 
PV229

Multimedia Similarity Searching in Practice 
PV247

Modern Development of User Interfaces 
PV248

Python 
PV249

Development in Ruby 
Recommended course of study
Fall 2019 (1. term)
Spring 2020 (2. term)
Fall 2020 (3. term)
Specialization: Service Development Management
Services Development Management specialization follows the current large shift from the traditional paradigm of IT design to IT as a service and from productoriented economy to serviceoriented one. Problems and tasks in IT are becoming more complex and the knowledge of IT technology is not sufficient for solving them. A multidisciplinary view is the core of this specialization. Students will gain not only sound IT knowledge (programming, databases, computer security, networks, etc.), but also the skills necessary to understand problems in their complexity (marketing, management, finance or law) as well as necessary communication competencies.
Compulsory subjects of the specialization
PA116 
Domain Understanding and Modeling 

PA194 
Introduction to Service Science 
PA181 
Services  Systems, Modeling and Execution 
PV207 
Business Process Management 
Computer networks Pass at least 1 course of the following list  
PA151

Advanced Computer Networks 
PA159

NetCentric Computing I 
PA191

Advanced Computer Networking 
PA211

Advanced Topics of Cyber Security 
PV210

Cyber security in an organization 
PV177

Laboratory of Advanced Network Technologies 
Economy Pass at least 1 course of the following list  
PV028

Applied Information Systems 
PV241

Enterprise and Financial Management 
Programming Pass at least 1 course of the following list  
PA036

Database System Project 
PA165

Enterprise Applications in Java 
PV229

Multimedia Similarity Searching in Practice 
PV247

Modern Development of User Interfaces 
PV248

Python 
PV249

Development in Ruby 
Soft skills Pass at least 1 course of the following list  
ESF:MPV_RKMD

Communication and Managerial Skills training 
ESF:MPV_COMA

Communication and Managerial Skills Training 
ESF:MPP_CEIT

Czech and European Law of Information Technologies 
PV236

Time Management and Effectiveness 
PV209

Person Centered Communication 
IV057

Seminar on Information Society 
PV263

Intercultural Management 
IV064

Information Society 
PA212

Advanced Search Techniques for Large Scale Data Analytics 
Marketing Pass at least 1 course of the following list  
PV216

Marketing Strategy in Service Business 
PV240

Introduction to service marketing 
Recommended course of study
Fall 2019 (1. term)
Spring 2020 (2. term)
Specialization: Cybersecurity Managment
Cybersecurity Management specialization takes into account the aspects of computer data processing beyond the welldefined system perimeters (e.g., critical infrastructure impact), reflected in the area of cybersecurity and allowing a specific multidisciplinary overlap of both technical and social and legal aspects of cybersecurity.
Compulsory subjects of the specialization
PrF:BVV14K 
Theory and Method of ICT Law 

IV054 
Coding, Cryptography and Cryptographic Protocols 
PrF:BI301K 
ICT Law II 
PA197 
Secure Network Design 
PV204 
Security Technologies 
PA018 
Advanced Topics in Information Technology Security 
PrF:BVV03K 
Cybercriminality 
IV128 
Online Communication from Social Science Perspective 
Computer networks Pass at least 1 course of the following list  
PA151

Advanced Computer Networks 
PA159

NetCentric Computing I 
PA191

Advanced Computer Networking 
PA211

Advanced Topics of Cyber Security 
PV210

Cyber security in an organization 
PV177

Laboratory of Advanced Network Technologies 
Recommended course of study
Fall 2019 (1. term)

PA017
Software Engineering II 
PV206
Communication and Soft Skills 
PV079
Applied Cryptography 
PrF:BVV14K
Theory and Method of ICT Law 
IV054
Coding, Cryptography and Cryptographic Protocols 
PrF:BI301K
ICT Law II  Choice: 1 course from Computer networks
Spring 2020 (2. term)
Fall 2020 (3. term)
Spring 2021 (4. term)
 Choice: 1 course from Management

PrF:BVV03K
Cybercrime and Cybersecurity 
IV128
Online Communication from Social Science Perspective 
SDIPR
Diploma Thesis 
SOBHA
Defence of Thesis 
SZMGR
State Exam (MSc degree)
followup master's program (Czech) without specializations supporting Major/Minor study
The aim of this program is to prepare graduates with a range of competencies necessary for the teaching profession. They have both knowledge and skills regarding pupil education, classroom management, and addressing specific learning situations and pupils. The knowledge of individual subjects and the didactic competence ensure a high level of knowledge of the given discipline, which is in accordance to the expected requirements of the secondary schools and the ability of the graduates to mediate the knowledge of the given discipline using a wide range of didactic methods. Graduates are also equipped with the skills and abilities to lead pedagogical communication with students, their parents, colleagues and other subjects (social and communication competencies), educate and motivate pupils, manage classes, participate in school activities and solve specific situations associated with teaching pedagogicalpsychological competencies). In addition, graduates are equipped with diagnostic and special pedagogical competencies that enable them to recognize the individual educational and other needs of students, to prepare individual plans for students, to work with counseling specialists, and to apply a wide range of support measures within an inclusive approach. In addition to pedagogical abilities, this program intends to prepare graduates also for the position of school information system manager and administrator.
Graduates of this master degree study program will primarily act as teachers of relevant subjects at secondary schools (grammar schools and secondary technical schools) with accordance of the accredited fields and their focus. In the case the IT administration study plan, graduates will be able to operate in positions of IT administrators at secondary schools.
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.
 Fulfil requirements of IT Teacher and Administrator study option or Major study option.
 Pass all the compulsory and elective courses of the program, selected study option with the highest possible graduation form.
Compulsory subjects of the program
PA159 
NetCentric Computing I 

PV094 
PC Hardware 
PV175 
MS Windows Systems Management I 
PV004 
UNIX 
UA104 
Didactics for Informatics I 
UA105 
Didactics for Informatics II 
UA442 
Exercises in Practical Education I 
UA542 
Exercises in Practical Education II 
UA642 
Exercises in Practical Education III 
VV064 
Academic and Professional Skills in English for IT 
SOBHA 
Defence of Thesis 
SZMGR 
State Exam (MSc degree) 
PřF:XS080 
Special pedagogy 
PřF:XS092 
School management 
PřF:XS093 
Educational activity with gifted learners 
PřF:XS100 
Teacher and school administration 
PřF:XS130 
Personality psychology 
PřF:XS150 
Educational Psychology 
PřF:XS170 
Technology for didactics 
PřF:XS350 
Group dynamic workshop 
Study option: Teacher of Informatics and IT administrator
Study option The Informatics Teacher and Network Administrator prepares students for professional positioning as a Network Administrator at a secondary school in parallel with the pedagogical training necessary to obtain secondary school approbation in Informatics.
Compulsory subjects and other obligations of the study option
UB001 
Assesment of teaching in Informatics 

UA742 
Exercises in Practical Education IV 
UA842 
Exercises in Practical Education V 
PB071 
Principles of lowlevel programming 
PB138 
Modern Markup Languages and Their Applications 
PřF:XS020 
Inspiratorium for teachers 
PřF:XS050 
School pedagogy 
PřF:XS060 
General and alternative didactics 
PřF:XS140 
Foundations of Psychology 
PřF:XS090 
Initial teacher training 
PřF:XS220 
Reflective seminar 
Collect at least 36 credits from courses taught at FI with prefixes I or P. 
Recommended course of study
Fall 2019 (1. term)

PA159
NetCentric Computing I 
PV094
PC Hardware 
PřF:XS080
Special pedagogy 
PřF:XS150
Educational Psychology 
UB001
Assesment of teaching in Informatics 
PřF:XS020
Inspiratorium for teachers 
PřF:XS050
School pedagogy 
PřF:XS093
Educational activity with gifted learners 
PřF:XS170
Technology for didactics 
PřF:XS092
School management
Spring 2020 (2. term)

UA104
Didactics for Informatics I 
UA442
Exercises in Practical Education I 
PřF:XS130
Personality psychology 
PřF:XS060
General and alternative didactics 
PřF:XS140
Foundations of Psychology 
PřF:XS090
Initial teacher training 
PřF:XS220
Reflective seminar 
VV064
Academic and Professional Skills in English for IT 
PV004
UNIX
Fall 2020 (3. term)
Study option: Minor
This study option leads students in cooperation with the Faculty of Science of Masaryk University to obtain two secondary school approbations.
Compulsory subjects and other obligations of the study option
PA159 
NetCentric Computing I 

PV175 
MS Windows Systems Management I 
PV094 
PC Hardware 
UA104 
Didactics for Informatics I 
UA105 
Didactics for Informatics II 
UA442 
Exercises in Practical Education I 
UA542 
Exercises in Practical Education II 
UA642 
Exercises in Practical Education III 
SZMGR 
State Exam (MSc degree) 
Collect at least 22 credits from courses taught at FI with prefixes I or P. 
Recommended course of study
Fall 2019 (1. term)
Fall 2020 (3. term)
Followup Master's Degree Programs (English)
followup master's program (English) with specializations
 English
 prof. Ing. Jiří Sochor, CSc.
The study program Visual Informatics prepares students to work with image information and spatial scene models that involve or touch areas such as computer graphics, image processing, visualization, computer vision, virtual and expanded reality, video processing, pattern recognition, humancomputer communication, 3D modeling, animation, graphic design, and machine learning.
The graduate will find application in various fields, such as the development of graphics applications, simulators, computer games, applications for multimedia processing and analysis, visualization of data, virtual and enhanced reality or creation of the professionallevel graphic design. For example, a graduate may be an analyst, graphic designer, application programmer, research or development team leader. The acquired theoretical knowledge and practical skills allow them to thoroughly understand the problems solved and will make it possible in practice to use a wide range of modern technologies  from common mobile devices to dedicated systems with high computing power.
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
IV003 
Algorithms and Data Structures II 

MA018 
Numerical Methods 
MV013 
Statistics for Computer Science 
PA103 
Objectoriented Methods for Design of Information Systems 
PA010 
Intermediate Computer Graphics 
PV021 
Neural Networks 
PV182 
Human Computer Interaction 
PV189 
Mathematics for Computer Graphics 
PV248 
Python 
SOBHA 
Defence of Thesis 
SZMGR 
State Exam (MSc degree) 
Specialization: Computer Graphics and Visualization
Computer Graphics and Visualization specialization offers the latest knowledge of informatics as well as the knowledge from the dynamically progressing area of computer graphics and its development based on interdisciplinary activities and use in other scientific fields. Students will be acquainted with the principles of graphics architectures, mathematical methods used to solve challenging imaging tasks. The studies provide students with a more indepth knowledge focused on the design and implementation of software applications using advanced computer graphics technologies.
Compulsory subjects of the specialization
MA017 
Geometric Algorithms 

PA213 
Advanced Computer Graphics 
PA093 
Computational Geometry Project 
PA157 
Seminar on Computer Graphics Research 
PA166 
Advanced Methods of Digital Image Processing 
PA214 
Visualization II 
PV160 
Laboratory of HumanComputer Interaction 
PV227 
GPU Rendering 
PV251 
Visualization 
Recommended course of study
Fall 2019 (1. term)
Spring 2020 (2. term)
Fall 2020 (3. term)
Specialization: Image Processing and Analysis
Image Processing and Analysis specialization provides a comprehensive view of getting and processing image information, starting with simple image editing using point transformations or linear filters, and ending with sophisticated tools such as mathematical morphology or deformable models. Graduates will find their place in the development and deployment of imaging systems in a variety of fields, for example in medicine, biology, meteorological and geographic data processing, biometric applications, etc.
Compulsory subjects of the specialization
MA017 
Geometric Algorithms 

PA093 
Computational Geometry Project 
PA166 
Advanced Methods of Digital Image Processing 
PA170 
Digital Geometry 
PA171 
Digital Image Filtering 
PA172 
Image Acquisition 
PA173 
Mathematical Morphology 
PV187 
Seminar of digital image processing 
PV197 
GPU Programming 
Recommended course of study
Fall 2019 (1. term)
Spring 2020 (2. term)
Fall 2020 (3. term)
Specialization: Computer Game Development
Development of Computer Games specialization gives students a comprehensive insight into how to create graphics aspects of contemporary multimedia entertainment software. Students will become acquainted with modern modeling, imaging and animation techniques, not only in the context of classic 2D and 3D imaging but also in the context of virtual or augmented reality.
Compulsory subjects of the specialization
PA213 
Advanced Computer Graphics 

PA199 
Advanced Game Development 
PA215 
Game Design I 
PA216 
Game Design II 
PA217 
Artificial Intelligence for Computer Games 
PA218 
Internship  Computer Games 
PV227 
GPU Rendering 
PV255 
Game Development I 
PV266 
Game Development II 
VV035 
3D Character Modeling 
VV036 
3D Character Modeling II 
Recommended course of study
Fall 2019 (1. term)
Spring 2020 (2. term)
Fall 2020 (3. term)
followup master's program (English) with specializations
The study program Computer Systems, Communications and Security aims to lead its graduate to an understanding of architectures, principles, design methods and operations of secure computer systems, respecting both hardware and software aspects, including network communications. The graduate will also gain deeper knowledge in of the chose specializations of the programme.
Program graduate will be prepared to design and maintain operations of secure computer systems with respect to both hardware and software aspects, including network communications. Graduate in the specialization Hardware Systems will be prepared to design solutions to practical problems with the use of computer hardware, to creatively adjust hardware systems and to deploy them. Graduate in the specialization Software Systems will be ready to take various roles in the IT departments taking part in the development and operations of information systems and in the use of IT for support of organizations. Graduates of the specialization Information Security will be able to work in organizations developing or providing systems respecting security requirements, but also in advanced management and operations of such systems. Graduate on the specialization Computer Networks and Communications will be able to work as an architect of large networks, manage network operations and related projects, or to work as an expert in applications or security of computer networks.
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
IA158 
Real Time Systems 

IV054 
Coding, Cryptography and Cryptographic Protocols 
MV013 
Statistics for Computer Science 
PA191 
Advanced Computer Networking 
PV079 
Applied Cryptography 
PV260 
Software Quality 
SOBHA 
Defence of Thesis 
SZMGR 
State Exam (MSc degree) 
Math Pass at least 2 courses of the following list  
IV111

Probability in Computer Science 
MA007

Mathematical Logic 
MA010

Graph Theory 
MA015

Graph Algorithms 
MA018

Numerical Methods 
Theory of Informatics Pass at least 1 course of the following list  
IA101

Algorithmics for Hard Problems 
IA169

System Verification and Assurance 
Hardware Systems Pass at least 1 course of the following list  
PA174

Design of Digital Systems II 
PA175

Digital Systems Diagnostics II 
PA176

Architecture of Digital Systems II 
PA190

Digital Signal Processing 
PA192

Secure hardwarebased system design 
PA221

Hardware description languages 
PV191

Project from Designing Digital Systems 
PV193

Accelerating Algorithms at Circuit Level 
PV194

External Environments of Digital Systems 
PV198

Onechip Controllers 
PV200

Introduction to hardware description languages 
Specialization: Hardware Systems
Specialization Hardware Systems provides specific knowledge to work with programmable structures extending into parallel and distributed systems, computer networks and cryptography. Teaching emphasizes the balance of courses providing the necessary theoretical basis and courses focusing on practical skills that are involved in the design, implementation, analysis, testing and operation of embedded systems. An integral part of the study is also working on a project with a small team and oriented towards experimental and prototype solutions to interesting problems associated with the solution of practical problems arising from research and development activities of the faculty.
Compulsory subjects of the specialization
PB170 
Seminar on Digital System Design 

PB171 
Seminar on Digital System Architecture 
PA175 
Digital Systems Diagnostics II 
PA176 
Architecture of Digital Systems II 
PA190 
Digital Signal Processing 
PA221 
Hardware description languages 
PV191 
Project from Designing Digital Systems 
PV198 
Onechip Controllers 
Recommended course of study
Fall 2019 (1. term)
Spring 2020 (2. term)
Fall 2020 (3. term)
Specialization: Software Systems
Specialization Software Systems will lead the graduate to knowledge and skills necessary in all stages of development and changes in extensive software systems, especially information systems. Emphasis is set on knowledge necessary at the design and development of systems with on deployed modern software technologies.
Compulsory subjects of the specialization
IV003 
Algorithms and Data Structures II 

PA017 
Software Engineering II 
PA039 
Supercomputer Architecture and Intensive Computations 
PA103 
Objectoriented Methods for Design of Information Systems 
PA152 
Efficient Use of Database Systems 
PA160 
NetCentric Computing II 
PA165 
Enterprise Applications in Java 
PV217 
Service Oriented Architecture 
PV258 
Software Requirements Engineering 
Programming Obtain at least 3 credits by passing subjects of the following list  
PV179

System Development in C#/.NET 
PV248

Python 
PV249

Development in Ruby 
Recommended course of study
Fall 2019 (1. term)
Spring 2020 (2. term)
Fall 2020 (3. term)
Specialization: Information Security
Specialization Information Security focuses on areas of security in computer systems and networks, cryptography and its applications. The aim is to prepare such a graduate who will be able to work in a variety of roles critical to ensure security of ICTs – specific profiling (e.g., toward cryptography, technological aspects or security management) beyond a common basis of field of study is left to the choice of the student.
Compulsory subjects of the specialization
PV181 
Laboratory of security and applied cryptography 

PV204 
Security Technologies 
PA197 
Secure Network Design 
PA193 
Secure coding principles and practices 
PA018 
Advanced Topics in Information Technology Security 
PA168 
Postgraduate seminar on IT security and cryptography 
Recommended course of study
Fall 2019 (1. term)
Spring 2020 (2. term)
Fall 2020 (3. term)
followup master's program (English) with specializations
 English
 doc. RNDr. Tomáš Pitner, Ph.D.
The study program develops unique competence profile of the student based on the intersection of multiple areas of knowledge that are relevant for managing the development of software systems and services, as well as cybersecurity management. A specific feature is a focus on strategic and operational management related to the targeting, design, implementation, and operation of software systems and services within the context of organizations and different types with a possible focus on their safe operation or IT services. In addition to developing basic theoretical and technological knowledge and practical developmental skills acquired in the bachelor's study, the content of the followup study is extended by other dimensions such as theories and practices of team, project and process management, communication, soft skills and knowledge essential to functioning in economic relations  the basics of marketing, law and others, which especially (but not only) concerns the specialization of service development. The cybersecurity study takes into account aspects of overlapping computer data processing outside of tightly defined system perimeters (e.g. impacting on critical infrastructure), thus enabling a specific multidisciplinary overlap of technical, social and legal aspects in this area.
The graduates find employment in companies and organizations of different sizes and orientation, but they also get the motivation and the possibility of basic preparation for their own innovative business. The strong competitive advantage of the program graduates is the ability to solve complex managementrelated problems of the development of systems and services for which they can use the acquired skills by the study. Their potential is predestined to hold managerial positions, such as the Chief Information Officer (CIO), project manager, and risk manager. Graduates of the cybersecurity management specialization will find application primarily in companies and institutions that need specialists able to work with relevant coordinating institutions and ensure the management of cybersecurity processes. These are positions as a cybersecurity manager and Chief Information Security Officer (CISO).
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
PA017 
Software Engineering II 

PV206 
Communication and Soft Skills 
PV079 
Applied Cryptography 
MV013 
Statistics for Computer Science 
PA152 
Efficient Use of Database Systems 
PA179 
Project Management 
PA180 
Interim Project I+II 
SOBHA 
Defence of Thesis 
SZMGR 
State Exam (MSc degree) 
Management Pass at least 1 course of the following list  
PA182

Managing in Reality 
PV214

IT Service Management based on ITIL 
PV215

Management by Competencies 
PV237

Strategy and Leadership 
PV271

Risk Management in IT 
PV203

IT Services Management 
PV274

Data Quality Management Seminar 
Specialization: Software Systems Development and Management
Software Systems Development and Managment specialization focuses on software engineering, i.e., to acquire the knowledge and skills needed at all stages of development, management and maintenance of information, and other types of large software systems. The specialization emphasizes the ability to analyse and specify system requirements, system design, and implementation and deployment.
Compulsory subjects of the specialization
IA169 
System Verification and Assurance 

PA053 
Distributed Systems and Middleware 
PA103 
Objectoriented Methods for Design of Information Systems 
PA165 
Enterprise Applications in Java 
PA197 
Secure Network Design 
PV028 
Applied Information Systems 
Programming Pass at least 1 course of the following list  
PA036

Database System Project 
PV229

Multimedia Similarity Searching in Practice 
PV247

Modern Development of User Interfaces 
PV248

Python 
PV249

Development in Ruby 
Recommended course of study
Fall 2019 (1. term)
Spring 2020 (2. term)
Fall 2020 (3. term)
Specialization: Service Development Management
Services Development Management specialization follows the current large shift from the traditional paradigm of IT design to IT as a service and from productoriented economy to serviceoriented one. Problems and tasks in IT are becoming more complex and the knowledge of IT technology is not sufficient for solving them. A multidisciplinary view is the core of this specialization. Students will gain not only sound IT knowledge (programming, databases, computer security, networks, etc.), but also the skills necessary to understand problems in their complexity (marketing, management, finance or law) as well as necessary communication competencies.
Compulsory subjects of the specialization
PA116 
Domain Understanding and Modeling 

PA194 
Introduction to Service Science 
PA181 
Services  Systems, Modeling and Execution 
PV207 
Business Process Management 
Computer networks Pass at least 1 course of the following list  
PA151

Advanced Computer Networks 
PA159

NetCentric Computing I 
PA191

Advanced Computer Networking 
PA211

Advanced Topics of Cyber Security 
PV210

Cyber security in an organization 
PV177

Laboratory of Advanced Network Technologies 
Economy Pass at least 1 course of the following list  
PV028

Applied Information Systems 
PV241

Enterprise and Financial Management 
Programming Pass at least 1 course of the following list  
PA036

Database System Project 
PA165

Enterprise Applications in Java 
PV229

Multimedia Similarity Searching in Practice 
PV247

Modern Development of User Interfaces 
PV248

Python 
PV249

Development in Ruby 
Soft skills Pass at least 1 course of the following list  
ESF:MPV_RKMD

Communication and Managerial Skills training 
ESF:MPV_COMA

Communication and Managerial Skills Training 
ESF:MPP_CEIT

Czech and European Law of Information Technologies 
PV236

Time Management and Effectiveness 
PV209

Person Centered Communication 
IV057

Seminar on Information Society 
PV263

Intercultural Management 
IV064

Information Society 
PA212

Advanced Search Techniques for Large Scale Data Analytics 
Marketing Pass at least 1 course of the following list  
PV216

Marketing Strategy in Service Business 
PV240

Introduction to service marketing 
Recommended course of study
Fall 2019 (1. term)
Spring 2020 (2. term)
Specialization: Cybersecurity Managment
Cybersecurity Management specialization takes into account the aspects of computer data processing beyond the welldefined system perimeters (e.g., critical infrastructure impact), reflected in the area of cybersecurity and allowing a specific multidisciplinary overlap of both technical and social and legal aspects of cybersecurity.
Compulsory subjects of the specialization
BVV14Keng 
Theory of CyberLaw 

IV054 
Coding, Cryptography and Cryptographic Protocols 
PrF:MVV60K 
Cybersecurity Law 
PA197 
Secure Network Design 
PV204 
Security Technologies 
PA018 
Advanced Topics in Information Technology Security 
PrF:SOC022 
European Cyberlaw 
IV128 
Online Communication from Social Science Perspective 
Computer networks Pass at least 1 course of the following list  
PA151

Advanced Computer Networks 
PA159

NetCentric Computing I 
PA191

Advanced Computer Networking 
PA211

Advanced Topics of Cyber Security 
PV210

Cyber security in an organization 
PV177

Laboratory of Advanced Network Technologies 
Recommended course of study
Fall 2019 (1. term)
Spring 2020 (2. term)
Fall 2020 (3. term)
Spring 2021 (4. term)
 Choice: 1 course from Management

PrF:MVV60K
Cybersecurity Law 
IV128
Online Communication from Social Science Perspective 
SDIPR
Diploma Thesis 
SOBHA
Defence of Thesis 
SZMGR
State Exam (MSc degree)
List of courses open at FI (2019/2020)
This list has been built on 5. 12. 2019. Some minor changes may appear during the year, for the current and most uptodate details see IS MU.
MB102 Differential and Integral Calculus
zk 2/2 4 kr., podzim
 doc. RNDr. Michal Veselý, Ph.D.
 Prerequisities:
! NOW ( MB202 ) && ! MB202
High school mathematics  Goals: The course is the second part of the four semester block of Mathematics. The course Differential and Integral Calculus, in particular, is concerned with the basic concepts of Calculus including numerical and applied aspects.
 Learning outcomes:
At the end of the course students will be able to:
work both practically and theoretically with the derivative and (indefinite and definite) integral;
analyse the behavior of functions of one real variable.
understand the theory and use of infinite number series and power series;
understand the selected applications of the Calculus;
apply the methods of calculus to concrete problems.  Syllabus:
Polynomial interpolation
Continuous functions and limits
Derivative and its applications
Elementary functions
Indefinite integral
Riemann integral and its applications
Infinite series and power series, Fourier series, integral transformations
MB103 Continuous models and statistics
zk 2/2 4 kr., podzim
 doc. Mgr. Josef Šilhan, Ph.D.
 Prerequisities:
! MB203 && ! NOW ( MB203 )
Recommended: knowledge of elementary functions, polynomials, rational functions. Further the elements of matrix calculus, as well knowledge of vector spaces and linear mappings and basic tools of Calculus in one real variable.  Goals:
At the end of this course, students should be able to:
use methods of calculus in the case of functions in more variables; solve basic optimization problems;
understand theoretical concepts of the probability theory; apply methods of mathematical statistics to basic problems.  Syllabus:
The course is the third part of the four semester block of Mathematics. In the entire course, the fundamentals of algebra and number theory, linear algebra and analysis, numerical methods, combinatorics as well as probability and statistics are presented.
Content of the course Continuous models and statistics:
Calculus: differential and integral calculus in more variables, selected applications of Calculus, systems of differential equations, numerical solutions.
Elements of Probability, random variables and their characteristics, descriptive statistics, gentle introduction to methods of Mathematical Statistics.
MB104 Discrete mathematics
zk 2/2 4 kr., jaro
 prof. RNDr. Jan Slovák, DrSc.
 Prerequisities:
! MB204 && ! NOW ( MB204 )
High school mathematics. Elementary knowledge of algebraic and combinatorial tasks (in the extent of MB101 or MB102).  Goals:
At the end of this course, students should be able to:
understand and use methods of number theory to solve simple tasks;
understand approximately how results of number theory are applied in cryptography:
understand basic computational context;
model and solve simple combinatorial problems.  Syllabus:
Number theory:
divisiblity (gcd, extended Euclid algorithm, Bezout); numerics of big numbers (gcd, modular exponential); prime numbers (properties, basic theorems of arithmetics, factorization, prime number testing (RabinMiller, Mersenneho prime numbers); congruences (basic properties, small Fermat theorem; Euler theorem; linear congruences; binomial congruences a primitiv roots; discrete logarithm;
Number theory applications:
short introduction to asymetric cryptography (RSA, DH, ElGamal, DSA, ECC); basic coding theory (linear and polynomial codes);
Combinatorics:
reminder of basics of combinatorics; generalized binomial theorem; combinatorial identities; Catalan numbers; formal power series; (ordinary) generating functions; exponential generating functions; probabilistic generating functions; solving combinatorial problems with the help of generating functions; solving basic reccurences (Fibonacci).
MB141 Linear algebra and discrete mathematics
zk 2/2 3 kr., jaro
 prof. RNDr. Jan Slovák, DrSc.
 Prerequisities:
! NOW ( MB151 ) && ( ! MB151  ! MB154 ) && ( ! MB101  ! MB104 )
 Goals: Introduction to linear algebra and analytical geometry.
 Learning outcomes: At the end of this course, students should be able to: understand basic concepts of linear algebra and probability; apply these concepts to iterated linear processes; solve basic problems in analytical geometry.
 Syllabus:
The course is the first part of the four semester block of Mathematics. In the entire course, the fundamentals
of general algebra and number theory, linear algebra, mathematical analysis, numerical methods, combinatorics, as well as probability and statistics are presented. Content of the course Linear models:
1. Vectors and matrices (3 weeks)  vectors, vector space, linear independence, basis, linear mappings, matrices, matrix calculus and determinants, orthogonality, eigenvalues and eigenvectors.
2. Linear models (3 weeks)  systems of linear (in)equalities, linear programming problem, linear difference equations, iterated linear processes (population models) and Markov chains.
3. Analytical geometry (2 weeks)  geometrical applications: line, plane, parametric versus nonparametric descriptions, positioning of planes and lines, projective space extension, angle, length, volume, elementary classification of quadrics.
MB151 Linear models
zk 2/2 3 kr., jaro
 doc. Mgr. Ondřej Klíma, Ph.D.  prof. RNDr. Jan Slovák, DrSc.
 Prerequisities:
IB000 && ( ! MB101 && ! MB201 )
 Goals: Introduction to linear algebra and analytical geometry.
 Learning outcomes: At the end of this course, students should be able to: understand basic concepts of linear algebra and probability; apply these concepts to iterated linear processes; solve basic problems in analytical geometry.
 Syllabus:
The course is the first part of the four semester block of Mathematics. In the entire course, the fundamentals
of general algebra and number theory, linear algebra, mathematical analysis, numerical methods, combinatorics, as well as probability and statistics are presented. Content of the course Linear models:
1. Vectors and matrices (3 weeks)  vectors, vector space, linear independence, basis, linear mappings, matrices, matrix calculus and determinants, orthogonality, eigenvalues and eigenvectors.
2. Linear models (3 weeks)  systems of linear (in)equalities, linear programming problem, linear difference equations, iterated linear processes (population models) and Markov chains.
3. Analytical geometry (2 weeks)  geometrical applications: line, plane, parametric versus nonparametric descriptions, positioning of planes and lines, projective space extension, angle, length, volume, elementary classification of quadrics.
MB203 Continuous Models and Statistics B
zk 4/2 6 kr., podzim
 doc. RNDr. Martin Čadek, CSc.
 Prerequisities:
! MB103 && ! NOW ( MB103 )
Recommended: knowledge of elementary functions, polynomials, rational functions. Further the elements of matrix calculus, as well knowledge of vector spaces and linear mappings and basic tools of Calculus in one real variable.  Goals:
At the end of this course, students should be able to:
use methods of calculus in the case of functions in more variables, inlcuding integration over curves and surfaces; solve basic optimization problems; exploit differential equations in continuous modeling;
understand theoretical concepts of the probability theory; apply methods of descriptive and mathematical statistics to basic problems.  Syllabus:
The course is the third part of the four semester block of Mathematics. In the entire course, the fundamentals of algebra and number theory, linear algebra and analysis, numerical methods, combinatorics as well as probability and statistics are presented.
Calculus: differential and integral calculus in more variables, selected applications of Calculus, systems of differential equations, numerical solutions.
Elements of Probability, random variables and their characteristics, descriptive statistics, gentle introduction to methods of Mathematical Statistics.
MB204 Discrete mathematics B
zk 4/2 6 kr., jaro
 Mgr. Michal Bulant, Ph.D.
 Prerequisities:
! MB104 && ! NOW ( MB104 )
High school mathematics. Elementary knowledge of algebraic and combinatorial tasks (in the extent of MB101 or MB102).  Goals:
At the end of this course, students should be able to:
understand and use methods of number theory to solve moderately difficult tasks;
understand how results of number theory are applied in cryptography:
understand basic computational context;
understand algebraic notions and explain general implications and context;
model and solve combinatorial problems and use generating functions during their solutions.  Syllabus:
The fourth part of the block of four courses in Mathematics in its extended version. In the entire course, the fundamentals of general algebra, linear algebra and mathematical analysis, including their applications in probability, statistics are presented. This semester introduces elemetns of number theory, algebra and some combinatorial methods, including numerical and applied aspects.
1. Number theory (4 weeks) – divisiblity (gcd, extended Euclid algorithm, Bezout); numerics of big numbers (gcd, modular exponential); prime numbers (properties, basic theorems of arithmetics, factorization, prime number testing (RabinMiller, Mersenneho prime numbers); congruences (basic properties, small Fermat theorem; Euler theorem; linear congruences; binomial congruences a primitiv roots; discrete logarithm; prime numbers  testing up to AKS, divisors, eliptic curves (introduction); Legendre symbol and the quadratic reciprocity law.
2. Number theory applications (1 week) – short introduction to asymetric cryptography (RSA, DH, ElGamal, DSA, ECC); basic coding theory (linear and polynomial codes); aplication of fast Fourier transform for quick computations (e.g. SchönhageStrassen)
3. Computer algebra introduction (3 týdny) – groups, permutations, symetries, modular groups, homomorfisms and factorization, group actions (Burnside lemma); rings and fields (polynomials and their roots, divisibility in integers and in polynomial rings, ideals; finite fields and their basic properties (including applications in computer science; polynomials of more variables (Gröbner basis).
4. Combinatorics (4 weeks) – reminder of basics of combinatorics; generalized binomial theorem; combinatorial identities; Catalan numbers; formal power series; (ordinary) generating functions; exponential generating functions; probabilistic generating functions; solving combinatorial problems with the help of generating functions; solving basic reccurences (Fibonacci); complexity of reccurent algorithm; generating functions in computer science (graph applications, complexity, hashing analysis)
MA002 Calculus
zk 2/2 3 kr., podzim
 Mgr. Peter Šepitka, Ph.D.
 Prerequisities: Basic knowledge from the calculus and multivariable calculus
 Goals: This course extends the basic knowledge from mathematical analysis. It is devoted to the basic study of systems of linear differential equations, line integrals, the theory of complex functions of complex variable, and calculus of variations.
 Learning outcomes: At the end of the course students should be able to: to define and interpret the basic notions used in the fields mentioned above; to formulate relevant mathematical theorems and statements and to explain methods of their proofs; to use effective techniques utilized in these subject areas; to apply acquired pieces of knowledge for the solution of specific problems; to analyse selected problems from the topics of the course.
 Syllabus:
Systems of linear differential equations.
Line integral.
Analysis in complex domain.
Calculus of variations.
MA007 Mathematical Logic
zk 2/1 3 kr., podzim
 prof. RNDr. Antonín Kučera, Ph.D.
 Prerequisities:
MB005  MB101  MB201  PřF:M1120  PřF:M1125
Students should have passed the course MB005 Foundations of mathematics or the course MB101 Mathematics I. A recommended course is MB008 Algebra I.  Goals: The course covers basic results about propositional and first order logic, including Gödel's completeness and incompleteness theorems.
 Learning outcomes:
At the end of this course, students should be able to:
understand the difference between formal notions and notions defined at a metalevel;
understand the difference between validity and provability;
understand the syntax and semantics of firstorder logic;
understand and appreciate the fundamental ideas in the proofs of Gödel's completeness and incompleteness theorems.  Syllabus:
Propositional calculus: propositional formulas, truth, provability,
completeness.
Firstorder logic: syntax, semantics.
A deductive system for firstorder logic. Provability, correctness.
Completeness theorem: theories, models, Gödel's completeness theorem
Basic model theory, LöwenheimSkolem theorem
Gödel's incompleteness theorem.
MA009 Algebra II
zk 2/2 3 kr., jaro
 doc. Mgr. Michal Kunc, Ph.D.
 Prerequisities:
( MB008  MV008  program ( N  IN ) program ( N  AP ) program ( N  SS ))
 Goals: After passing the course, students will be able to: use the basic notions of the theory of lattices and universal algebra; define and understand basic properties of lattices and complete lattices; verify simple algebraic statements; apply theoretical results to algorithmic calculations with operations and terms.
 Learning outcomes: After passing the course, students will be able to: use the basic notions of the theory of lattices and universal algebra; define and understand basic properties of lattices and complete lattices; verify simple algebraic statements; apply theoretical results to algorithmic calculations with operations and terms.
 Syllabus:
Lattice theory: semilattices, lattices, lattice homomorphisms, modular and distributive lattices, Boolean algebras, complete lattices, fixed point theorems, closure operators, completion of partially ordered sets, Galois connections, algebraic lattices.
Universal algebra: algebras, subalgebras, homomorphisms, term algebras, congruences, quotient algebras, direct products, subdirect products, identities, varieties, free algebras, presentations, Birkhoff's theorem, completeness theorem for equational logic, algebraic specifications, rewriting systems.
MA010 Graph Theory
zk 2/1 3 kr., podzim
 prof. RNDr. Petr Hliněný, Ph.D.
 Prerequisities:
! PřF:M5140 &&! NOW ( PřF:M5140 )
Discrete mathematics, basic concepts of graphs and of graph algorithms. IB000 (or equivalent from other schools) is highly recommended.  Goals: This is a standard course in graph theory, assuming little introductory knowledge of graphs. It aim is to present all usual basic concepts of graph theory, graph properties (with simplified proofs) and formulations of typical graph problems. This is also supplemented with some abstractlevel algorithms for the presented problems, and with some advanced graph theory topics. Although the content of this course is primarily targeted at CS students, it is accessible also to others.
 Learning outcomes: At the end of the course, successful students shall understand in depth and tell all the basic terms of graph theory; be able to reproduce the proofs of some fundamental statements on graphs; be able to solve new graph problems; and be ready to apply this knowledge in (especially) computer science applications.
 Syllabus:
Graphs and relations. Subgraphs, isomorphism, degrees. Directed graphs.
Graph connectivity and searching, multiple connectivity. Trees, the MST problem.
Distance in graphs, graph metrics, concepts of route planning in graphs.
Network flows. The "maxflow mincut" theorem via FordFulkerson's algorithm. Applications to connectivity and representatives.
Matching in graphs, packing problems, enumeration.
Graph colouring, properties, easy and hard cases. Edge and list colourings.
Drawings and planar graphs, duality, Euler's formula and its applications.
Computationally hard graph problems on graphs, how to tell "difficulty" of a graph problem.
Selected advanced topics (time allowing): Intersection graph representations, chordal graphs, structural width measures, graph minors, graph embeddings on surfaces, crossing number, Ramsey theory.
MA012 Statistics II
zk 2/2 3 kr., podzim
 Mgr. Ondřej Pokora, Ph.D.
 Prerequisities: Prerequisites: calculus in one and several variables, basics of linear algebra, probability and statistics from course MV011 Statistics I.
 Goals: Course will introduce advanced statistical methods and usage of freely available software tool R.
 Learning outcomes: Upon completing this course, students will be able: to apply advanced statistical method for real datasets; to understand the corresponding algorithms and calculations; to statistically analyze multivariate data; to employ the free statistical software R.
 Syllabus:
One and twofactor analysis of variance (ANOVA);
Nonparametric statistical tests;
Goodnessoffit tests;
Multivariate linear regression;
Correlation analysis, coefficients of correlation;
Autocorrelation, multicollinearity;
Generalized linear models (GLM);
Principal component analysis (PCA);
ROC curves, decisionmaking;
MA015 Graph Algorithms
zk 2/1 3 kr., podzim
 doc. Mgr. Jan Obdržálek, PhD.
 Prerequisities:
MB005 ( MB101 && MB102 )( MB201 && MB102 )( MB101 && MB202 )( MB201 && MB202 )( PřF:M1120 ) PROGRAM ( N  IN ) PROGRAM ( N  AP )
Knowledge of basic graph algorithms, to the extent covered by the course IV003 Algorithms and Data Structures II. Specifically, students should already understand the following datastructures and algorithms: Graphs searching: DFS, BFS. Network flows: FordFulkerson, Golderg (pushrelabel). Minimum spanning trees: Boruvka, Jarnik (Prim), Kruskal. Shortest paths: BellmanFord, Dijkstra. Datastructures: heaps (incl. Fibonacci), disjoint set (unionfind), ...  Goals: The course introduces graph important algorithms beyond the reach of standard algorithms and data structures courses. Covered algorithms span most of the important application areas of graphs algorithms.
 Learning outcomes: At the end of the course students will under know and understand important graph algorithms beyond the reach of standard algorithms and data structures courses. Covered algorithms span most of the important application areas of graphs algorithms. The students also should be able to choose an algorithm best suited for a given task, modifying it when necessary, and estimate its complexity.
 Syllabus:
Minimum Spanning Trees.
Quick overview of basic algorithms (Kruskal, Jarník [Prim], Borůvka) and their modifications. Advanced algorithms: FredmanTarjan, Gabow et al. Randomized algorithms: KargerKleinTarjan. Arborescenses of directed graphs, Edmond's branching algorithm.
Flows in Networks. Revision  FordFulkerson. EdmondsKarp, Dinic's algorithm (and its variants), MPM (three Indians) algorithm. Modifications for restricted networks.
Minimum Cuts in Undirected Graphs. All pairs flows/cuts: GomoryHu trees. Global minimum cut: node identification algorithm (NagamochiIbaraki), random algorithms (Karger, KargerStein)
Matchings in General Graphs. Basic algorithm using augmenting paths. Perfect matchings: Edmond's blossom algorithm. Maximum matchings.
Graph Isomorphism. Colour refinement. Individualisationrefinement algorithms. Tractable classes of graphs.
Dynamic Algorithms for Hard Problems. Dynamic programming on trees and circulararc graphs. Treewidth; dynamic programming on treedecompositions.
Branching and Kernelization Algorithms for Hard Problems. Bounded search trees. Kernelization.
MA017 Geometric Algorithms
zk 2/0 2 kr., podzim
 John Denis Bourke, PhD.  doc. RNDr. Martin Čadek, CSc.
 Prerequisities: Basic course on algorithms, high school geometry.
 Goals: The aim of the course is to introduce the principles of basic algorithms in computational geometry. This course can be followed by the PA093 Computational Geometry Project where the students are implemented selected algorithms in practice.
 Learning outcomes: Students will gain knowledge about stateoftheart algorithmic methods in this field, along with their complexity and underlying data and searching structures.
 Syllabus: 1. Algorithms for construction of convex hulls in twodimensional space 2. Line segment intersections 3. Triangulations 4. Linear programming in twodimensional space 5. Range searching (kdtrees, range trees) 6. Point localization 7. Voronoi diagrams 8. Duality and arrangements 9. Delaunay triangulation 10. Convex hulls in in threedimensional space
MA018 Numerical Methods
zk 2/2 3 kr., podzim
 Mgr. Jiří Zelinka, Dr.
 Prerequisities: Differential calculus of functions of one and more variables. Basic knoledge of linear algebratheory of matrices and solving systems of linear equations.
 Goals: This course provides complete explanation of numerical mathematics as the separate scientific discipline. The emphasis is given to the algorithmization and computer implementation. Some examples with graphical outputs help to explain even some difficult parts.
 Learning outcomes: At the end of course students should be able to apply numerical methods for solving practical problems and use these methods in other disciplines.
 Syllabus:
1. Error analysis: absolute and relative error, representation of numbers, error propagation
2. Iterative methods for solving of nonlinear equations: general iterative method, order of the convergence, Newton method and its modifications
3. Direct methods for solving systems of linear equations: methods based on Gaussian elimination, methods for special matrices
4. Iterative methods for solving of systems of linear equations: general construction of iterative methods, Jacobi method, GaussSeidel method
5. Solving of systems of nonlinear equations: Newton method
6. Interpolation and approximation: polynomial and piecewise polynomial interpolation, curve approximations, subdivision schemes, least squares method
7. Numerical differentiation: differentiation schemes
8. Numerical integration: methods based on interpolation, Monte Carlo integration
MV008 Algebra I
zk 2/2 3 kr., podzim
 doc. Mgr. Ondřej Klíma, Ph.D.  doc. Mgr. Michal Kunc, Ph.D.
 Prerequisities:
( MB005  MB101  MB201 ) && ! MB008
 Goals: After passing the course, students will be able to: use the basic notions of the theory of monoids, groups and rings; define and understand basic properties of these structures; verify simple algebraic statements; apply theoretical results to algorithmic calculations with numbers, mappings and polynomials.
 Learning outcomes: After passing the course, students will be able to: use the basic notions of the theory of monoids, groups and rings; define and understand basic properties of these structures; verify simple algebraic statements; apply theoretical results to algorithmic calculations with numbers, mappings and polynomials.
 Syllabus:
Semigroups: monoids, subsemigroups and submonoids, homomorphisms and isomorphisms, Cayley's representation, transition monoids of automata, direct products of semigroups, invertible elements.
Groups: basic properties, subgroups, homomorphisms and isomorphisms, cyclic groups, Cayley's representation, direct products of groups, cosets of a subgroup, Lagrange's theorem, normal subgroups, quotient groups.
Polynomials: polynomials over complex, real, rational and integer numbers, polynomials over residue classes, divisibility, irreducible polynomials, roots, minimal polynomials of numbers.
Rings: basic properties, subrings, homomorphisms and isomorphisms, direct products of rings, integral domains, fields, fields of fractions, divisibility, polynomials over a field, ideals, quotient rings, field extensions, finite fields.
MV011 Statistics I
zk 2/2 4 kr., jaro
 doc. Mgr. Jan Koláček, Ph.D.
 Prerequisities: Prerequisites: calculus in one and several variables, basics of linear algebra.
 Goals: Upon completing this course, students will be able to perform basic computer aided statistical data set analysis in R language, resulting in tables, graphs and numerical characteristics; will understand basic probability concepts; will be able to solve probability tasks related to explained theory (in some cases using statistical software); will be able to generate realizations of selected types random variables using statistical software; has basic knowledge of statistical hypothesis testing, will be able carry out tests in statistical software and interpret the results.
 Syllabus:
Introduction to the probability theory.
Random variables and vectors. Probability distribution and distribution function.
Discrete and continuous random variables and vectors. Typical distribution laws. Simultaneous and marginal distributions.
Stochastic independence of random variables and vectors. The sequence of independent trials.
Quantiles, expectation, variance, covariance, correlation coeficient and their properties.
Weak law of large number and central limit theorem.
Data files, empirical characteristics and graphs, numerical characteristics. Descriptive statistics in R language.
Random sample, point and interval estimators.
Basics of testing hypothesis. Testing hypothesis in R language.
Regression analysis in R language.
MV013 Statistics for Computer Science
zk 2/2 3 kr., jaro
 doc. PaedDr. RNDr. Stanislav Katina, Ph.D.
 Prerequisities: The knowledge of basic calculus, linear algebra and theory of probability.
 Goals: The main goal of the course is to become familiar with some basic principles of data science and statistics, with writing about numbers (presenting data using basic characteristics and statistical graphics), some basic principles of likelihood and statistical inference; to understand basic probabilistic and statistical models; to understand and explain basic principles of parametric statistical inference for continuous and categorical data base on Wald principle, likelihood and score principle connecting the statistical theory with implementation in R, geometry, and statistical graphics; to implement these techniques to R language; to be able to apply them to real data.
 Learning outcomes:
Student will be able:
 to understand principles of likelihood and statistical inference for continuous and discrete data;
 to select suitable probabilistic and statistical model for continous and discrete data;
 to use suitable basic characteristics and statistical graphics for continous and discrete data;
 to build up and explain suitable statistical test for continuous and discrete data;
 to apply statistical inference on real continuous and discrete data;
 to apply simple linear regression model on real continuous data;
 to implement statistical methods of continuous and discrete data to R.  Syllabus:
Why computer scientists should study statistics?
Computer science related problems with analysed data
Why the thought study based on data is useful?
Data types
Sampling
Parametric probabilistic and statistical models
Likelihood principle and parameter estimation using numerical methods
Descriptive statistics (tables, listings, figures)
From description to statistical inference
Hypothesis testing and parameters of a model
Goodnessoffit tests
Testing hypotheses about onesample
Testing hypotheses about twosamples
Testing hypotheses about more than two sample problems including ANOVA
Simple linear regression model
Interpretation of statistical findings
IB000 Mathematical Foundations of Computer Science
zk 2/2 4 kr., podzim
 prof. RNDr. Petr Hliněný, Ph.D.
 Goals: This course is focused on understanding basic mathematical concepts necessary for study of computer science. This is essential for building up a set of basic concepts and formalisms needed for other theoretical courses in computer science. At the end of this course the successful students should: know the basic mathematical notions; understand the logical structure of mathematical statements and mathematical proofs, specially mathematical induction; know discrete mathematical structures such as finite sets, relations, functions, and graph; be able to precisely formulate their claims, algorithms, and relevant proofs; and apply acquired knowledge in other CS courses as well as in practice later on.
 Learning outcomes: After finishing the course the student will be able to: understand the logical structure of mathematical statements and mathematical proofs, deal with and explain basic structures of discrete mathematics, precisely formulate their claims, algorithms, and relevant proofs.
 Syllabus:
The course focuses on understanding basic mathematical tools:
Basic formalisms  statements, proofs, and propositional logic.
Sets, relations, and functions.
Proof techniques, mathematical induction.
Recursion, structural induction.
Binary relations, closure, transitivity.
Equivalence and partial orders.
Composition of relations and functions.
Basics of graphs, isomorphism, connectivity, trees.
Graph distance, spanning trees. Directed graphs.
Proof techniques for algorithms.
Infinite sets and the halting problem.
IB002 Algorithms and data structures I
zk 2/2 4 kr., jaro
 prof. RNDr. Ivana Černá, CSc.
 Prerequisities:
IB001  IB111  IB999
The students should comprehend the basic notions on the level of IB111 Introduction to Programming and IB000 Mathematical Foundations of Computer Science Students should be able to: understand and apply basic constructs of programming languages (e.g., conditions, loops, functions, basic data types) in Python, know principles of recursion, and several basic algorithms. Students should know the basic mathematical notions; understand the logical structure of mathematical statements and mathematical proofs, specially mathematical induction; know discrete mathematical structures such as finite sets, relations, functions, and graph including their applications in informatics.  Goals: The course presents basic techniques of the analysis of algorithms, data structures, and operations. Students should correctly apply the basic data structures and algorithms as well as apply the algorithm design and analysis techniques when designing new algorithms. Students implement their algorithms in programming language Python.
 Learning outcomes:
After enrolling the course students are able to:
 actively use and modify basic sorting algorithms and graph algorithms,
 actively used basic techniques for designing algorithms (divide et impera, recursion) and design simple algorithms,
 actively used and modify basic static and dynamic data structures,
 employ time complexity and correctness of algorithms,
 analyze time complexity and prove the correctness of simple iterative and recursive algorithms,
 implement algorithms in the selected programming language (Python).  Syllabus:
Basic analysis of algorithms:
The correctness of algorithms, input and output conditions, partial correctness, convergence, verification.
Length of computation, algorithm complexity, problem complexity. Asymptotical analysis of time and space complexity, growth of functions.
Algorithm design techniques. Divide et impera and recursive algorithms.
Fundamental data structures: lists, queues. Representation of sets, hash tables. Binary heaps. Binary search trees, balanced trees (B trees, Redblack trees).
Sorting algorithms: quicksort, mergesort, heapsort, lower bound for the time complexity of sorting.
Graphs and their representation. Graph search. Depthfirst traversal, topological sort, strongly connected components. Breadthfirst traversal, bipartite graphs. Shortest paths, algorithm BellmanFord, Dijkstra's algorithm.
IB005 Formal Languages and Automata
zk 4/2 4 kr., jaro
 prof. RNDr. Mojmír Křetínský, CSc.
 Prerequisities:
IB000 && ! IB102
Knowlegde corresponding to the courses IB000 Mathematical Foundations of Computer Science  Goals: Students should be able to understand and explain the rich heritage of models and abstractions that have arisen over the years, and to develop the students' capacity to form abstractions of their own and reason in terms of them.
 Learning outcomes:
At the end of the course students should be able to:
Demonstrate an indepth understanding of theories, concepts and techniques in automata and their link to computation.
Develop abstract machines that demonstrate the properties of physical/SW systems and be able to specify the possible inputs, processes and outputs of these machines. Analyze the computational strengths and weaknesses of these machines.
Understand the concept of computability by manipulating these machines in order to demonstrate the properties of computational processes.
Practice techniques of program design and development by using abstract machines. Apply automata concepts and techniques in designing systems that address real world problems  Syllabus:
Languages and grammars. Chomsky hierarchy.
Finite automata and regular grammars.
Properties of regular languages. Applications.
Contextfree grammars and pushdown automata.
Properties of contextfree languages.
Turing machines (TM). Computable languages and functions, LBA. Properties of recursive and recursive enumerable languages.
Undecidability, halting problem for TM, Reduction, Post Correspondece Problem, undecidable problems from language theory.
IB015 NonImperative Programming
zk 2/1 4 kr., podzim
 prof. RNDr. Jiří Barnat, Ph.D.
 Prerequisities: There are no special prerequisities apart from the basic math skills (on the secondaryschool level), and certain aptitude for abstract reasoning.
 Goals: On successful completion of the course, students will understand functional and logic programming paradigms. Programming languages enforcing declarative way of description of an algorithm bring on programming habits that the students will be able to use in practice later on when implementing large applications using even imperative languages.
 Learning outcomes: After graduation students will:  understand fundaments of functional programming,  be able to decompose computational problems to individual functions and apply this ability for design and implementation of programs even in imperative programming languages,  have basic knowledge of Haskell programming language  be able to design and implement recursive functions,  be able to work with recursively defined data structures.
 Syllabus:
Functional computational paradigm and Haskell
Functions in programming;
Lists, Types and Recursion
Functions of higher rank, Lambda functions
Accumulators, Type definitions, Input/Output
Reduction strategy, Infinite lists
Relation of recursion and induction, Recursive data types
Time complexity of computation, Type classes, Modules
Functional solutions od some problems
Logical computational paradigm and Prolog
Nonimperative programming in Prologu
Lists, Arithmetics, Tail rekursion in Prologu
Cuts, InputOutput, All solutions
An Introduction to Constraint Solving Programming
IB016 Seminar on Functional Programming
z 0/2 2 kr., jaro
 Vladimír Chlup  Martin Kurečka  Bc. Adam Matoušek  RNDr. Vladimír Štill
 Prerequisities:
IB015
Prerequisities for enrolling in the course are to be familiar with Haskell in the scope of the IB015 NonImperative Programming course and to have a positive attitude towards functional programming.  Goals: Students will significantly extend their knowledge of functional programming. At the end of the course, they should be able to solve nontrivial programming problems using Haskell and be familiar with practical use of this functional language.
 Learning outcomes:
After finishing the course, the student will be able to:
— write a Haskell program with approximatelly 100 to 200 lines;
— perform analysis and functional decompisition of given problem;
— use supportive tools for Haskell developers such as the Cabal package manager, the Hackage package repository, the HLint linter, and the QuickCheck testing framework;
— describe theoretical functional concepts;
— have an idea about some more advanced functional techniques used in practice.  Syllabus:
Advanced syntax, modules, custom type classes, advanced data structures.
Package system (Hackage/Stackage), support tools (Cabal, HLint, Haddock).
Functors, applicative functors, monads.
Automatic generation of tests according to program specification (QuickCheck).
Input and output in Haskell, processing errors and exceptions (Maybe, Either, exceptions, error states).
Semigroups, monoids, the Foldable and Traversable classes.
Evaluation strategies (laziness vs. strictness).
Contextaware traversal of data structures (Zippers, Lens).
Monadic parsing (Parsec).
Monads for shared writing, shared reading and keeping the state (Writer, Reader, State).
Monad transformers (MaybeT, ErrorT).
Processing strings and other useful GHC extensions.
Haskell in real world projects.
IB030 Introduction to Computational Linguistics
zk 2/0 2 kr., jaro
 doc. RNDr. Aleš Horák, Ph.D.
 Goals: In this course the main principles of natural language processing are presented. The algorithmic description of the main language analysis levels will be discussed  morphology, syntax, semantics and pragmatics. Also the resources of natural language data, corpora, will be presented. The role of knowledge representation, inference and relations to artificial intelligence will be touched as well.
 Learning outcomes:
Students will be able to:
 identify and summarize the main phases of computer natural language analysis;
 describe principles of algorithms used for speech analysis;
 explain the main approaches to analysis at the morphological and syntactic level of language;
 provide an overview of main language resources, their formats and processing;
 understand approaches to computational semantics and its applications.  Syllabus:
Introduction to Computational Linguistics (Natural Language Processing, NLP).
Levels of description: phonetics and phonology, morphology, syntax, semantics and pragmatics.
Representation of morphological and syntactic structures.
Analysis and synthesis: speech, morphological, syntactic, semantic.
Knowledge representation forms with regard to lexical units.
Language understanding: sentence meaning representation, logical inference.
IB031 Introduction to Machine Learning
zk 2/2 3 kr., jaro
 doc. RNDr. Tomáš Brázdil, Ph.D.  doc. RNDr. Lubomír Popelínský, Ph.D.
 Prerequisities: Recommended courses are MB102 a MB103.
 Goals: By the end of the course, students should know basic methods of machine learning and understand their basic theoretical properties, implementation details, and key practical applications. Also, students should understand the relationship among machine learning and other subareas of mathematics and computer science such as statistics, logic, artificial intelligence and optimization.
 Learning outcomes:
By the end of the course, students
 will know basic methods of machine learning;
 will understand their basic theoretical properties, implementation details, and key practical applications;
 will understand the relationship among machine learning and other subareas of mathematics and computer science such as statistics, logic, artificial intelligence and optimization;
 will be able to implement and validate a simple machine learning method.  Syllabus:
Basic machine learning: classification and regression, clustering,
(un)supervised learning, simple examples
Decision trees: learning of decision trees and rules
Logic and machine learning: specialization and generalization, logical entailment
Evaluation: training and test sets, overfitting, crossvalidation, confusion matrix, learning curve, ROC curve; sampling, normalisation
Probabilistic models: Bayes rule, MAP, MLE, naive Bayes; introduction to Bayes networks
Linear regression (classification): least squares, relationship wih MLE, regression trees
Kernel methods: SVM, kernel transformation, kernel trick, kernel SVM
Neural networks: multilayer perceptron, backpropagation, nonlinear regression, bias vs variance, regularization
Lazy learning: nearest neighbor method; Clustering: kmeans, hierarchical clustering, EM
Practical machine learning: Data preprocessing: attribute selection and construction, sampling. Ensemble methods. Bagging. Boosting. Tools for machine learning. Weka.
Advanced methods: Inductive logic programming, deep learning.
IB047 Introduction to Corpus Linguistics and Computer Lexicography
zk 2/0 2 kr., jaro
 doc. Mgr. Pavel Rychlý, Ph.D.
 Goals: A basic introduction to the field of corpus linguistics and computational lexicography. Students will study types of corpora, corpus building and usage, especially in the sake of dictionaries building.
 Learning outcomes: Student will be able to: choose the right korpus type for specific purpose; interpret all layers of corpus annotation; use statistical methods on text corpora; design the structure of a dictionary; use free tools for dictionary writing.
 Syllabus:
Information technologies and language (text) corpora.
Beginning of corpus linguistics, purpose of corpora.
Corpus data, corpus types and their standardization, SGML, XML, TEI, CES. Annotated corpora, tagging on various levels: structural tagging, grammatical tagging  POS, lemmata, word forms. Syntactic tagging, treebanks, skeleton analysis. Parallel corpora, alignment. Tools for automatic and semiautomatic annotation, disambiguation.
Building corpora, maintenance. Corpus tools: corpus manager. Concordance programmes. Queries, regular expressions and their use. Statistical programmes, absolute and relative frequencies, MI and Tscore. Work with corpus attributes and tags.
Working with corpora  CNC, SUSANNE, Prague Dependency Treebank
Words, constructions, collocations.
Computational lexicography, lexicology.
Descripton of meanings (semantic features).
Types of computer dictionaries. Lexicography standards.
Data for dictionary building  corpora.
Lexicography Software tools. Lemmatizers.
IB053 Efficient Programming Methods
k 1/1 2 kr., jaro
 Mgr. Petr Steinmetz
 Prerequisities: Knowledge of programming at some of languages C, C++, Pascal, Delphi, Java, C#; knowledge of object oriented programming; basic awareness of machine code
 Goals: Purpose of this lecture is to forward knowledge and experiences needed to development of software. A term "efficient programming" is here meant in two sense. Partly as work expended on creation of program that is to be efficient as possible and partly as program self whose implementation is also to be efficient as possible, i.e. so that computer while performs program makes minimum overhead (noneffective activity). Subject of lecture is not algorithm design self in term of complexity.
 Learning outcomes: At the end of course student gains knowledge and routine leading to more efficient creation of software including more efficient implementation od algorithm.
 Syllabus:
Work efficiency in algorithm design.
Cutback of error rate in program creation.
Cutback of time needed to elimination of mistakes.
Usage of earlier written parts of programs.
Independence of program from later changes.
Portability of program to other environment.
Program efficiency.
Data access mechanism.
Implementation of program structures.
Difference in interpreted and compiled languages.
IB101 Introduction to Logic
zk 2/2 3 kr., jaro
 doc. RNDr. Lubomír Popelínský, Ph.D.
 Prerequisities:
( IB000  IB112 ) && ! IA008
 Goals: This subject gives basics of thinking in logic. The goal of this subject is to give introduction to use of logic in computer science. At the end of the course students will be familiar with propositional and firstorder logic.
 Learning outcomes:
At the end of the course students
 will be familiar with propositional and firstorder logic, and capable to use them;
 know basics of deductive proofs;
 wiil be able to use different variants of resolution.  Syllabus:
This course is an introduction to propositional and predicate logic.
Motivation, examples of the use of logic in computer science. Logic in mathematics.
Propositional logic, logical conectives, logical consequence, truth tables.
Natural language and formalization in propositional logic.
Dokazatelnost, normální formy. Věty o dedukci, formulace a praktické využití.
Základy teorie důkazů ve výrokové logice, axiomatické systémy, metoda DavisePutnama, úvod do rezoluce.
Predikátový počet 1. řádu, predikátové formule, sémantika, axiomy.
Dokazatelnost. Normální formy predikátové logiky. Přirozený jazyk a formalizace v predikátové logice.
Resolution in predicate calculus
Úvod do výpočtové logiky. Použití logik v informatice. Formulace složitějších problémů pomocí logiky.
IB102 Automata and Grammars
zk 2/2 3 kr., podzim
 doc. RNDr. Jan Strejček, Ph.D.
 Prerequisities:
( IB000  PřF:M1125 )&&! IB005
 Goals: At the end of the course students should be able to: explain the basics of theory of formal languages and automata; apply this theory in common practice;
 Learning outcomes: At the end of the course students should be able to: explain the basics of theory of formal languages and automata; apply this theory in common practice;
 Syllabus:
Motivation: finite reprezentation of infinite languages.
Finite automata and regular grammars: Pumping lemma, MyhillNerode theorem, minimization of finite automata, nondeterministic finite automata.
Properties of regular languages: closure properties, regular expressions, Kleene theorem.
Contextfree grammars and languages: transformation of contextfree grammars, selected normal forms, Pumping lemma, closure properties.
Pushdown automata and their relation to contextfree grammars: topdown and bottomup nondeterministic syntax analysis.
Deterministic pushdown automata.
Turing machines, recursive and recursively enumerable languages.
IB107 Computability and Complexity
zk 2/1 3 kr., podzim
 prof. RNDr. Daniel Kráľ, Ph.D., DSc.
 Prerequisities:
IB005  IB102
 Goals:
The course introduces basic approaches and methods for classification
of problems with respect to their algorithmic solvability. It explores
theoretical and practical limits of computers usage and consequences
these limitations have for advancing information technologies.
At the end of the course the students will be able: to understand basic notions of computability and complexity; to understand the main techniques used to classify problems (reductions, diagonalisation, closure properties) and to apply them in some simple cases.  Learning outcomes:
After enrolling the course student will be able to:
 use asymptotic notation, both actively and passively;
 explain difference between complexity of an algorith and of a problem.;
 independently decid to which complexity class given problem belongs;
 do practical decisions based on a complexity classification of a paticular problem;
 explain that some problems are not computable, give examples of such problems;
 explain the difference between various classes of notcomputable problems;  Syllabus:
Algorithms and models of computation.
Church thesis.
Classification of problems. Decidable, undecidable and partially decidable problems. Computable functions.
Closure properties. Rice theorems.
Computational complexity. Feasible and unfeasible problems. Polynomial computational thesis.
Reduction a completeness in problem classes. Manyone reduction and polynomial reduction. Complete problems with respect to decidability, NPcomplete problems. Applications.
IB109 Design and Implementation of Parallel Systems
zk 2/0 2 kr., jaro
 prof. RNDr. Jiří Barnat, Ph.D.
 Goals: The goal of this course is to introduce to students the principles of design and implementation of parallel systems and get them acquainted with the programmer's means for their development.
 Learning outcomes: On successful completion, students should understand the principles of design and implementation of parallel algorithms and should have limited experience with programmer's means for their development. In particular, students should be able to design and implement their own parallel applications, they should know how to use selected libraries supporting the development of parallel applications, and should be able to explain what is behind the API calls to such libraries.
 Syllabus: Motivation for parallel computing. Parallel algorithm design  decomposition and communication. Analyzes of parallel algorithms. Parallel algorithms in sharedmemory.OpenMP, Intel TBB. POSIX Threads. Lockfree algorithmics. Parallel algorithms in distributedmemory. Message Passing Interface (MPI). Examples of parallel graph algorithms. Parallel algorithms for manycore platforms.
IB110 Introduction to Informatics
zk 2/2 3 kr., podzim
 prof. RNDr. Ivana Černá, CSc.
 Prerequisities:
! IB102 && ! IB005
none  Goals: The main objectives of the course is to acquaint students with the concepts, ideas, methods, and results fundamental to computer science. It is not specifically about computer technology, nor is it about computer programming. At the end of the course students should understand basics of theoretical computer science, algorithmics, and computational complexity.
 Learning outcomes:
After enrolling the course students are able:
 understandt the concept of algorithms,
 explain the Church  Turing hypothesis and the formal definition of the algorithm as a Turing machine,
 design simple finite automaton and Turing machine,
 explain the concept of nondeterminism,
 differentiate between recursive and nonrecursive problems,
 identify basic recursive and nonrecursive problems,
 explain the concept of computational complexity,
 identify basic polynomially solvable and hard problems.  Syllabus: Algorithmic problem and the algorithm that solves it. The structure of algorithms, the data they manipulate, their correctness and efficiency (mainly time efficiency). Inherent limitations of effectively executable algorithms, inefficiency and intractability. Complexity classes, the P vs NP problem. Noncomputability and undecidability.
IB110 Introduction to Informatics
zk 2/2 3 kr., jaro
 RNDr. Petr Novotný, Ph.D.
 Prerequisities:
! IB102 && ! IB005
none  Goals: The main objectives of the course is to acquaint students with the concepts, ideas, methods, and results fundamental to computer science. It is not specifically about computer technology, nor is it about computer programming. At the end of the course students should understand basics of theoretical computer science, algorithmics, and computational complexity.
 Learning outcomes:
After enrolling the course students are able:
 understandt the concept of algorithms,
 explain the Church  Turing hypothesis and the formal definition of the algorithm as a Turing machine,
 design simple finite automaton and Turing machine,
 explain the concept of nondeterminism,
 differentiate between recursive and nonrecursive problems,
 identify basic recursive and nonrecursive problems,
 explain the concept of computational complexity,
 identify basic polynomially solvable and hard problems.  Syllabus: Algorithmic problem and the algorithm that solves it. The structure of algorithms, the data they manipulate, their correctness and efficiency (mainly time efficiency). Inherent limitations of effectively executable algorithms, inefficiency and intractability. Complexity classes, the P vs NP problem. Noncomputability and undecidability.
IB111 Foundations of Programming
zk 2/2 4 kr., podzim
 RNDr. Nikola Beneš, Ph.D.
 Prerequisities:
! IB113 && ! NOW ( IB113 )
 Goals: The course is an introduction to programming and algorithmic style of thinking.
 Learning outcomes: At the end of the course students should be able to: understand and apply basic constructs of programming languages (e.g., conditions, loops, functions, basic data types); write and debug a program in Python; use basic data types and structures (strings, lists, dictionaries); describe several basic algorithms; describe main conventions and recommended programming style.
 Syllabus:
Basic constructions of imperative programming languages: conditions, loops, data types, functions, input, output.
Number types, randomness, algorithms with numbers.
Data types, lists, dictionaries, objects.
Basic algorithms: prime numbers, sorting, searching. Complexity of algorithms (basics).
Recursion.
Turtle graphics, bitmap graphics, text processing.
IB113 Introduction to Programming and Algorithms
zk 2/2 4 kr., podzim
 doc. Mgr. Radek Pelánek, Ph.D.
 Prerequisities:
! NOW ( IB111 ) && ! IB111 && ! PB162 && ! PB161 && ! PB071 && ! IB001
 Goals: The course is an introduction to programming and algorithmic style of thinking. At the end of the course students should be able to: understand and apply basic constructs of programming languages (e.g., conditions, loops, functions, basic data types) and know several basic algorithms.
 Learning outcomes:
After finishing this course, a student should be able to:
 use basic tools of structured imperative programming languages (variables, conditions, loops, functions, record data types);
 write and debug a simple Python program and adhere to recommended principles of programming style;
 use basic data types and structures (strings, lists, dictionaries);
 explain several classical algorithms.  Syllabus:
Basic constructions of imperative programming languages: conditions, loops, data types, functions, input, output.
Number types, randomness, algorithms with numbers.
Data types, lists, dictionaries, objects.
Basic algorithms: prime numbers, sorting, searching. Complexity of algorithms (basics).
Turtle graphics, bitmap graphics, regular expressions, text processing.
IB114 Introduction to Programming and Algorithms II
zk 2/1 3 kr., jaro
 prof. RNDr. Ivana Černá, CSc.
 Prerequisities:
IB113 && ! IB002 && ! NOW ( IB002 )
This course is intended for noninformatics students. The others are recommended IB002 instead.  Goals: The course presents basic data structures and algorithms. Students should correctly apply the basic data structures and algorithms as well as apply the algorithm design and analysis techniques when designing new algorithms. Students implement their algorithms in programming language Python.
 Learning outcomes:
After enrolling the course students are able to:
 actively use basic sorting algorithms and graph algorithms,
 actively design simple algorithms,
 actively used basic static and dynamic data structures,
 employ time complexity and correctness of algorithms,
 implement algorithms in the selected programming language (Python).  Syllabus:
Basic analysis of algorithms.
The correctness of algorithms, input and output conditions, partial correctness, convergence, verification.
Length of computation, algorithm complexity, problem complexity. Asymptotical analysis of time and space complexity, growth of functions.
Fundamental data structures. Lists, queues. Representation of sets, hash tables. Binary heaps. Binary search trees.
Sorting algorithms. Quicksort, Mergesort, Heapsort.
Graphs and their representation. Graph search. Depthfirst traversal and Breadthfirst traversal, applications.
IA006 Selected topics on automata theory
zk 2/1 3 kr., podzim
 prof. RNDr. Mojmír Křetínský, CSc.
 Prerequisities: Knowlegde corresponding to the courses IB005  Formal languages and automata and IB107  Computability and complexity
 Goals: The main aim is to understand and explain selected advanced parts of automata theory, including parsing techniques for deterministic contexfree languages, relationship between finitestate automata and MSO logic, automata on infinite words, and process specifications. Further, students should be able to make reasoned decisions about computational models appropriate for the respective areas and to understand methods and techniques of their applications.
 Learning outcomes: At the end of the course students should be able to understand and explain selected advanced parts of automata theory, and to make reasoned decisions about computational models appropriate for the respective area and to understand methods and techniques of their applications.
 Syllabus:
Methods of syntactic analyses of detCFLs.
LL(k) grammars and languages, properties and analyzers.
LR(k) grammars and languages, properties and analyzers.
Relationships between LL, LR and detCFL.
Infinite=state transition systems and nondeterminism  bisimulation. Selected decidable problems related to process verification.
Finitestate automata and monadic secondorder logic
Automata and infinite words: infinite words, regular (rational) sets of infinite words.
Automata: deterministic and nondeterministic Buchi automata, Muller, Rabin, and Street automata. McNaughton theorem. Relationships.
IA008 Computational Logic
zk 2/2 3 kr., podzim
 Dr. rer. nat. Achim Blumensath  doc. RNDr. Lubomír Popelínský, Ph.D.
 Goals: At the end of the course students should be familiar with main research and applications in computational logic; They will be able to use automatic provers for propositional and predicate logic and also for its extensions; They will be familiar with, and able to use, methods for inductive inference in those logics;
 Learning outcomes: After successfully completing this course students should be familiar with several logics, including propositional logic, firstorder logic, and modal logic. They should be familiar with various proof calculi for these logics and be able to use such calculi to test formulae for satisfiability and or validity. In addition, they should have basic knowledge about automatic theorem provers and they way these work.
 Syllabus:
Resolution for propositional logic.
Resolution for firstorder logic.
Prolog.
Fundamentals of database theory.
Tableaux proofs for firstoder logic.
Natural deduction.
Induction.
Modal logic.
Manyvalued logics.
IA010 Principles of Programming Languages
zk 2/0 2 kr., jaro
 Dr. rer. nat. Achim Blumensath
 Prerequisities: Knowledge of at least one imperative (C/C++/Java) and one functional language. Knowledge of additional programming languages is an advantage.
 Goals:
By the end of the course, the student will be able:
to choose a programming language (programming paradigm) suitable for a given problem domain;
to analyze both strong and weak aspects of a given programming language;
to quickly obtain an indepth understanding of a new programming language;  Learning outcomes: After sucessfully completing this course students will be familiar with the most common features of programming languages. They will know how these features are used. They will be able to discuss what features can be used to solve a given programming problem and the advantages and disadvantages of the various options.
 Syllabus:
Brief history of programming languages.
Names, bindings, scopes. Block structure. Representing object in memory.
Primitive and composite types. Typechecking. Lists. Pointers and references. Type derivation.
Control flow: expressions, statements, control structures.
Subprograms: local definitions, parameter passing, overloaded and generic functions. Coroutines.
Exceptions: basic concepts, case studies(Ada, C++, Java), exceptions in functional programming languages. Events.
Abstract data types: basic concepts, encapsulation, case studies (Ada, C++). Parameterized ADT, generics. Namespaces.
Object oriented programming: principles, inheritance, dynamic binding, case studies (Smallatlk, C++, Java).
Concurrency: basic concepts, mutual exclusion mechanisms (semaphores, monitors, message passing), case studies (Ada, Java). Concurrency in functional languages.
Functional programming: typical features of functional languages, LISP, case study (Scheme). Evaluation strategies, modern functional languages, functional features in other languages.
IA011 Programming Language Semantics
zk 2/1 3 kr., jaro
 prof. RNDr. Antonín Kučera, Ph.D.
 Prerequisities: Students should be familiar with basic notions of set theory and formal logic (validity and provability, correctness and completeness of deductive systems, etc.)
 Goals: An introduction to the theory of formal semantics of programming languages (operational, denotational, and axiomatic semantics).
 Learning outcomes:
After graduation, student will:
understand basic types of formal semantics of programming languages;
be able to reason about properties of programs using formal semantics;
understand basic notions of temporal logics.  Syllabus:
Formal semantics of programming languages, basic paradigms
(operational, denotational, and axiomatic approach).
Structural operational semantics and its variants (smallstep and bigstep semantics).
Denotational semantics. Complete partial orders, continuous functions. The fixedpoint theorem and its applications, semantics of recursion. Equivalence of operational and denotational semantics.
Axiomatic semantics. Hoare's deductive system, its correctness and completeness.
Temporal logics; the semantics of nonterminating and parallel programs.
IA014 Advanced Functional Programming
zk 2/0 2 kr., jaro
 doc. Mgr. Jan Obdržálek, PhD.
 Prerequisities: Previous experience with functional programming, at least to the extent covered by the course IB015  Nonimperative programming.
 Goals: Introduce the underlying theory of functional programming. Show some of the modern advanced functional programming concepts (monads, monad transformers, GADTs, dependent types...).
 Learning outcomes:
By the end of the course, students will:
understand the theoretical foundations of functional programming, e, g, lambda calculi and type theory;
understand and be able to efficiently use modern/advanced concepts of functional programming languages (e.g. typeclasses, monads, monad transformers...);
know the limits of the functional programming paradigm;
be able to evaluate and use FPbased concepts in modern mainstream (nonFP) languages  Syllabus:
History of functional programming languages.
Untyped lambda calculus.
Simply typed lambda calculus.
Polymorphism add type inference (HindleyMilner, System F)
Type classes.
Functors, Applicatives.
Monads.
Monad tranformers.
GADTs  Generalized Algebraic Data Types
Dependent types.
IO and Concurrency.
IA023 Petri Nets
zk 2/0 2 kr., jaro
 prof. RNDr. Antonín Kučera, Ph.D.
 Prerequisities: Students should be familiar with basic notions of computability, complexity, and automata theory.
 Goals: An introduction to Petri nets; the course covers both "classical" results (about boundedness, liveness, reachability, coverability, etc.) and "modern" results (the (un)decidability of equivalencechecking and modelchecking, etc.)
 Learning outcomes: At the end of the course, students should be able to: understand the language of Petri nets; model various classes of systems using Petri nets; apply specific analytical techniques developed for Petri nets; prove properties of discrete systems using Petri nets and appropriate specification formalisms.
 Syllabus:
The theory of Petri nets provides a formal basis for modelling,
design, simulation and analysis of complex distributed
(concurrent, parallel) systems, which found its way to
many applications in the area of computer software, communication protocols, flexible manufacturing systems, software engineering, etc.
Principles of modelling with Petri nets.
Classical results for place/transition nets. Boundedness, coverability, KarpMiler tree, weak Petri computer; reachability and liveness.
(Un)decidability of equivalencechecking and modelchecking with place/transition nets.
Ssystems, Tsystems. Reachability, liveness, Sinvariants, Tinvariants.
Freechoice Petri nets. Liveness, Commoner's theorem.
IA040 Modal and Temporal Logics for Processes
zk 2/0 2 kr., podzim
 prof. RNDr. Luboš Brim, CSc.
 Prerequisities: Recommended: IV010 Communication and Parallelism
 Goals:
The aim is to acquire basic knowledge and develop skills in the use of modal and temporal logics for specification, analysis and verification of computer systems.
By the end of the semester, students should be able:
to understand definitions of the logics and logical systems presented in the course, the ideas of the proofs;
to understand the differences in the logics, and their capabilities and limitations;
to understand the utility, potential and limitations of formal verification, in particular model checking, for lineartime and branchingtime logics.  Learning outcomes: By the end of the semester, students should be able: • to understand and apply definitions of the logics and logical systems presented in the course, the ideas of the proofs; • to understand the differences in the logics, and their capabilities and limitations; • to understand the utility, potential and limitations of formal verification, in particular model checking, for lineartime and branchingtime logics.
 Syllabus:
Modal logics: propositional modal logic, modal mucalculus.
Temporal logics: propositional temporal logic, linear and branching time, temporal operators.
Classification of properties, liveness, safety, local and global properties.
Model checking, applications.
IA041 Concurrency Theory
k 0/2 2 kr., jaro
 prof. RNDr. Mojmír Křetínský, CSc.
 Prerequisities:
IA006
Knowlegde corresponding to the courses IA006  Automata IB107  Computability and complexity  Goals: Students should study, understand, present and to work with the basic concepts and techniques used for modelling, analysis and verification of concurrent processes.
 Learning outcomes:
At the end of the course students should be able:
to understand and to work with the basic techniques used for modelling, analysis and verification of concurrent processes;
to make deductions based on acquired knowledge on actual topics and results of concurrent processes and their formal verification.  Syllabus:
Processes, labelled transition systems and their (finite) specifications.
Operational semantics. Caucal a Mayr hierarchies.
Selected sematic equivalencies (and preorders) for processes and their relationships (linear time  branching time spectrum).
Boundaries of algorithmic verification (equivalence checking)  undecidability, decidability and complexity of some semantic equivalencies on selected classes of infinite state processes.
IA062 Randomized Algorithms and Computations
zk 2/2 3 kr., jaro
 prof. RNDr. Jozef Gruska, DrSc.
 Prerequisities: No special requiremnts are neede.
 Goals: The aim: randomized algorithms and methods are becoming one of the key tools for an effective solution of a variety of problems in informatics and its aplications practically in all theoretical and aplication areas.
 Learning outcomes: After finishing the lecture student will be able: To manage basic techniques to design randomized algorithms; to understand differences concerning power of deterministic and randomized algorithms; to manage basic tools for analysis of randomized algorithms; to work with tail inequalities; to understand power and use of the probabilistic method; to understand power of random walks; to understand power of randomized proofs; to understand basic principles of randomized cryptographic protocols.
 Syllabus:
Randomized algorithms and methods.
Examples of randomized algorithms.
Methods of game theory.
Main types of randomized algorithms.
Randomized complexity classes.
Chernoff's bounds.
Moments and deviations.
Probabilistic methods.
Markov chains and random walks.
Algebraic methods.
Aplications:
Linear programming.
Parallel and distributed algoritms.
Randomization in cryptography.
Randomized methods in theory of numbers.
IA066 Introduction to Quantum Computing
zk 2/0 2 kr., podzim
 prof. RNDr. Jozef Gruska, DrSc.
 Prerequisities:
MB003 && ( IB005  IB102 )
linear algebra, automata and languages, no quantum physics is necessary  Goals: Quantum computing in particular and quantum information processing in general are one of the hotest subjects in science in general and in informatics in particular. The goal of this introductory course is to present basic aims, concepts, methods and result in this fascinating area.
 Learning outcomes: After completing the course student will be able: to understand principles of the design of quantum algorithms; to understand basic ideas of Shor's and Grover's algorithms; to design simple quantum circuits; to understand recognition power of several quantum automata; to understand basic principles of quantum cryptography; to design quantum errorcorrecting codes.
 Syllabus:
Motivácie, historia, základné kvantové experimenty,
ohraničenia a paradoxy kvantového spracovania informácie
Hilbertové priestory, kvantové bity, registre, hradla a obvody
kvantové výpočtové primitíva
kvantové entanglovanie a nelokálnost
jednoduché kvantové algoritmy, Shorove kvantové algoritmy, algoritmus Grovera a jeho aplikácie
kvantové konečné automaty
kvantové samoopravujúce kody a kvantové faulttolerantné hradla.
kvantová krzptografia
vesmír ako kvantový systém
IA067 Informatics Colloquium
z 1/0 1 kr., podzim
 prof. RNDr. Jozef Gruska, DrSc.
 Goals: The aim of the colloquium is to present new directions, methods and results in informatics, broadly understood. Talks will cover all areas of informatics and related areas and will be given by wellknown specialists, especially outside of Brno and from abroad.
 Learning outcomes: After finishing the course students will have updated information about recent research provided by faculties and also by specialists from other academic instituition, also from abroad. For each presented area student will be able to decide whether its techniques can be used to solve a particular theoretical or application problem.
 Syllabus: The aim of the colloquium is to present new directions, methods and results in informatics, broadly understood. Talks will cover all areas of informatics and related areas and will be given by wellknown specialists, especially outside of Brno and from abroad.
IA067 Informatics Colloquium
z 1/0 1 kr., jaro
 prof. RNDr. Jozef Gruska, DrSc.
 Goals: The aim of the colloquium is to present new directions, methods and results in informatics, broadly understood. Talks will cover all areas of informatics and related areas and will be given by wellknown specialists, especially outside of Brno and from abroad.
 Learning outcomes: After finishing the course students will have updated information about recent research provided by faculties and also by specialists from other academic instituition, also from abroad. For each presented area student will be able to decide whether its techniques can be used to solve a particular theoretical or application problem.
 Syllabus: The aim of the colloquium is to present new directions, methods and results in informatics, broadly understood. Talks will cover all areas of informatics and related areas and will be given by wellknown specialists, especially outside of Brno and from abroad.
IA072 Seminar on Verification
z 0/2 2 kr., podzim
 doc. RNDr. Jan Strejček, Ph.D.
 Prerequisities:
souhlas
for postgraduate students; undergraduate students may ask for an exception, especially if they successfully passed IA040 Modal and Temporal Logics for Processes and IA041 Concurrency Theory and want to work in the area of concurrent processes, formal verification, or program analysis.  Goals:
At the end of the course students should be able to:
understand a theoretical scientific text;
make a presentation that explains main ideas of such a text;
apply information on current topics (and results) of concurrency and formal verification research areas in an eventual original research;  Learning outcomes:
At the end of the course students should be able to:
understand a theoretical scientific text;
make a presentation that explains main ideas of such a text;
apply information on current topics (and results) of concurrency and formal verification research areas in an eventual original research;  Syllabus:
Presentations of (preferably original) results from the following areas:
Process algebras and their specifications.
Infinite state systems and their hierachies.
Semantic equivalences and preorders.
Decidability and complexity of verification problems.
Analysis, validation, and verification of software.
IA072 Seminar on Verification
z 0/2 2 kr., jaro
 doc. RNDr. Jan Strejček, Ph.D.
 Prerequisities:
souhlas
for postgraduate students; undergraduate students may ask for an exception, especially if they successfully passed IA040 Modal and Temporal Logics for Processes and IA041 Concurrency Theory and want to work in the area of concurrent processes, formal verification, or program analysis.  Goals:
At the end of the course students should be able to:
understand a theoretical scientific text;
make a presentation that explains main ideas of such a text;
apply information on current topics (and results) of concurrency and formal verification research areas in an eventual original research;  Learning outcomes:
At the end of the course students should be able to:
understand a theoretical scientific text;
make a presentation that explains main ideas of such a text;
apply information on current topics (and results) of concurrency and formal verification research areas in an eventual original research;  Syllabus:
Presentations of (preferably original) results from the following areas:
Process algebras and their specifications.
Infinite state systems and their hierachies.
Semantic equivalences and preorders.
Decidability and complexity of verification problems.
Analysis, validation, and verification of software.
IA073 GEB  limits of formal systems
k 2/0 2 kr., podzim
 RNDr. Nikola Beneš, Ph.D.  prof. RNDr. Luboš Brim, CSc.  prof. RNDr. Ivana Černá, CSc.
 Prerequisities:
souhlas
working knowledge of english  Goals: The aim of the seminar is to deepen the understaning of limits of formal computation systems. To that end the book "Gödel, Escher, Bach: An Eternal Golden Braid" by D. Hofstadter is "read" and discussed.
 Learning outcomes: At the end students will have deeper understaning of limits of formal computation systems.
 Syllabus:
The seminar is based on the book "Gödel, Escher, Bach: An
Eternal Golden Braid" by D. Hofstadter. Each seminar will cover a
particular theme, will be directed by one of the participants. Directing a
seminar involves presenting a 3040 minunte introduction to the topic, and
directing the subsequent discussion. The number of participants is limited. There are no formal prerequisites.
Syllabus: Logic and set theory; selfreference and paradoxes; formal systems and metamathematical reasoning; truth, proof, and meaning; consistency and completeness; mechanical vs human reasoning; natural vs artificial intelligence; selfreproduction.
IA077 Advanced Quantum Information Processing
zk 2/0 2 kr., jaro
 prof. RNDr. Jozef Gruska, DrSc.
 Prerequisities:
IA066
Prerequisities: course IA066 Introduction to quantum computing or agreement with the lecturer  Goals: To present advanced basic concepts of quantum information processing to such an extend that participants could get involved in research in this area. Lecture should be of interest and importance especially to those with a deeper interest in quantum information processing: projects, diploma thesis, doctarate study.
 Learning outcomes: Understanding and ability to use basic terms such as entropy, quantum canals. Understanding and ability to explain fundaments of quantum entangling.
 Syllabus:
Mixed states and density matrices, quantum operations and
their representations, projective and POVM measurements and their
applications
quantum information theory  entropies, quantum channel capacities
quantum entanglement and multipartite quantum entanglement (structure, measures, sharing laws and limitations), quantum error correction and faulttolerant systems
quantum nonlocality
new paradigms in quantum information processing.
IA080 Seminar on Knowledge Discovery
k 0/2 2 kr., jaro
 doc. RNDr. Lubomír Popelínský, Ph.D.
 Goals: At the end of the course students should be able to build and evaluate advanced machine learning systems and to understand scientific works in the area of machine learning and data science and use it in their work. They will be able to evaluate contributions of such research studies.
 Learning outcomes:
A student will be able
 to understand research papers from machine learning and data mining;
 of critical reading of such papers;
 to prepare and present a lecture on advanced methods of data science.  Syllabus: The seminar is focused on machine learning and theory and practice of knowledge discovery in various data sources. Program of the seminar contains also contributions of teachers and PhD. students of the Knowldge Discovery Laboratory, as well as other laboratories, on advanced topics of knowledge discovery.
IA081 Lambda calculus
zk 2/0 2 kr., jaro
 prof. RNDr. Jiří Zlatuška, CSc.
 Goals: The goal is to introduce lambdacalculus to students and to demonstrate expressive power of lambdacaluclus on a couple of general computation concepts.
 Learning outcomes: At the end of this cource, students shall learnd and understand basic techniques and results of the theory of sequential functions as described by the lambdacalculus and combinatoru logic; will understand the basics of the typed and untyped version of the formalism; shall learn basic elements of model construction for of lambdacalulus; shall be able to employ recursive constructs used in programming as well in the corresponding semantics constructs; will be abble to use it as a reference formalism useful for variaous applications.
 Syllabus:
Pure lambdacalculus: lambdaterms, structure of terms,
equational theories.
Reductions: oneway transformations, general reductions, betareduction.
Lambdacalculus and computations: coding, recursive definitions, lambdacomputability, fixedpoint combinators, undecidable properties.
Modification of the theory: combinatory logic, extensionality, etareduction.
Typed lambdacalculus: types and terms, normal forms, set models, strong normalization, types as formulae.
Domain models: complete partial orders, domains, least fixed points, partiality.
Domain construction: compound domains, recursive domain construction, limit domains.
IA082 Physical concepts of quantum information processing
zk 2/0 2 kr., jaro
 doc. Mgr. Mário Ziman, Ph.D.
 Prerequisities:
PV275  SOUHLAS
 Goals: Introduction to quantum physics and quantum information theory.
 Learning outcomes:
After this course students should:
understand basic principles of quantum physics;
apply the learned concepts in the subsequent study of quantum information theory;
selfstudy quantum theory books.  Syllabus:
1. Security and computation with photons
 photon's polarization and polarizers, Vernam cipher, quantum key "distribution" protocol B92, polarizing beamsplitter, √NOT logic gate,
2. Quantum interference and superposition  MachZender interferometer, concept of quantum state, quantum probabilities and amplitudes, Hilbert space and operators,
3. Measuring quantum properties  description of quantum measurement devices (POVM), tomography of polarization, uncertainty relations, no information without disturbance
4. Hydrogen atom  emission spectrum, Bohr's model, position and momentum, quantum solution, Zeeman effects, spin of electron,
5. Schrodinger equation  time and evolution, unitary operators, energy conservation and system's Hamiltonian,
6. Quantum bit  twolevel quantum system (polarization and spin1/2), SternGerlach experiments, Bloch sphere, orthogonality and information, nocloning theorem, quantum NOT gate, qubit implementations
7. Quantum sources and randomness  mixed states, quantum commpression, von Neumann entropy, capacity of noiseless quantum channel, randomness sources, minentropy
8. EinsteinPodolskiRosen paradox  composite quantum systems, tensor product, quantum steering, EPR paradox, local hidden variable model, CHSH inequalities, experiments and loopholes
9. Quantum onetime pad protocols  onetime pad, superdense coding and teleportation
10. Quantum entanglement  correlated and separable states, definition of entanglement, entanglement distilation,
11. Quantum cryptography  QKD protocols BB84, E91, noquantum bit commitment theorem, quantum secret sharing protocols,
12. Elementary particles  fermions and bosons and tensor products, standard model, Higg's boson
IA101 Algorithmics for Hard Problems
zk 2/0 2 kr., podzim
 prof. RNDr. Ivana Černá, CSc.
 Prerequisities: Experience with basic techniques for design and analysis of algorithms (recursion, dynamic programming, greedy approach) as well as with basic data structures and algorithms are required.
 Goals: The course expands on courses IB002 Algorithms and Data Structures I and IV003 Algorithms and Data Structures II. It focuses on design of algorithms for hard computing tasks. The course systematically explains, combines, and compares the main possibilities for attacking hard algorithmic problems like randomization, heuristics, approximation and local search.
 Learning outcomes:
After enrolling the course students are able to :
 identify algorithmically hard problems,
 identify applications where pseudopolynomial, approximative, randomized, and heuristic algorithms can be succesfully used,
 actively used published pseudopolynomial, approximative, and randomized algorithms and correctly interpret their outcomes,
 design simple pseudopolynomial, approximative, and randomized, algorithms,
 experimentally evaluate heuristic algorithms.  Syllabus:
Deterministic approaches: pseudopolynomialtime algorithms,
parametrized complexity, branchandbound, lowering worst case
complexity of exponential algorithms.
Approximation approaches: concept of approximation algorithms, classification of optimization problems, stability of approximation, inapproximability, algorithms design. Linear programming as a method for construction of approximative algorithms.
Randomized approaches: classification of randomized algorithms and design paradigms, design of randomized algorithms, derandomization, randomization and approximation.
Heuristics: local search, simulated annealing, genetic algorithms.
IA158 Real Time Systems
zk 2/0 2 kr., jaro
 doc. RNDr. Tomáš Brázdil, Ph.D.
 Goals: At the end of the course students should: know specific aspects of realtime systems; understand main problems of the design of realtime systems and know some solutions; be able to use formal reasoning about realtime systems.
 Learning outcomes: At the end of the course student will have a comprehensive knowledge of real time systems and related areas. Will be able to distinguish basic types of realtime systems. Will be aware of typical design errors in realtime and embedded systems and their standard solutions. Will understand fundamental realtime scheduling and resource management algorithms. Will have a basic knowledge of implementation details of these algorithms in standard programming environments.
 Syllabus:
Realtime aspects of embedded systems; examples of realtime systems. Soft and hard realtime systems.
Realtime scheduling: periodic and aperiodic tasks, prioritydriven scheduling, resource access control.
Basic information about realtime operating systems and programming.
IA159 Formal Verification Methods
zk 2/0 2 kr., jaro
 doc. RNDr. Jan Strejček, Ph.D.
 Prerequisities:
IV113  IA169
 Goals:
At the end of this course, students should understand and be able to explain principles, advantages, and disadvantages of selected methods from the area of formal verification, namely model checking methods, abstraction, static analysis via abstract interpretation, and shape analysis;
make reasoned decisions about suitability of various methods for verification of specific systems;  Learning outcomes:
At the end of this course, students should understand and be able to explain principles, advantages, and disadvantages of selected methods from the area of formal verification, namely model checking methods, abstraction, static analysis via abstract interpretation, and shape analysis;
make reasoned decisions about suitability of various methods for verification of specific systems;  Syllabus:
Overview of formal verification methods.
LTL model checking of finite and infinitestate systems including translation of LTL to Büchi automata and partial order reduction.
Abstraction.
Counterexampleguided abstraction refinement.
Static analysis, abstract interpretation.
Shape analysis.
Software verification via automata, symbolic execution, and interpolation.
IA161 Advanced Techniques of Natural Language Processing
k 1/1 2 kr., podzim
 doc. RNDr. Aleš Horák, Ph.D.  Mgr. et Mgr. Vít Baisa, Ph.D.  RNDr. Miloš Jakubíček, Ph.D.  RNDr. Vojtěch Kovář, Ph.D.  RNDr. Jiří Materna, Ph.D.  RNDr. Marek Medveď  RNDr. Zuzana Nevěřilová, Ph.D.  RNDr. Adam Rambousek, Ph.D.  RNDr. Vít Suchomel
 Prerequisities: All students should have basic practical knowledge of programming in Python. Overview knowledge of the natural language processing field at the level of introductory courses such as IB030 Introduction to Computational Linguistics or PA153 Natural Language Processing is expected.
 Goals: The course participants will have the opportunity to learn about, test and experiment with advanced techniques of natural language processing (NLP) and to develop an understanding of the limits of those techniques. The course aims to introduce current research issues, and to meet in practice with particular programming techniques used in language technology applications.
 Learning outcomes:
After studying the course, the students will be able to:
 explain a selected NLP problem and list its main aspects;
 implement a basic or intermediate application for complex tasks in language processing, typically for Czech, Slovak, or English;
 create data resources (models, test sets) for a selected NLP problem and evaluate their assets;
 compare selected available tools for complex NLP tasks and apply them to chosen data resources with possible adaptations to particular purposes.  Syllabus:
The presented NLP problems will concentrate on practical problems connected with processing humanproduced textual data. Particular topics include:
 Opinion mining, sentiment analysis
 Machine translation
 Parsing of Czech: Between Rules and Statistics
 Named Entity Recognition
 Building Language Resources from the Web (effective crawling, boilerplate removal, tokenisation, near duplicates identification)
 Language modelling
 Topic identification, topic modelling
 Extracting structured information from text
 Automatic relation extraction (hypernyms, synonyms, ...)
 Adaptive electronic dictionaries
 Terminology identification (keywords, key phrases)
 Anaphora resolution
 Stylometry
 Automatic language corrections
IA168 Algorithmic game theory
zk 2/0 2 kr., podzim
 doc. RNDr. Tomáš Brázdil, Ph.D.
 Prerequisities: basic linear algebra, basic probability theory (mostly discrete probability), elementary complexity theory, some calculus
 Goals: In recent years, huge amount of research has been done at the borderline between game theory and computer science, largely motivated by the emergence of the Internet. The aim of the course is to provide students with basic knowledge of fundamental game theoretic notions and results relevant to applications in computer science. The course will cover classical topics, such as general equilibrium theory and mechanism design, together with modern applications to network routing, scheduling, online auctions etc. We will mostly concentrate on computational aspects of game theory such as complexity of computing equilibria and connections with machine learning.
 Learning outcomes: Student knows the basics types of models of games and algorithms for searching winning strategies.
 Syllabus:
Basic definitions: Games in normal form, dominant strategies, Nash
equilibria in pure and mixed strategies, existence of Nash equilibria, basic examples
Computing Nash equilibria: LemkeHowson algorithm, support enumeration, sampling methods, PPADcompleteness of Nash equilibria,
Quantifying the inefficiency of equilibria and related games: Congestion and potential games, price of anarchy and price of stability, routing games, network formation games, load balancing games
Learning in games: Regret minimization algorithms, correlated equilibria and connection to learning in games, regret minimization in routing games
Auctions and mechanism design: First price auctions, Vickrey auctions, truthfulness, VickreyClarkGroves mechanism, Bayesian games, Bayesian Nash equilibria, formal framework for mechanism design, revelation principle, auctions on Google
Games with multiple moves: Games in extensive form, games on graphs, Markov decision processes, stochastic games
IA169 System Verification and Assurance
zk 2/0 4 kr., podzim
 prof. RNDr. Jiří Barnat, Ph.D.  doc. RNDr. Vojtěch Řehák, Ph.D.  prof. RNDr. Václav Matyáš, M.Sc., Ph.D.
 Prerequisities:
(! IV113 ) && (! NOW ( IV113 ))
Userlevel familiarity with Unix/Linux operating system. Basics of C programming. Basic astract math reasoning.  Goals: The student will understand the necessary theoretic background as well as acquire handson experience with relevant tools for bug finding and formal verification techniques. With the help of a tutor students will get acquainted with a number of concrete software verification tools for analysis of concurrent systems, realtime systems, hybrid systems, cryptographic systems and systems with probabilities.
 Learning outcomes:
Students will:
be aware of fundaments of blackbox testing;
understand priciples of deductive verification;
understand the theory and application of model checking;
have handon experince with a couple of verification tools.  Syllabus: This course will provide the necessary theoretic background as well as handson experience with relevant tools for bug finding and formal verification techniques. An introductory insight into security standards like Common Criteria for Information Technology Security Evaluation and FIPS 140 shall be provided first, together with a discussion of security threat models. Following this, the core topics of this course will include testing, simulations, advance testing and symbolic execution, abstract interpretation, static analysis, theorem proving, automated formal verification as well as an introduction to modelbased verification. With the help of a tutor students will get acquainted with a number of concrete software verification tools for analysis of concurrent systems, realtime systems, hybrid systems, cryptographic systems and systems with probabilities.
IV003 Algorithms and Data Structures II
zk 2/2 3 kr., jaro
 prof. RNDr. Ivana Černá, CSc.
 Prerequisities:
( IB002  program ( PřF:N  MA )) && ! IB108
The course expands on courses IB002 Algorithms and Data Structures I.  Goals: The course expands on the introductory course Algortihm Design I. It presents algorithmic concepts without their direct connection to any particular programming language. The aim is to introduce students into design and analysis of advanced algorithms. The course presents advanced techniques of algorithm analysis and a wide spectrum of strategies together with algorithms built up on these strategies. Students are introduced into new data structures which are displayed in a row with algorithms based on them.
 Learning outcomes:
After enrolling the course students are able to:
 actively use and modify advanced graph and string algorithms,
 actively used advanced techniques for designing algorithms (dynamic programming, greedy techniques) for designing algorithms, expain their specific properties and limits,
 actively used and modify advanced dynamic data structures and use them for designing effective algorithsm,
 analyze time complexity and prove correctness of algorithms.  Syllabus:
Advanced design and analysis techniques: dynamic programming, greedy strategies,backtracking. Amortized analysis.
Advanced data structures: binomial and Fibonacci heaps, data structures for disjoint sets.
Graph algorithms: SingleSource Shortest Paths (The BellmanFord algorithm). AllPairs Shortest Paths (Shortest paths and matrix multiplication, The FloydWarshall algorithm, Johnson's algorithm for sparse graphs). Maximum Flow (The FordFulkerson method, The PushRelabel method). Maximum bipartite matching.
String matching: the naive stringmatching algorithm, KarpRabin algorithm, string matching with finite automata. The KnuthMorrisPratt algorithm.
IV010 Communication and Parallelism
zk 2/0 2 kr., jaro
 prof. RNDr. Luboš Brim, CSc.
 Goals:
The goal is to acquire basic skills that are used for formal specification and analysis of communicating systems, including the theoretical background.
By the end of the course the students should be able: to develop simple specifications and implementations of communicating systems in CCS, to check formally their equivalence and to understand various kinds of process equivalences and their limitations.  Learning outcomes: By the end of the course the students should be able: to develop simple specifications and implementations of communicating systems in CCS, to check formally their equivalence and to understand various kinds of process equivalences and their limitations.
 Syllabus:
Introduction, overview of models for concurrent systems. Modelling
communication, examples of communicating systems.
Language of CCS: synchronization, actions and transitions, internal communication, semantics of CCS.
CCS with value passing and its translation into pure CCS.
Equational laws and their applications: classification of combinators, expansion theorem, dynamic and static laws.
Bisimulation and equivalence: Strong bisimulation, weak bisimulation, weak congruence, basic properties, solving equations, other equivalences, finite state processes.
Temporal properties of processes.
IV022 Design and verification of algorithms
zk 2/0 2 kr., jaro
 prof. RNDr. Luboš Brim, CSc.
 Goals: The goal is to get acquaint with methods for design and verification of small sequential algorithms. The students acquire basic verification techniques.
 Learning outcomes: By the end of the semester, students should be able to develop small sequential algorithms and prove their correctness.
 Syllabus:
Programs as predicate transformers, weakest precondition, properties of
predicate transformers, program correctness.
Garded command language. Skip and abort commands, composition, alternative command, iterative command.
Verification of programs, proof outlines, verification rules for sequential composition, alternative, and loop commands. Array manipulation.
Constructive verification of programs, basic principles and strategies, developing loops from invariants and bounds, developing invarinats.
Examples of program development. Deriving of efficient algorithms, Searching and sorting.
IV029 Introduction to Transparent Intensional Logic
zk 2/0 2 kr., podzim
 prof. RNDr. Marie Duží, CSc.
 Prerequisities: Foundations of the firstorder predicate logic
 Goals:
Students enrolled in the course will obtain knowledge on a rather new discipline Logical semantics and knowledge representation that belongs to the fundamentals of artificial intelligence.
Adequate analysis of the meaning of natural language expressions consists in discovering algorithmically structured procedure known as TIL construction encoded by the expression. The analysis should be as finegrained as possible so that the inference machine is neither overinferring nor underinferring. At the same time it is necessary to formalize the results of an analysis so that they are computationally tractable.  Learning outcomes: The students will learn to solve relevant problems in such a way that undesirable paradoxes and inconsistencies are avoided. The formalized analysis can be used in knowledgebase systems of artificial intelligence, in automatic translation, in multiagent systems, etc.
 Syllabus:
Deductive reasoning as the subject of logic
Paradoxes stemming from a coarsegrained analysis of premises
FregeChurch semantic schema; denotational vs. procedural semantics
Transparent Intensional Logic; constructions as procedures
Simple theory of types comprising nonprocedural objects; epistemic base; intensions and extensions
Ramified theory of types comprising procedural objects
Extensional, intensional and hyperintensional context
Extensional rules: Leibniz’s law and existential quantification into
The problem of nonexistence and modalities
Ontology as a logic of intensions; conceptual analysis
Logic of attitudes; hyperintensional knowledge representation
Dynamic reasoning and tense logics
Communication of agents in a multiagent system
IV054 Coding, Cryptography and Cryptographic Protocols
zk 2/1 5 kr., podzim
 prof. RNDr. Jozef Gruska, DrSc.
 Prerequisities: Basics of linear algebra and of the theory of numbers
 Goals: The lecture deals with the basic methods to solve three key problems of the transmission of information. All three problems are of large practical importance and their solutions are based on elegant theoretical results.
 Learning outcomes: On successful completion of the course students should be able to: understand problems of the theory of errorcorrecting codes; understand basic principles and results of the theory of secure communication; know principles and problems of basic cryptosystems for encryption (both secret and public key), digital signing and authentication; know methods to create core cryptographic protocols primitives; analyze and practically use simple cryptosystems; be experienced in methods of quantum cryptography and steganography
 Syllabus:
Coding theory and modern cryptography are rich on deep, elegant,
interesting and
practically very important ideas, methods, and systems. Main concepts
of modern cryptography are closely connected with fundamental concepts
of theoretical informatics. Current cryptography and its methods and
systems are of key importance for modern communication and information
systems. Basic knowledge of coding methods and of modern cryptography
are
necessary for each graduate of informatics.
Lecture will be rich also on examples and experiences from a very rich and interesting history of cryptography.
Basic concepts of coding theory
Linear codes
Cyclic and channel codes
Classical cryptography
Publickey cryptosystems, knapsack, RSA, public key exchange
Other cryptosystems and cryptographic primitives
Digital signatures
Elliptic curves in cryptography and integer factorization
Basic cryptographic protocols
Authentication, identification, secret sharing, ecommerce
Steganography and watermarking
From cryptotheory to cryptopractice
Quantum cryptographic protocols
Machines and history of cryptography
IV057 Seminar on Information Society
k 0/2 2 kr., podzim
 prof. RNDr. Jiří Zlatuška, CSc.
 Prerequisities: Students can only register for this course after presenting a twopage long (approx. 4kB) essay on their ideas concerning the notion of Information Society.
 Goals: At the end of the course, students should be able to understand better issues related to the information society, gain deeper insight into more specialized topics, and to develop their own ability to interpret technological and social issues related to the information society.
 Learning outcomes: Ability to think about impacts of IT on society.
 Syllabus:
Seminar focuses on some aspects of the Information Society.
A loose companion seminar to IV064 Information Society based on students work
with literature on this topic and talks by the students based
on the literature. Studets are required to work independently with relevant literature.
Information technologies and the society.
Information as a real value.
Economic and social impact.
Civilizational impacts of the Information Society.
Information technologies and democracy.
IV057 Seminar on Information Society
k 0/2 2 kr., jaro
 prof. RNDr. Jiří Zlatuška, CSc.
 Prerequisities: Students can only register for this course after presenting a twopage long (approx. 4kB) essay on their ideas concerning the notion of Information Society.
 Goals: At the end of the course, students should be able to understand better issues related to the information society, gain deeper insight into more specialized topics, and to develop their own ability to interpret technological and social issues related to the information society.
 Learning outcomes: Ability to think about impacts of IT on society.
 Syllabus:
Seminar focuses on some aspects of the Information Society.
A loose companion seminar to IV064 Information Society based on students work
with literature on this topic and talks by the students based
on the literature. Studets are required to work independently with relevant literature.
Information technologies and the society.
Information as a real value.
Economic and social impact.
Civilizational impacts of the Information Society.
Information technologies and democracy.
IV064 Information Society
zk 2/0 2 kr., podzim
 prof. RNDr. Jiří Zlatuška, CSc.
 Goals: The goal of this course is to introduce the nature of wider impacts of Informatics on the society.
 Learning outcomes: At the end of this course students will be able to understand and explain the nature of wider impacts of Informatics on the society; to use information about events characteristic for the impact of the information revolution; to draw parallels with the industrial revolution; to explain and characterize events and processes associated with the formation of information society; to better comprehend the role of the information and communication technologies in the society not only as technical tools, but also as a phenomenon enabling social processes transformation; to understand newly emerging organizational structures both in business and in egovernment resulting from intensification of the information processing; to understand the nature of innovative processes associated with informatics and to thing through the consequences of differencec from prevailing older paradigms; to grasp idea of the structure of policies assiciated with information society; to present thoughful analyses of nontechnical impacts of widespread availability and use of services based on information processing; to think through and creatively develop designs of new possible applications; to develop motivation for future theoretical or practical work in this area.
 Syllabus:
This course deals with the impact of Information Technologies on society,
with the nature of computer (information) revolution,
and the advent of an information society.
Informatics in historical perspective.
Computer revolution.
Productivity paradox.
The Internet and WWW.
Digital economy.
Network economy and virtual communities.
Organizational and company structure.
Organizational transformation.
Teleceoomunications and information infrastructure.
Legal aspects of an information society.
Ethical problems.
Riskc of computing technology.
Social impacts.
There is a seminar IV057 Seminar on Information Society accompanying this course for students interested in presenting uptodate material based on literature on an information society.
IV074 Laboratory of Parallel and Distributed Systems
z 0/0 2 kr., podzim
 prof. RNDr. Jiří Barnat, Ph.D.  prof. RNDr. Ivana Černá, CSc.
 Prerequisities:
souhlas
Applicants should 1) be able to work independently 2) have interest in longterm projects (several semesters) 3) have working knowledge of English 4) be able to work in a team. The enrollment must be approved by the laboratory head (J. Barnat).  Goals: The goal of this course is to let students participate on research activities.
 Learning outcomes: On successful completion of the course students  will have practical experience with active research  should be able to read and understand scientific papers  should be able to employ gathered information to formulate and prove their own hypotheses within the relevant context.
 Syllabus: Laboratory of Parallel and Distributed Systems (ParaDiSe) is a team project focused on the development of parallel methods and tools for the design and analysis of complex systems. Students meet regularly with senior researchers to discuss research problems related to their research topics.
IV074 Laboratory for Parallel and Distributed Systems
z 0/0 2 kr., jaro
 prof. RNDr. Jiří Barnat, Ph.D.  prof. RNDr. Ivana Černá, CSc.
 Prerequisities:
souhlas
Applicants should 1) be able to work independently 2) have interest in longterm projects (several semesters) 3) have working knowledge of English 4) be able to work in a team. The enrollment must be approved by the laboratory head (J. Barnat).  Goals: The goal of this course is to let students participate on research activities.
 Learning outcomes: On successful completion of the course students  will have practical experience with active research  should be able to read and understand scientific papers  should be able to employ gathered information to formulate and prove their own hypotheses within the relevant context.
 Syllabus: Laboratory of Parallel and Distributed Systems (ParaDiSe) is a team project focused on the development of parallel methods and tools for the design and analysis of complex systems. Students meet regularly with senior researchers to discuss research problems related to their research topics.
IV100 Parallel and distributed computations
zk 2/0 2 kr., podzim
 prof. RNDr. Ivana Černá, CSc.  prof. RNDr. Rastislav Královič, Ph.D.
 Prerequisities:
IB002
IB002 (Design of algorithms), required. PB152 (Operating systems) recommended.  Goals: The aim of the course is to introduce students into the field of distributed computation. It presents the basic concepts, problems and solutions. Algorithms for selected group of problems give the insight into the techniques used in the field and show how the various environments influence the quality and (un)solvability of the problem.
 Learning outcomes: Students will know particular algorithms for distributed routing, leader election and termination.
 Syllabus:
Distributed systems and distributed algorithms.
Communication protocols. Alternatingbit protocol, slidingwindow protocol.
Routing algorithms. Routing tables and algorithms for their constructions. FloydWarshallův algorithm, shortestpath algorithm.
Distributed mutual exclusion. Distributed election algorithms. Ring networks and a general topology. Impact of synchrony. Impact of sense of direction.
Termination detection. DijkstraScholten algorithm.
The problem of Byzantine generals and its (un)solvability in various environments.
IV105 Bionformatics seminar
k 0/1 1 kr., podzim
 Ing. Matej Lexa, Ph.D.
 Prerequisities: Those who sign up for this interdisciplinary course should be able to read and comprehend a scientific paper or book chapter written in English. Alternatively computational tools in bioinformatics will be studied. Deeper knowledge of algorithm design and programming will allow the particular student to focus more on the biological side of the studied problems or vice versa. Students of nonbiological fields should be concurrently enrolled in, or have previously passed IV107 Bioinformatics I. Alternatively they may frequent the course with the consent of the teacher.
 Goals: The Fall Term seminar (P series) will be titled "Prediction of protein function and structure from sequence". The course will convene for 1hr weekly.
 Learning outcomes: Students will gain insight into problems studied in bioinformatics; they will practice presentation and discussion techniques in front of an audience.
 Syllabus:
The students will chose publications to study recent methods in genomic sequence analysis (using suggested journal articles or other material approved by the teacher).
Protein structure and function prediction from sequence
Similarity of protein molecules
Signalling and metabolic pathway analysis and visualization
IV106 Bioinformatics seminar
k 0/1 1 kr., jaro
 Ing. Matej Lexa, Ph.D.
 Prerequisities: Those who sign up for this interdisciplinary course should be able to read and comprehend a scientific paper or book chapter written in English. Deeper knowledge of algorithm design and programming will allow the particular student to focus more on the biological side of the studied problems or vice versa. Students of nonbiological fields should be concurrently enrolled in, or have previously passed IV107 Bioinformatics I. Alternatively they may frequent the course with the consent of the teacher.
 Goals: The Spring Term seminar covers "Biological sequence analysis, protein structure prediction, detection of genes, promoter sequences and other elements".
 Learning outcomes: Students will gain insight into problems studied in bioinformatics; they will practice presentation and discussion techniques in front of an audience.
 Syllabus:
Students will chose publications to study recent methods in genomic sequence analysis (using suggested journal articles or other material approved by the teacher). Possible subjects of papers:
Sequencing data processing
Gene identification in DNA sequences
Similarity between sequences
Motif and pattern searching
DNA and RNA secondary structure prediction
IV107 Bioinformatics I
zk 2/1 2 kr., podzim
 Ing. Matej Lexa, Ph.D.
 Prerequisities: This is an entry course into the area of bioinformatics for students of nonbiological disciplines, there are no prerequisites.
 Goals: This course will lead the students into the fascinating world of molecules, genes and proteins. Currently, bioinformatics is going through a period of unusual growth. Abilities to think and act as a bioinformatician (to work with large biological datasets using modern computer science methods) are needed in many areas of science and applied disciplines, especially biology, medicine and chemistry.
 Learning outcomes: After taking the course, the students will understand basic principles of molecular biology; they will be familiar with important biological problems that can be best handled by computers; they will understand and be able to choose basic computational methods for handling molecular data.
 Syllabus:
The history and subject of bioinformatics
Basics of molecular biology
Organization of living matter
DNA structure and function
Protein structure and function
Evolution of genes and proteins
Bioinformatic data
Data sources
Common data types
Public sequence data and their accessibility
DNA sequence analysis
Computer exercises: Data sources, similarity search, visualization of molecules
Protein sequence analysis
Structural and functional data
Similarity searches and scoring
Other types of data and their analysis
Expression data
Protein digests and mass spectra
Literature data analysis
IV108 Bionformatics II
zk 1/1 2 kr., podzim
 Ing. Matej Lexa, Ph.D.
 Prerequisities: IV107 Bioinformatics I or consent of the teacher (not needed for biology students).
 Goals: Introduction to selected algorithms and methods of analysis used in bioinformatics.
 Learning outcomes:
At the end of the course, the students will:
understand the inner workings of selected algorithms, their advantages and disadvanteges, including knowledge of recent alternatives
be able to work with 3D models of molecules
be able to evaluate or design methods for solving current problems in bioinformatics
understand the principles of existing DNA sequencing methods and processing sequencing data  Syllabus:
Algorithms for sequence analysis
Algorithms for prediction and analysis of structural data
Biological language
Nextgeneration DNA sequencing methods and data processing
Understanding protein cleavage and mass spectra
Expression profile and promoter analysis
IV109 Modeling and Simulation
zk 2/1 3 kr., jaro
 doc. Mgr. Radek Pelánek, Ph.D.
 Goals: The course offers a wide overview of computational modeling and gives students a practical experience with computational modeling.
 Learning outcomes: At the end of the course students will be able to: describe main concepts of complex systems (particularly "feedback loops"); explain main principles and applications of computational modeling; compare modeling approaches; describe wellknow case studies in computational modeling; create a computational model.
 Syllabus:
Introduction, history, role of modeling and simulation in research,
applications. Computational models.
Complex systems, system thinking, feedback loops.
System dynamics approach, examples (demographics, Limits to growth).
Agent based modeling: basic principles, cellular automata, decentralized systems.
Game theory, models of cooperation. Models of adaptation (genetic algorithms, neural networks).
Modeling of networks: examples of networks and their properties, models of networks.
Analysis and evaluation of models.
Application of modeling from different areas (e.g. economics, traffic, epidemiology, biology).
IV110 Bionformatics project I
k 1/1 2 kr., podzim
 Ing. Matej Lexa, Ph.D.
 Prerequisities: IV107 Bioinformatics I plus elementary programming skills (e.g. UNIX + C/C++/Java + Perl/Python) or teacher's consent
 Goals:
In this course the students will:
be able to select appropriate bioinformatic tools for a given problem
be able to carry out independent analysis of bioinformatic data
present their results to their colleagues  Learning outcomes:
In this course the students will:
be able to select appropriate bioinformatic tools for a given problem
be able to carry out independent analysis of bioinformatic data
present their results to their colleagues  Syllabus:
Discussion of interesting problems to solve
Preparation of student proposals
Programming phase
Student miniconference
IV111 Probability in Computer Science
zk 2/2 3 kr., podzim
 doc. RNDr. Vojtěch Řehák, Ph.D.
 Prerequisities: Knowledge of basic discrete mathematics (e.g. as presented in the course IB000).
 Goals: At the end of the course student should have a broad knowledge and an ability of independent study of problems based on the probability theory and its computer science applications. Will be able to apply the results of the probability theory in practical examples. Should be able to learn independently new problems requiring knowledge of probability theory. Will be able to characterise basic principles of data compression and error correction. Should be able to apply information theory results in practice.
 Learning outcomes: Student is able: to define basic terms of the mentioned topics (e.g., random variable, expectation, variance, random process, Markov chain, channel capacity, code rate); to explain meaning on the terms on practical examples; to solve simple examples e.g. using linearity o expectation; to provide basic analysis on both discrete and continuoustime Markov chains; to compute (conditional) expectation, mutual information, and entropy random variables with given probability distribution; to demonstrate basic proof mentioned during lectures.
 Syllabus:
Probability. Discrete probabilistic space.
Random variable and its applications. Expectation and variation.
Markov and Chebyshev inequalities. Chernoff bounds. Weak and strong law of large numbers.
Random processes. Markov processes.
Entropy. Information.
Applications in computer science (information theory, coding theory, cryptography etc).
IV112 Project on programming parallel applications
z 0/5 5 kr., podzim
 prof. RNDr. Jiří Barnat, Ph.D.
 Prerequisities: A participant is expected to be familiar with concepts of threads and processes, parallelism and is also expected to have some programming skills in C, or C++.
 Goals: The goal of the course is to expose students to a couple of problems related to parallel programing and let them solve these problems individualy.
 Learning outcomes: Students will gain practical experience with programming of parallel aplications and solutions of related algorithmic problems.
 Syllabus: Initial kickoff meeting; definition of projects and deadlines; work on the projects; final discussion.
IV114 Bioinformatics and Systems Biology Project
k 0/1 2 kr., podzim
 Ing. Matej Lexa, Ph.D.
 Prerequisities: The students should have finished IV107 Bioinformatics I and have elementary programming skills in any programming language/environment (optimally UNIX with C/C++/Java and Perl/Python) or consent of the lecturer
 Goals:
In this course the students will:
be able to select appropriate bioinformatic tools for a given problem
be able to carry out independent analysis of bioinformatic data
present their results to their colleagues  Learning outcomes:
In this course the students will:
be able to select appropriate bioinformatic tools for a given problem
be able to carry out independent analysis of bioinformatic data
present their results to their colleagues  Syllabus:
Discussion of interesting problems to solve
Preparation of student proposals
Programming phase
Student miniconference
IV115 Parallel and Distributed Laboratory Seminar
z 0/2 2 kr., podzim
 prof. RNDr. Jiří Barnat, Ph.D.
 Prerequisities:
souhlas
Ability of selfeducation by reading latest scientific papers focused on modeling and verification of complex systems.  Goals: Students acquire experience with preparing presentations of their own research work and should be able to actively participate in research activities of the ParaDiSe laboratory.
 Learning outcomes: Experience with presentation of research results to adequately educated audience.
 Syllabus: Discussion topics and papers to be studied and presented are specified during the first two weeks of semester.
IV115 Parallel and Distributed Laboratory Seminar
z 0/2 2 kr., jaro
 prof. RNDr. Jiří Barnat, Ph.D.
 Prerequisities:
souhlas
Ability of selfeducation by reading latest scientific papers focused on modeling and verification of complex systems.  Goals: Students acquire experience with preparing presentations of their own research work and should be able to actively participate in research activities of the ParaDiSe laboratory.
 Learning outcomes: Experience with presentation of research results to adequately educated audience.
 Syllabus: Discussion topics and papers to be studied and presented are specified during the first two weeks of semester.
IV119 Seminar on Discrete Mathematical Methods
k 0/2 2 kr., jaro
 prof. RNDr. Petr Hliněný, Ph.D.  prof. RNDr. Daniel Kráľ, Ph.D., DSc.
 Prerequisities: Basics of undergraduate mathematics (IB000 is enough).
 Goals: The aim of this seminar is to introduce interested students into the beauties of mathematics and of clean mathematical proofs. This will teach students "mathematical thinking"  to understand math definitions, statements, and proofs in their full depth, and to make their own new proofs in all areas of mathematics and theoretical computer science.
 Learning outcomes: After finishing this seminar, successful students should be able to understand presented mathematical proofs in their full depth, and to make their own new proofs in areas of mathematics and theoretical computer science.
 Syllabus:
Selected nice topics from "Proofs from THE BOOK"; TBA each year.
Number theory, Combinatorics, Combinatorial geometry, Graph theory.
Different topics are chosen in subsequent years.
IV120 Continuous and Hybrid Systems
zk 2/1 3 kr., podzim
 RNDr. David Šafránek, Ph.D.  prof. RNDr. Jiří Barnat, Ph.D.
 Prerequisities:
Elementary mathematical knowledge: linear algebra (matrix, linear map, eigenspace), calculus (continuous function, multivariable diferential calculus, firstorder differential equations).
Elementary knowledge of computer science: finite automata, statetransition system, behavioral equivalence, bisimulation.
General knowledge of modeling and simulation: population model, feedback, simulation.  Goals: Introduction to continuous and hybrid systems that are used to model many natural phenomena.
 Learning outcomes:
At the end of the course students should be able to:
understand elementary notions from the domain of continuous and hybrid systems;
orient themselves in methods for analysis of continuous and hybrid systems, system control and related problems;
characterize complexity of the given system;
apply computational methods to analyze dynamic properties of systems.  Syllabus:
Introduction to general systems theory. System, object, model. Boulding's hierarchy. Dynamical system, causality, state transition function. Dimensionality, state equations. Feedbacks, block diagram.
Continuous, discrete, hybrid system. Trajectories, their existence, simulation. Examples of systems (electronics, economy, chemistry, biology).
System presentation  system matrix and its meaning. Nonlinear systems, classes of nonlinearity, linearization. Stability, characterization of stability, Lyapunov theorems. Attractors and domains of attraction. Oscillation, multistability, chaos. Feinberg's classification of reaction kinetics systems.
Reachability, reachability analysis for hybrid systems. Reachability in continuous systems  piecewise linear systems, finite quotients.
Controllability. Openloop and closedloop control, blackbox control, modelbased control, controller synthesis. System observability and identifiability.
Parameterization, parameter uncertainty, sensitivity analysis. Tools for parameter estimation, system identification.
Methods for system comparison: system equivalence, bisimulation and approximative bisimulation. Robustness analysis.
Explained methods will be demonstrated in the form of practicals especially from the domain of computational systems biology. Tools from the following set will be employed: MATLAB/Octave, COPASI, GNA, SpaceEx/PHAVer, Ariadne.
IV123 InformaticsDriven Future
zk 2/0 2 kr., jaro
 prof. RNDr. Jozef Gruska, DrSc.
 Prerequisities: There are no special technical requirements. Main requirement is a deeper interest to know the expected role of Informatics for society in future, , as well as its main challenges and potential
 Goals: Exponentially fast developments in Informatics, especially in information storing, transmission and processing driven technologies, and in artificial intelligence, create potential for enormous impacts on society. The impact that has potential to be very positive, but also very negative, even historical. Moreover, due to that development, what can be nowadays expected as to happen in the next 50100 years, in most of the areas of society, especially in science, technology, health care,...., if the current rate of development is sustained, can happen actually already within next 2040 years. The goal of the course is to provide a visionary and thoughtsprovoking, but well grounded, analysis of the main developments that we can, reasonably, expect, and why, in the (very) near future. Especially due to the development in all information processing and communication driven technologies, nanotechnologies, genetics, nonbiological (artificial) intelligence and in fights with natural death and in explorig intelligence as a commodity. Informatics, once properly understood and developed%and sufficiently broadly and deeply understood, is to play at that a key role. Merits of the favorable future, but also ways to avoid perils, if possible, will also be discussed. The course should be of interest and importance to all those interested to find out the frameworks, tools, tasks and main challenges they and society will face in the (already quite near) future. To understand that should be for anyone not only very interesting, but actually much needed for knowing how to prepare oneself in the best way for the expected long future carrier in enormously fast changing frameworks. Contents: 1. Introduction: Why and how to foresee future? Main megachallenges. 2. Evolution  from biological to nonbiological one and to their merge. 3. Exponential acceleration of all informationdriven technologies. 4. New perception of Scientific Informatics and its grand challenges. 5. Impulses and roads to a new perception of Informatics 6. Technological and Applied Informatics and their grand challenges. 7. New, Informaticsdriven, methodology and its grand challenges. 8. Developments in the understanding and simulation of human brains. 9. GNRrevolution  Artificial intelligence and robotics,aibeings 10. GNR revolution  Genetics and Nanotechnologies. 11. Singularity: merge of bio and nonbiointelligencemerits/perils. 12. Longevity  Can we fight death? Can we make life enjoyable till/after 150?!
 Learning outcomes: Understanding of unpredictability of impact of IT evolution to the future.
 Syllabus: 1. Introduction. Why and how we need/can forsee future? Old and new megachallenges of science, technology and informatics. 2.Evolution. From biological to nonbiological (technological) evolution and their merge. Enormous expected impacts of the merge ot the biological and nonbiological intelligence. 3. Exponential developments in information processing and communication technologies and their impacts on science, technology and the rest of society 4.New perception of informatics and its grand challenges. Informatics as a merge of scientific, engineering, methodological and application informatics. New perception of the scientific informatics and its grand challenges. 5. New perception of the technological iand applied nformatics and their grand challenges. 6. New, informaticsdriven methodology for science, technology, and actually for all areas of society. 7. Recent developments in understanding and simulation of human brains and minds 8. GNR revolution  I. Robotics and artificial intelligence. Long hhistory, hot outcomes, big dangers. 9. GNR Revolution  II. Geniomics and nanotechnologies 10. Singularity  a merge of biological and nonbiological evolution. 12. Longevity  Can we fight death? How (much). Can we make life ebjyable till/after 150?!
IV124 Complex Networks
k 0/2 2 kr., jaro
 doc. RNDr. Eva Hladká, Ph.D.  Ing. Eva Výtvarová
 Goals: Many complex systems can be viewed as a network of interacting units. This view helps to study and understand important phenomena present in systems such as human brain, internet, economy, social groups and others. The prezence of big data stimulated development of fundamental theories to describe and analyse complex networks in many fields. Course includes tutorials where real data sets will be analysed.
 Learning outcomes: The students will be able to define the local and global network topological measures, and will be aware of the algorithms which can be used for their computation. They will be ready to explain the principles of generating random graphs with given structural properties and to understand their role in data analysis. The students will be able to apply the complex network analysis to empirical data sets across the application domains. Given raw data, they will be also capable of designing a networkoriented analysis, formulate relevant hypothesis and interpret correctly the results.
 Syllabus:
Intro
Random graphs
Central nodes
COmunity structure
Application of centrality and modularity
Power law I
powerlaw II
Smallworld networks
Random walks
Robustness and stability
Socialeconomic networks
Internet as a complex network
Biologic networks
Visualisation
IV125 Formela lab seminar
k 0/2 2 kr., podzim
 prof. RNDr. Antonín Kučera, Ph.D.  doc. RNDr. Tomáš Brázdil, Ph.D.  doc. RNDr. Vojtěch Řehák, Ph.D.  prof. RNDr. Petr Hliněný, Ph.D.  doc. Mgr. Jan Obdržálek, PhD.  RNDr. Petr Novotný, Ph.D.  Dr. rer. nat. Achim Blumensath
 Prerequisities:
souhlas
The enrollment must be approved by a teacher of a seminar group.  Goals: By passing this course, the student will gain a profound insight into the relevant part of theoretical computer science or mathematics (depending on the selected seminar group), will be able to read and present results formulated in a given scientific literature.
 Learning outcomes: The student has a profound insight into the relevant parts of theoretical computer science or mathematics (depending on the chosen seminar group), is able to present the given specialized substance independently and solve related research problems.
 Syllabus:
Team study or team research project.
At the beginning of the semester the studied topics is selected in a common discussion.
At regular weekly seminars a selected student (or the lecturer) explains the subject.
At the designated seminars students refer to their progress and results, they are given feedback.
At the final seminar an overall assessment is made.
IV125 Formela lab seminar
k 0/2 2 kr., jaro
 Dr. rer. nat. Achim Blumensath  doc. RNDr. Tomáš Brázdil, Ph.D.  prof. RNDr. Petr Hliněný, Ph.D.  prof. RNDr. Antonín Kučera, Ph.D.  doc. Mgr. Jan Obdržálek, PhD.  doc. RNDr. Vojtěch Řehák, Ph.D.
 Prerequisities:
souhlas
The enrollment must be approved by a teacher of a seminar group.  Goals: By passing this course, the student will gain a profound insight into the relevant part of theoretical computer science or mathematics (depending on the selected seminar group), will be able to read and present results formulated in a given scientific literature.
 Learning outcomes: The student has a profound insight into the relevant parts of theoretical computer science or mathematics (depending on the chosen seminar group), is able to present the given specialized substance independently and solve related research problems.
 Syllabus:
Team study or team research project.
At the beginning of the semester the studied topics is selected in a common discussion.
At regular weekly seminars a selected student (or the lecturer) explains the subject.
At the designated seminars students refer to their progress and results, they are given feedback.
At the final seminar an overall assessment is made.
IV126 Artificial Intelligence II
zk 2/0 3 kr., podzim
 doc. Mgr. Hana Rudová, Ph.D.
 Prerequisities:
The course is a continuation of the PB016 Artificial Intelligence I,
PB016 completion is not a prerequisite for course completion.
It is presumed knowledge of probability theory corresponding to the course MB103 Continuous models and statistics.  Goals: Course provides information from selected areas of artificial intelligence about search algorithms concentrating on metaheuristics and local search, about classical planning in artificial intelligence, about uncertain reasoning and basic introduction about robotics oriented on robot path planning.
 Learning outcomes:
The course completes comprehensive introductory knowledge of artificial intelligence following the lecture PB016 Artificial Intelligence I. It presents additional important chapters from the classic book by Russell & Norvig Artificial Intelligence: A Modern Approach (see aima.cs.berkeley.edu). Local search, planning, dealing with uncertainty and robotics are introduced in the course.
Graduate will be aware of base and advanced local search algorithms and will be able to solve practical problems with their help.
Graduate will be able to work with planning problems completed by sequence of actions to achieve given goal.
Graduate will be aware of the base concepts from robotics, will be aware of robot perceptions and planning movements.  Syllabus:
Local search and metaheuristics:
Singlesolution based search, principles and concepts, strategies for improving local search. Populationbased search, evolutionary algorithms, swarm intelligence. Multiobjective optimization, Pareto optimum.
Planning: Problem representation. State space planning, forward and backward planning, STRIPS operators. Plan space planning, partial order planning.
Uncertain knowledge and reasoning: Probabilistic reasoning, Bayesian networks, exact and approximate inference. Probabilistic reasoning over time, time and uncertainty, Markov processes. Utility theory, decision networks, decision in time, Markov decision processes.
Robotics: Robot hardware, sensors, effectors. Robotic perception, localization and mapping. Planning to move.
IV127 Adaptive Learning Seminar
k 0/2 2 kr., podzim
 doc. Mgr. Radek Pelánek, Ph.D.
 Goals: Students gain experience with reading and presenting research papers and they perform and present their own research and development in the area of adaptive learning.
 Learning outcomes: At the end of the course, students will be able to critically assess current research and development in the area of adaptive learning.
 Syllabus: Presentation of research papers from research areas relevant to the Adaptive learning lab  educational data mining, machine learning, cognitive psychology. Development of educational systems, analysis of educational data, presentation and discussion of results.
IV127 Adaptive Learning Seminar
k 0/2 2 kr., jaro
 doc. Mgr. Radek Pelánek, Ph.D.
 Goals: Students gain experience with reading and presenting research papers and they perform and present their own research and development in the area of adaptive learning.
 Learning outcomes: At the end of the course, students will be able to critically assess current research and development in the area of adaptive learning.
 Syllabus: Presentation of research papers from research areas relevant to the Adaptive learning lab  educational data mining, machine learning, cognitive psychology. Development of educational systems, analysis of educational data, presentation and discussion of results.
IV128 Online Communication from Social Science Perspective
z 0/2 4 kr., jaro
 prof. PhDr. David Šmahel, Ph.D.
 Goals: This seminar should introduce basic theories and research of online communication, what will help students of informatics to better understand to specifics of online communication.
 Learning outcomes:  knowledge of basic theories of online communication  knowledge of theories related to experimenting with online identity  knowledge of theories and empirical research related to trust in online information
 Syllabus: 1. Intro 2. Communication theory 3. Reliability of online data 4. Privacy in virtual world 5. Phishing 6. A methodology of online communication 7. Communication in virtual teams. 8. Addiction to online communication 9. Health and internet 10. Mediation of using internet 11. Safe online behavior 12. Research in online security 13. Conclusions
IV129 Sybila Laboratory
z 0/0 2 kr., podzim
 RNDr. David Šafránek, Ph.D.  prof. RNDr. Luboš Brim, CSc.
 Prerequisities:
SOUHLAS
Applicants should 1) be able to work independently 2) have interest in longterm projects (several semesters) 3) have working knowledge of English 4) be able to work in a team. The enrollment must be approved by one of the laboratory researchers (L. Brim, D. Šafránek).  Goals: On successful completion of the course students  will have practical experience with active research  should be able to read and understand scientific papers  should be able to employ gathered information to formulate and prove their own hypotheses within the relevant context  should be able to present the research results in English.
 Learning outcomes:
After the course the student will be able:
 to analyse and discuss pros and cons of computational methods in systems biology;
 to contrast conceptual errors in analysed publications by employing suitable arguments;
 to judge ideas and opinions in front of students and professionals.  Syllabus: Sybila Laboratory is a team project focused on the development of methods and tools for the design and analysis of biological systems and their experimental application. Students meet regularly with senior researchers to discuss research problems related to their research topics. Students are expected to regularly present stateoftheart results in the relevant fields at the laboratory seminar.
IV129 Sybila Laboratory
z 0/0 2 kr., jaro
 RNDr. David Šafránek, Ph.D.  prof. RNDr. Luboš Brim, CSc.
 Prerequisities:
SOUHLAS
Applicants should 1) be able to work independently 2) have interest in longterm projects (several semesters) 3) have working knowledge of English 4) be able to work in a team. The enrollment must be approved by one of the laboratory researchers (L. Brim, D. Šafránek).  Goals: On successful completion of the course students  will have practical experience with active research  should be able to read and understand scientific papers  should be able to employ gathered information to formulate and prove their own hypotheses within the relevant context  should be able to present the research results in English.
 Learning outcomes:
After the course the student will be able:
 to analyse and discuss pros and cons of computational methods in systems biology;
 to contrast conceptual errors in analysed publications by employing suitable arguments;
 to judge ideas and opinions in front of students and professionals.  Syllabus: Sybila Laboratory is a team project focused on the development of methods and tools for the design and analysis of biological systems and their experimental application. Students meet regularly with senior researchers to discuss research problems related to their research topics. Students are expected to regularly present stateoftheart results in the relevant fields at the laboratory seminar.
PB001 Introduction to Information Technologies
zk 2/0 2 kr., podzim
 prof. RNDr. Luděk Matyska, CSc.  doc. RNDr. Eva Hladká, Ph.D.
 Prerequisities:
! PB002 && ! NOW ( PB002 )
 Goals:
To provide basic orientation in the information technology fields is the main goal of this lecture. Not only hardware and software is discussed, but the social extent is covered as well.
The graduate will be able to understand function of simple computer systems.
Graduate will be also able to understand and explain relationship between components of more complex computer systems.
Graduate will be also able to analyze and explain behavior of operating systems, computer networks etc. from the user point of view.
Graduate will be able to analyze and evaluate ethical implications of his own work.  Learning outcomes:
At the end of this course student will have basic orientation in computer and information technologies and their design. Specifically, she will understand basic principles of computer and computer systems design, she will be acquainted with principles of programming and specific constructs like interruption, synchronization, input/output. She will know basic principles of design of operating systems that are used as an example of complex computer systems; she will know what API is.
He will also get basic overview and orientation in computer networks an computer graphics.
The graduate will also get basic orientation in ethics and professional context and she will also be able to comment societal impacts of computer technology.  Syllabus:
Computer and communication system, role of components (architecture,
operating systems, computer networks), applications.
Social and ethical dimension of IT.
Computer architecture, data representation, von Neumann model, basic machine organization.
Role of operating systems, history, functionality of a typical contemporary OS.
Design principles, efficiency, robustness, flexibility, compatibility, ...
Influence of requirements of security, networking, graphical interfaces, ...
OS structure (monolithic, layered, modular, microkernel).
Abstraction, processes, resources, application interfaces.
I/O devices and their management, drivers.
Protection, system and user space, kernel.
Networks, their history, Internet, fundamentals of network architecture, distributed systems.
Protocols, multimedia systems, distributed computing, mobile and wireless computing.
Basics of HumanComputer interaction, graphical systems.
Social context of IT, Information society, New economics.
Internet, grows, management, international issues.
Professional and ethical responsibility, basic laws (personal data protections, digital signature, ...). Ethic codes, professional bodies, organizational's "Acceptable use policy".
PB002 Foundations of Information Technologies
zk 2/0 2 kr., podzim
 doc. RNDr. Eva Hladká, Ph.D.
 Prerequisities:
! PB001 && ! NOW ( PB001 )
 Goals:
This lecture provides basic orientation in the field of information
technology and the principles of building computer systems. The lecture targets students that do not specialize as computer science
professionals but need to get sufficient overview of the subject to be
able to use information technology in other fields.
Graduate will be able to orient in basics of the computer systems.
Graduate will also be able to understand behavior of simple systems and explain them from the user point of view.  Learning outcomes: he lecture presents an introduction to computer architectures, operation systems, computer networks, applications, but also about security that is becoming increasingly important and nonnegligible component of the modern computer system's design. The lecture will focus on the use of IT in different areas. Last part of the lecture focuses on the impact of IT to the whole society and will also discuss some ethical problems related to its use.
 Syllabus:
Basic components of computer and communication systems
Principles of computer organization, von Neumann architecture
Processors, data representation in a computer, data precision
Operation systems (OS), history of their evolution, functionality of a typical contemporary OS
Memory organization, memory instructions
I/O and other devices, their management, drivers, role of application programming interface (API)
Computer networks, Internet, introduction into the TCP/IP networks, peer to peer networks
Applications, videoconferencing systems and multimedia applications, social networks
Computer systems security, principles of authentication and authorization, safe work with IT
Social and ethical dimension of IT
PB007 Software Engineering I
zk 2/2 3 kr., podzim
 doc. Ing. RNDr. Barbora Bühnová, Ph.D.
 Goals: Introduction to software engineering.
 Learning outcomes:
At the end of the course students should:
know the basic steps and tasks of the IS development process;
have detailed understanding of the techniques of requirements specification, system analysis and design, testing and maintenance;
know the characteristics of objectoriented approach to system analysis and design;
be able to model a mediumsize IS in UML.  Syllabus:
Software development, UML Use Case diagram.
Requirements specification, UML Activity diagram.
System analysis and design, structured vs. objectoriented A&D.
Object oriented analysis, UML Class diagram, Object diagram and State diagram.
Data modelling and management, ERD.
Highlevel design, UML Class diagram in design.
Lowlevel design and implementation, UML Interaction diagrams.
Architecture design, UML Package, Component and Deployment diagram.
Testing, verification and validation.
Operation, maintenance and system evolution.
Software development management.
Advanced software engineering techniques.
PB009 Principles of Computer Graphics
zk 2/1 3 kr., jaro
 prof. Ing. Jiří Sochor, CSc.
 Prerequisities: The knowledge of matrix calcul, linear algebra and geometry.
 Goals: The course covers fundamental computer graphics algorithms and methods for modelling and rendering.
 Learning outcomes:
After finishing the course students
 will orient themselves in a broad spectrum of computer graphics problems;
 will understand the underlying math foundations and programming issues as well;
 gain the practical knowledge in programming algorithms;
 will understand problems related to rendering, antialiasing and lightning.  Syllabus:
Graphics primitives, raster algorithms.
Filling, clipping.
Transforms, projections.
Interpolating and freeform curves, surfaces.
Color, color perception, color models.
Raster image processing: color reduction, convolution, transformation.
Solid modeling. Space enumeration, boundary models, CSG.
Illumination models, smooth shading.
Textures.
Visibility in object space.
Global illumination, raytracing, radiosity.
Ray tracing.
PB016 Artificial Intelligence I
zk 2/0 3 kr., podzim
 doc. RNDr. Aleš Horák, Ph.D.
 Goals: Introduction to problem solving in the area of artificial intelligence. The main aim of the course is to provide information about fundamental algorithms used in AI.
 Learning outcomes:
After studying the course, the students will be able to:
 identify and summarize tasks related to the field of artificial intelligence;
 compare and describe basic search space algorithms;
 compare and describe main aspects of logical systems;
 understand different approaches to machine learning;
 compare and describe different ways of knowledge representation and reasoning;
 present basic approaches to computer processing of natural languages.  Syllabus:
The Prolog language.
Operations and data structures.
State space searching.
Heuristics, Bestfirst search, A* search.
Problem decomposition, AND/OR graphs.
Constraint Satisfaction Problems.
Games and basic game strategies.
Intelligent agents, propositional logic, first order predicate logic.
TIL  transparent intensional logic.
Knowledge representation and reasoning.
Learning, decision trees, neural networks.
Deep Learning Applications
Natural language processing.
PB029 Electronic Document Preparation
zk 2/1 3 kr., podzim
 doc. RNDr. Petr Sojka, Ph.D.
 Prerequisities: No strict prerequisites are set. Knowledge of basic algorithmic techniques and attention to detail is a plus. Students would benefit from basic knowledge of Unix scripting environment (e.g. from attending PV004 UNIX).
 Goals: Basic principles, algorithms and techniques used in electronic publishing are taught. Point of view is narrowed with respect to the creation of sizable, structured, technical documents like theses or dissertation, and presentations  it is ideal to enroll before writing first thesis (in TeX). Web publishing is also covered.
 Learning outcomes:
At the end of the course students should be able to apply basic principles, algorithms and technologies of (team) document preparation and production, namely as an author of technical documents (thesis, course presentation materials, program documentation, web presentation or for quality database publication). Students will use typesetting system TeX suite of programs.
Students will be able to pick up and work with appropriate tools and software packages used in the electronic documents' development cycle and preparation of above specified document types.  Syllabus:
From author to the reader: document preparation cycle.
Markup Logical structure of a document; markup languages. LaTeX as a markup language. HTML5, SGML, HTML, XML. Document grammars. DTD, XML Schema.
Design. Principles of book design. Specifics of web design. CSS, XSL(T).
Typesetting. Typesetting, typography. Basic principles, rules for Czech and English. Terminology.
Typefaces. Classification of type. Formats, rasterization of fonts. Type 1, Multiple master fonts.
Typesetting systems. TeX  principles, philosophy, macro programming. Microtypography.
Algorithms of line and page breaking, hyphenation.
Page description languages. PostScript. Bézier curves.
Print and Distribution. Output devices and their characteristics. Phototypesetting, printing and binding.
Hypertext, hypertext systems. Formats for electronic delivery. Portable Document Format, technology Adobe Acrobat.
Parallel WWW and paper publication. Database publishing. Document format conversion. Specifics of presentation preparation.
PB050 Modelling and Prediction in Systems Biology
zk 1/1 2 kr., podzim
 RNDr. David Šafránek, Ph.D.
 Prerequisities: This is an interdisciplinary course that extends the knowledge of bachelor students of all study branches. The course is especially recommended for students of Bioinformatics.
 Goals:
At the end of the course, students will be able to:
understand basic principles of quantitative modeling,
understand dynamic computational models of complex systems in the domain of biological processes;
apply abstract computerscientific thinking to modeling and analysis of complex systems with special focus to biological systems;
practically use stateoftheart modeling and analysis software tools;
model and analyze dynamic properties of complex interaction networks.  Learning outcomes:
At the end of the course, students will be able to:
describe basic principles of quantitative modeling,
constract dynamic computational models of complex systems in the domain of biological processes;
apply abstract computerscientific thinking to modeling and analysis of complex systems with special focus to biological systems;
use stateoftheart modeling and analysis software tools.  Syllabus:
History and scope of systems biology.
Basic notions: living organism as a system with precisely given structure and functionality, in silico model, abstraction, simulation and prediction, model validation.
Specification of a biological model: biological networks and pathways, languages SBML and SBGN.
Emergent properties of systems dynamics, their specification and encoding.
Modeling and simulation of biological systems dynamics: hypotheses prediction.
Modeling of Escherichia coli bacteria: genetic regulatory network, models of locomotion organ synthesis and chemotaxis, nutritional stress response models.
Notion of stochasticity in biological dynamics, basic principles of stochastic models, chemical master equation, Monte Carlo simulation.
Model parameters, robustness and parameter sensitivity.
PB051 Computational methods in Bioinformatics and Systems Biology
zk 1/1 2 kr., jaro
 Ing. Matej Lexa, Ph.D.  RNDr. David Šafránek, Ph.D.
 Prerequisities: Knowledge of elementary molecular biology and basic problems in bioinformatics and systems biology is expected. Previous undertaking of courses IV107, PA054 and PB050 is welcome, but not required formally.
 Goals: At the end of the course students should be able to: select appropriate methods for a given problem; obtain and prepare necessary data; analyse the data (using their own program or publically available solutions)
 Learning outcomes:
At the end of the course students should be able to:
 select appropriate computational methods for a given problem;
 analyse selected types of experimental data;
 apply software tools to selected problems of data processing;
 construct and modify qualitative models of biological networks.  Syllabus:
The course will be divided into two parts, each will cover 12 methods:
Bioinformatics:
operations on genomes
using Markov models
Systems biology:
static analysis of biological networks; Cytoscape, MAVisto tools
genetic regulatory networks reconstruction; Genomica, ARACNE tools
data integration
PB069 Desktop Application Development in C#/.NET
zk 2/2 3 kr., jaro
 RNDr. Jaroslav Pelikán, Ph.D.
 Prerequisities: Knowledge of programming, C# programming language that is adequate to the course PV178 Introduction to Development in C#/.NET, and MS Windows operating system (on a user level).
 Goals: The course Desktop Application Development in C#/.NET introduces students to the basic techniques used for development of applications aimed for the environment of MS Windows operating systems. The course targets development of simple applications together with their graphical user interface, using C# programming language, MS .NET platform, Windows Forms programming interface, and Windows Presentation Foundation. The topics are taught and demonstrated in Microsoft Visual Studio.
 Learning outcomes:
At the end of the course, the student will:
know the principles and rules of eventdriven programming;
be familiar with the MS Visual Studio environment, Windows Forms interface, and Windows Presentation Foundation;
know the rules of designing graphical user interfaces of applications;
be able to use the basic classes of the Windows Forms interface and the Windows Presentation Foundation;
be able to develop applications for the MS Windows environment together with their user interface.  Syllabus:
Event driven programming. The model of a MS Windows program.
Integrated development environment MS Visual Studio, simple applications creation.
Usage of Windows Forms basic classes and work with them.
Processing of events coming from the keyboard and mouse.
Dialog boxes and their handling.
Programming with graphics.
Rules for the design of graphical user interface of applications.
Basic standard dialogs.
Programming with the clipboard, support of drag & drop, programming with Windows registry.
Support of multithreading in applications.
Printing from the environment of MS Windows.
Programming with Win32 API.
Introduction to Windows Presentation Foundation.
Design of applications using Windows Presentation Foundation.
PB071 Principles of lowlevel programming
zk 2/2 4 kr., jaro
 doc. RNDr. Petr Švenda, Ph.D.
 Prerequisities:
IB001  IB111  IB999
Students are expected to have knowledge of algorithmization in Pascal or another procedural language. Students are also required to have user experience with Unix OS, as homework is submitted and tested on a Unix server.  Goals:
At the end of the course students should be able to:
Understand and use basic C syntax according to ANSI and ISO/IEC norms.
Decompose given problem and perform practical implementation.
Use modern development tools (IDE, debugger, version control...).
Understand basic C functions for POSIX system.
Annotate source code with possibility to automatically generate documentation. Understand and practically use documentation for existing functions.
Use and follow programming best practices.
Compile programs both under Unix and Windows.  Learning outcomes:
After a course completion, the student will be able to:
 write nontrivial programs in C language;
 use basic development tools including IDE, debugger, versioning system and dynamic analysis of memory use;
 understand code execution on the level of CPU and memory;
 use dynamic allocation and apply correct deallocation where necessary;
 write programs with an application of good programming practices;  Syllabus:
Historical background of the C language. Its relation to the Unix OS.
C compilers under Unix and MSDOS/MSWindows, integrated development environment, debugger, version control. Good programming practices, testing.
Data types, constants, declarations, expressions. Assignment expressions and statements.
Basic program structure. Preprocessor statements. Comments. Control structures. Relational expressions. Elementary I/O operations.
Arrays and pointers. Functions. Calling by value, passing arguments by pointer.
User defined data types. Dynamic memory allocation.
I/O in details. Using files. Wide characters.
Strings and string manipulation. Standard C library according to ANSI and ISO/IEC standards. Calling Unix core services. Further Unix libraries for C. POSIX C Library. Implementation on Windows.
Safe and defensive programming. Advanced testing.
PB095 Introduction to Speech Processing
zk 2/0 2 kr., podzim
 Mgr. Luděk Bártek, Ph.D.
 Goals: The course provides an introduction to speech processing oriented to humancomputer interaction, i.e. especially to speech synthesis, speech recognition and dialogue systems. Main objectives can be summarized as follows: To understand the basic principles of sound and speech production and perception; To understand basic principles of speech regognition,synthesis and dialogue systems; To obtain an introductory overview in the field.
 Learning outcomes: Student will be able after finishing the course to describe and explain the basic terms, methods and standards in following areas:
 physical acoustics
 physiological acoustics, especially the processes of forming and understanding the human speech
 phonetics and phonology
 signal digitization and basic signal processing in time and frequency domains
 isolated words and commands recognition
 continues speech recognition
 time and frequency domain texttospeech synthesis
 relation of prosody a emotions to tts and speech recognition
 dialogue communication
 dialogue systems
 user modeling in dialogue systems
 dialogue systems applicaiton.
 Syllabus:
Introduction
Brief history
State of the art
Physical and physiological acoustics
Creation and perception of human speech
Phonetics a phonology
Signal processing
Principles of speech synthesis
Speech segments and concantenative speech synthesis
Prosody, emotions
Principles of speech recognition
Statistical approaches
Modelling by means of HMM
Language modelling
Humanhuman and humancomputer communication
Dialogue
Dialogue Systems  Voice Browser Activity Standards (VoiceXML, SRGS, SISR, etc.)
User modelling
Dialogue systems and applications
PB106 Corpus Linguistic Project I
z 0/2 2 kr., podzim
 doc. Mgr. Pavel Rychlý, Ph.D.
 Goals:
The aim of the seminar is to provide students with a deeper knowledge
concerning a chosen area of corpus linguistics and practical checking
of this knowledge by working on the project. The popularisation of
corpus linguistics and other areas of language engineering is one of
the main goals of Natural Language Processing Laboratory at the
Faculty of Informatics.
Fundamental information about the Natural Language Processing Laboratory and corpus linguistics in general can be found on http://www.fi.muni.cz/nlp/.  Learning outcomes: Student will be able to: create a text corpus from different sources; use automatic tools for corpus annotation; evaluate accuracy of automatic tools; present evaluation results.
 Syllabus:
theme introduction: text corpora, parallel corpora, annotation, statistics, user interfaces
project selection
work on a project
presentation of project results and discussion
PB130 Introduction to Digital Image Processing
zk 2/1 3 kr., podzim
 doc. RNDr. Petr Matula, Ph.D.
 Prerequisities:
! PV131
Knowledge of highschool mathematics and understanding and design of simple algorithms is supposed.  Goals: The objective of the course is to introduce students to the area of digital image processing in order to get necessary background for studying other courses from the area.
 Learning outcomes: At the end of the course a student should: know the basic terminology related to digital image processing; know about the typical problems from digital image processing; understand the principle of simple algorithms for image processing and know how to use them. The course is intended as an introduction to digital image processing.
 Syllabus:
Human vision, image acquisition and basic image computer representations.
Color images.
Point transforms. Histogram.
Linear image filtering. Convolution.
Nonlinear filters.
Mathematical morphology.
Edge detection. Gradient.
Regions in binary images and their description.
Image segmentation.
Applications of digital image processing.
PB138 Modern Markup Languages and Their Applications
zk 2/1 3 kr., jaro
 doc. RNDr. Tomáš Pitner, Ph.D.  Mgr. Luděk Bártek, Ph.D.
 Prerequisities: Basic knowledge of formal languages, as well as some experience in OO programming (preferably in Java) and databases is required. Moreover, basic orientation in a markup language (HTML) and Internet services is needed, too.
 Goals: The subject acquaints with basic standards and principles of working with technologies of modern markup languages mainly based on XML, JSON and Yaml. Upon successful completion of this course, students will create modern applications written in TypeScript using React and modern markup languages that retrieve data from the backend using REST interfaces or GraphQL query language. At the same time, it can deploy its applications in the cloud using Kubernetes containers.
 Learning outcomes:
Students will be able to:
 explain the advantages, disadvantages and purpose of tagged data and documents;
 actively use terminology of markup languages
 choose the appropriate markup language for the application
 actively use XML
 Describe the characteristics of Internet technologies such as HTML 5, JavaScript, React, JSON, GraphQL and other modern web standards
 Describe the principle of Single Page applications
 describe the meaning of containers, their use in developing and hosting applications in the cloud  Syllabus:
XML
Structure and terminology of tagged documents. Standard family XML standards;
Standards of XML data analysis and processing. Document object model, eventdriven processing;
Navigation and querying in XML data. XPath
Yaml Syntax Yaml; Yaml application for CII configuration; Work with Docker containers and Kubernetes
Basics of modern Javascript applications; HTML document; Node ecosystem, NPM dependency management
Introduction to React, JSX / TSX language; Definition of components and their composition; Life cycle of components; Application status; Work with lists; Forms
JSON Syntax; Data types in JSON; Field and object representation; REST interface principles
GraphQL Introduction to GraphQL; Schemes; Queries; Mutation; Type system; Validation
PB150 ComputerSystems Architectures
k 2/0 2 kr., podzim
 doc. Ing. Michal Brandejs, CSc.
 Prerequisities:
! PB151 && ! NOW ( PB151 )
 Goals: At the end of the course student should be able to understand and explain a general technical principles about computer systems operation.
 Learning outcomes: At the end of this course the student will be able to understand basic principles of digital computers; understand the design of numerical systems used in computer technology and convert numbers between systems; will understand the principles of storing information, coding and storing texts. The student will understand the principles of the elementary processor and its programming at the lowest level.
 Syllabus:
Terms, history, computer generations, categories.
Numeral systems, differences between systems, integer, arithmetics.
Codes, internal, external, ECC.
Electronic circuits, memories: parameters, architecture.
Processor, programming, microprogramming.
Architectures: RISC/CISC, cache memories.
PB151 Computer Systems
zk 3/0 3 kr., podzim
 doc. Ing. Michal Brandejs, CSc.
 Prerequisities:
! NOW ( PB150 )
 Goals: At the end of the course student should be able to understand and explain a general technical principles about computer systems operation.
 Learning outcomes: At the end of this course the student will be able to understand basic principles of digital computers; understand the design of numerical systems used in computer technology and convert numbers between systems; will understand the principles of storing information, coding and storing texts. The student will understand the principles of the elementary processor and its programming at the lowest level. Student general principles compare with a specific implementation on Intel x86 processors and will be able to understand the implemented technologies of paging, caching and some others.
 Syllabus:
Terms, history, computer generations, categories.
Numeral systems, differences between systems, integer, arithmetics.
Codes, internal, external, ECC.
Electronic circuits, memories: parameters, architecture.
Processor, programming, microprogramming.
Processor architecture, memory addresses, operational modes, register structures.
Architectures: RISC/CISC, cache memories.
IEEE 754.
I/O devices and its connections.
PB152 Operating Systems
zk 2/0 2 kr., jaro
 RNDr. Petr Ročkai, Ph.D.
 Prerequisities:
! PB153 &&! NOW ( PB153 )
Understanding of computer system architectures to the extent covered in the subject PB150 or PB151.  Goals: The subject gives a highlevel overview of operating systems and their architectures. Students will learn about the basic components that make up an operating system and how they fit together. Students should also gain a basic understanding of design considerations and internal working of the individual components. Finally, the subject will cover services that the OS provides to userlevel programs and to users directly.
 Learning outcomes:
By the end of the course, the student should be able to:
 name and describe what makes up an operating system
 explain how the individual components work
 use operating system services both as a user and a programmer
 describe how resource sharing works: memory, cpu, etc.  Syllabus:
1. Anatomy of an OS
2. System Libraries and APIs
3. The Kernel
4. File Systems
5. Basic Resources and Multiplexing
6. Concurrency and Locking
7. Device Drivers
8. Network Stack
9. Command Interpreters & User Interfaces
10. Users and Permissions
11. Virtualisation & Containers
12. SpecialPurpose Operating Systems
13. Review
PB152cv Operating Systems  practicals
z 0/2 2 kr., jaro
 RNDr. Petr Ročkai, Ph.D.
 Prerequisities:
PB153  PB152  NOW ( PB152 )
It is recommended that the course is taken at the same time as PB071 Principles of lowlevel programming.  Goals: The course extends the material covered in PB152 Operating Systems, particularly in the form of practical exercises. The main goal is to learn how to use operating system services when writing programs.
 Learning outcomes:
The student, after completing this course, should know how to:
 automate simple tasks by writing scripts
 use the basic POSIX interfaces in C programs
 work with files and directories
 program a simple multiprocess service
 create an operating system image in a virtual machine  Syllabus:
1. command interpreter
2. compiler, linker, creating programs
3. scripts 1, make
4. working with files
5. processes, fork
6. interprocess communication
7. threads
8. networking
9. automation, scripts 2
10. permissions
11. virtualisation
12. creating an OS image
PB153 Operating Systems and their Interfaces
zk 2/0 2 kr., jaro
 RNDr. Jaroslav Ráček, Ph.D.
 Prerequisities:
! PB152 &&! NOW ( PB152 )
Basic knowledge of architectures and principles of computing systems. (at least on the level of PB150 or PB151).  Goals: The course introduces basics of operating systems ant heir interfaces.
 Learning outcomes: At the end of the course students will be able to understand and explain the basics of operating systems architectures, processes, memory and I/O management, filesystems. Based on the acquired knowledge student will be able to use services (API) offered by common OS types (Unix, Linux, Windows).
 Syllabus:
Operating systems architectures, kernel, interfaces, services
Process management, processes, threads, scheduling, process synchronization
Memory management
IO Management, File systems
Interfaces and services of Unix, Linux and Windows.
PB154 Database Systems
zk 2/1 3 kr., podzim
 prof. Ing. Pavel Zezula, CSc.
 Prerequisities: Ability to understend a computerspecialized English text.
 Goals: The goal of the course is to teach students principles of database systems.
 Learning outcomes:
On successful completion of the course the student will be able:
to formulate reasons for using database systems;
to understand basic principles of database systems;
to describe ways of indexing data;
to design a database schema;
to create queries for retrieving data.  Syllabus:
Introduction, terminology
Entityrelationship model
Relational model
Query language SQL
Integrity constraints
Relational database design
Storage and file structures
Indexing and hashing
Query processing
Transaction management
New trends in database systems
PB156 Computer Networks
zk 2/0 2 kr., jaro
 doc. RNDr. Eva Hladká, Ph.D.
 Goals: The main goal of this course is to provide the students with basic understanding of behaviour and principles of computer networks, with special emphasis on network architecture and protocols forming contemporary Internet. The course mainly focuses on general principles rather than the technologies currently used.
 Learning outcomes:
Graduate will understand the standardized network architecture model (ISO/OSI model) and its modification used in contemporary computer networks (TCP/IP model).
Graduate will have a good orientation in basic network protocols used in contemporary computer networks.
Graduate will understand basic principles of addressing, routing and switching in IP networks, he or she will be able to design a simple computer network.
Graduate will understand the behavior of UDP and TCP protocols in IP networks.
Graduate will understand requirements of individual applications and application classes, which they have on the computer network and its quality. He or she will also obtain a basic orientation in parameters defining quality of service.  Syllabus:
Computer networks' architecture, connectionoriented and connectionless networks, network models (ISO/OSI, TCP/IP) and network examples. Internet as a network of networks. Network protocols, standardization.
Overview of physical and data link layers' services  signals, transport media, media access control, building L2 networks.
Network layer  services, interaction with L2 layer, addressing, Internet protocols IPv4 and IPv6, local (LAN) and wide area (WAN) networks. Routing mechanisms, common routing protocols (RIP, OSPF, BGP), autonomous systems, multicast.
Transport layer  services, UDP and TCP protocols, mechanisms of ensuring transmissions' reliability. Quality of service.
Application layer  kinds of network applications (clientserver vs. peertopeer model), applications' requirements on computer networks. Examples of selected applications (e.g., DNS, HTTP/WWW, multimedia applications).
PB156cv Computer Networks  practicals
z 0/2 2 kr., jaro
 doc. RNDr. Eva Hladká, Ph.D.
 Prerequisities: Runs in parallel with PB156
 Goals: The goal of the exercise si to give students enrolled to the PB156 Computer Networks course an opportunity to get direct handson experience with network protocols and their use.
 Learning outcomes: The primary output follows those of PB156, but extending the presentations with direct use of the presented materials. The graduates will get practical experience with building simply networks, analysis the traffic, understanding most of the protocols presented in lectures through actually building them andor following them over the built network.
 Syllabus: Introduction, getting acquainted with Wireshark, the packet sniffing suite. Practical experience with HTTP, differences between protocols, simple get, put, retrieval of longer protocols, simple authentication DNS, dns lookup, ipconfig, dns tracing TCP protocol, analysis of TCP packets, TCP congestion control UDP protocol, analysis of UDP packets IP protocol, analysis of IP packets, packet fragmentation, ICMP Ethernet and ARP, Ethernet frames, ARP caching DHCP protocol, packets analysis, setting up a DHCP server (The structure is inspired and to large extent follows the Wireshark Laboratory of Kurose and Ross)
PB161 C++ Programming
zk 2/2 4 kr., podzim
 RNDr. Nikola Beneš, Ph.D.
 Prerequisities:
PB071 && SOUHLAS
Students are also required to have user experience with Unix OS or similar, as homework is submitted and tested on a Unix server.  Goals: The goals of the course are to make the students familiar with the C++ programming language (as defined by ISO C++14) and the objectoriented programming principles (as implemented by C++). The course focuses mainly on using the standard library, efficient design of own data structures (classes), the principles of resource management, and the basic principles of objectoriented design.
 Learning outcomes:
After finishing this course, a student should be able to:
 write C++ programs utilizing the tools of modern C++ (as defined by ISO C++14);
 use a significant part of the standard C++ library;
 create userdefined data types (classes) in C++;
 understand the value semantics of C++ and explain the difference between this semantics and other popular languages' semantics;
 understand the principles of objectoriented programming;
 design simple objectoriented architectures and implement them;
 use exceptions in an efficient and reasonable way;
 use modern development tools (IDE, debugger, version control, build automation tools, testing frameworks...);
 follow best practices guidelines for C++ programming.  Syllabus:
Basic features of C++ (with respect to C). Standards, compilers.
Value and reference semantics of C++.
Basic principles of object oriented programming (OOP). Object programming methodologies.
User defined data types. Classes in C++. Class components.
OOP in C++. Encapsulation, Inheritance, Polymorphism.
Dynamic memory allocation. Dynamic memory management. Automatic and class pointers.
Input and output in C++.
Exception handling. Defensive programming.
Templates. Standard C++ library and standard template library. Libraries for numeric computing.
Application of object oriented design and design patterns in C++.
Other OOP languages. Java and C# as compared to C++.
PB161 C++ Programming
zk 2/2 3 kr., jaro
 RNDr. Petr Ročkai, Ph.D.
 Prerequisities:
PB071
Students are also required to have user experience with Unix OS or similar, as homework is submitted and tested on a Unix server.  Goals: The goals of the course are to make the students familiar with the C++ programming language (as defined by ISO C++14) and the objectoriented programming principles (as implemented by C++). The course focuses mainly on using the standard library, efficient design of own data structures (classes), the principles of resource management, and the basic principles of objectoriented design.
 Learning outcomes:
After finishing this course, a student should be able to:
 write C++ programs utilizing the tools of modern C++ (as defined by ISO C++14);
 use a significant part of the standard C++ library;
 create userdefined data types (classes) in C++;
 understand the value semantics of C++ and explain the difference between this semantics and other popular languages' semantics;
 understand the principles of objectoriented programming;
 design simple objectoriented architectures and implement them;
 use exceptions in an efficient and reasonable way;
 use modern development tools (IDE, debugger, version control, build automation tools, testing frameworks...);
 follow best practices guidelines for C++ programming.  Syllabus:
Basic features of C++ (with respect to C). Standards, compilers.
Value and reference semantics of C++.
Basic principles of object oriented programming (OOP). Object programming methodologies.
User defined data types. Classes in C++. Class components.
OOP in C++. Encapsulation, Inheritance, Polymorphism.
Dynamic memory allocation. Dynamic memory management. Automatic and class pointers.
Input and output in C++.
Exception handling. Defensive programming.
Templates. Standard C++ library and standard template library. Libraries for numeric computing.
Application of object oriented design and design patterns in C++.
Other OOP languages. Java and C# as compared to C++.
PB162 Java
zk 2/2 3 kr., podzim
 doc. RNDr. Tomáš Pitner, Ph.D.  RNDr. Radek Ošlejšek, Ph.D.
 Prerequisities: Command of a procedural programming language (Python, C) in the extent of the IB001 Introduction to Programming using C, IB111 Foundations of Programming, or IB113 Introduction to Programming and Algorithms.
 Goals:
During this course, students:
gain the basic knowledge of object oriented programming in Java;
become familiar with the basic Java and OO terminology, as well as necessary language syntax and semantics rules;
be able to analyze, design and implement simple software solutions with the appropriate tools.  Learning outcomes:
At the end of the course students should be able to:
explain and use principles of object paradigm;
use basic principles of objectoriented design for coding;
create programs on Java SE platform;
use development tools efficiently, e.g. IDE, unit tests, git, etc.;  Syllabus:
Introduction to Java  principles, history. Java development lifecycle, basic development tools.
Basic concepts and terminology of objectoriented programming  class, instance (object), variable, method. Encapsulation.
Cooperation and communication among objects.
Interfaces, specification, implementation.
Basic programmer's conventions  coding style, naming, documentary comment, API documentation.
Unit testing with junit.
Inheritance, polymorphism. Class hierarchy. Architecture of Java programs  methods, classes, packages.
Abstract classes. Access modifiers.
Basic program constructs. Primitive datatypes, object types and arrays.
Exceptions. Builtin exceptions, design of custom exceptions.
Java containers.
Java I/O.
Basic design patterns.
PB162 Java
zk 2/2 3 kr., jaro
 doc. RNDr. Tomáš Pitner, Ph.D.  RNDr. Radek Ošlejšek, Ph.D.
 Prerequisities: Command of a procedural programming language (Python, C) in the extent of the IB001 Introduction to Programming using C, IB111 Foundations of Programming, or IB113 Introduction to Programming and Algorithms.
 Goals:
During this course, students:
gain the basic knowledge of object oriented programming in Java;
become familiar with the basic Java and OO terminology, as well as necessary language syntax and semantics rules;
be able to analyze, design and implement simple software solutions with the appropriate tools.  Learning outcomes:
At the end of the course students should be able to:
explain and use principles of object paradigm;
use basic principles of objectoriented design for coding;
create programs on Java SE platform;
use development tools efficiently, e.g. IDE, unit tests, git, etc.;  Syllabus:
Introduction to Java  principles, history. Java development lifecycle, basic development tools.
Basic concepts and terminology of objectoriented programming  class, instance (object), variable, method. Encapsulation.
Cooperation and communication among objects.
Interfaces, specification, implementation.
Basic programmer's conventions  coding style, naming, documentary comment, API documentation.
Unit testing with junit.
Inheritance, polymorphism. Class hierarchy. Architecture of Java programs  methods, classes, packages.
Abstract classes. Access modifiers.
Basic program constructs. Primitive datatypes, object types and arrays.
Exceptions. Builtin exceptions, design of custom exceptions.
Java containers.
Java I/O.
Basic design patterns.
PB165 Graphs and networks
zk 2/0 2 kr., podzim
 prof. RNDr. Luděk Matyska, CSc.  doc. RNDr. Eva Hladká, Ph.D.  doc. Mgr. Hana Rudová, Ph.D.
 Goals: The lecture provides basic information about graphs and graph algorithms, used in the computer networks. Special emphasis is taken to present planning and scheduling as specific graph problems, as well as the load distribution problem in distributed systems.
 Learning outcomes:
Graduate will be able to explain several graph algorithms and their use in computer systems and networks.
Graduate will be able to analyze particular problem and transform it into appropriate graph representation.
Graduate will be further able to analyze and solve simple scheduling and planning problems.
Graduate will be able to solve simple graph problems.
Graduate will be able to interpret computer network behavior in terms of graph theory.  Syllabus:
Graph and computer networks, trees, root trees, binary trees.
Graph searching. Spanning tree algorithms. Shortest path.
Planning and scheduling problems and their graph representation.
Project scheduling and critical path method.
Graph colouring and timetabling.
Data transfer planning.
List scheduling, mapping heuristics, clustering.
Load balancing.
Switching and routing algorithms, GMS networks planning, peer to peer networks.
P2P networks, problem od adding and deleting node, routing.
Graphs for modeling and simulation Internet type networks.
Network Coding.
PB168 Introduction to DB and IS
zk 2/2 3 kr., podzim
 doc. RNDr. Vlastislav Dohnal, Ph.D.  RNDr. Jaroslav Ráček, Ph.D.
 Prerequisities:
! PB154 && ! NOW ( PB154 )
Basic knowledge of technical English  Goals: The aim of the course is to introduce principles of information and database systems to the students. In detail, issues of creating information systems that use database systems will be tackled. Especially, we focus on the topics of software engineering, database design and data modeling, querying and other functionality including analytical tools. The aim of onehour seminars is to exercise selected phenomena in practice. The students will get an idea about the overall problem of design and development of information systems and its individual stages. The students will learn principles of database systems from the theoretical and practical points of view. The students will be able to use a relational database system, store and query its data.
 Learning outcomes:
Student will be able to:
 Explain basic principles and procedures in designing software;
 Apply these procedures to create a model of smaller information system;
 Explain the principles of relational database management systems;
 Design and implement relational model for data storage in the information system;
 formulate basic SQL statements (data updates and querying in particular).  Syllabus:
Introduction to information systems.
What is an information system, what is its purpose, what is its task and how it is useful.
The common structure and components of an information systems, examples.
Modern information systems.
Design and development of information systems. Lifecycle of information system. Analysis, design of systems. Structured analysis. Data Flow Diagram, minispecification.
Yourdon structured analysis. System interface model. Function model. Functional decomposition.
UML. Use case diagram. Sequence diagram. Class diagram.
Introduction to database systems. What is a database management system, what is its task and use, examples. Data abstraction, models, examples.
Architecture of database systems. Design of database, querying. Query languages. Architecture of database. Users of database.
Entityrelationship model. Attributes, entity sets. Relationships, cardinality. Definition of key, primary key.
Relational model. Relation, attributes, relationships. Transition to/from entityrelationship model. Referential integrity.
Database design. Functional dependencies. Normal forms. Decomposition.
SQL query language. Introduction, basic statements. Select, joins, aggregation functions. Database updates and deletions. Data definition, views.
Query processing. Basic principles, examples. Indexing. Introduction to query optimization. Transactions. Properties of transaction processing.
Analytical tools. OLAP – Online Analytical Processing. Data mining. Applications of databases.
Specifics of database systems. Technology of accessing databases. Geographical information systems. Multidimensional databases. Temporal databases.
PB169 Computer Networks and Operating Systems
zk 2/2 4 kr., jaro
 RNDr. Jaromír Plhák, Ph.D.
 Prerequisities:
! PB156 && ! PB152 && ! PB153
Basic knowledge of computational system is assumed.  Goals: The aim of the subject is to give an introductory overview of operating systems and computer networks. At the end of the course students will be able to understand basic principles of operating systems, their structure and functionality. Students will also understand basics of the computer networks. Seminars will allow students to practice the theoretical principles in real world situations.
 Learning outcomes:
At the end of the course the student understands:
 operating systems architectures;
 processes and threads management;
 planning activities processor;
 synchronization of processes;
 storage virtualization;
 control of inputs and outputs;
 network architecture, OSI model;
 data transmission;
 media access;
 quality of service in network environment.  Syllabus:
OS structure (incl. OS services and interface)
Internal functionality of OS(incl. memory management,CPU scheduling)
Cooeration of processes (including. deadlock and starvation, IPC)
I/O operations, files (incl. filesystems)
Introduction to IT security (authentication, data confidentiality, logs and audit)
Conceptual model of network environment (incl. network architecture, OSI model)
Functionality of network applications
Data transmission
Media access
Quality of service in network environment
Case study: WAN (Internet)
Case study: LAN
PB170 Seminar on Digital System Design
k 0/2 2 kr., podzim
 RNDr. Zdeněk Matěj, Ph.D.
 Goals: At the end of the course students should be able to: understand main concepts of digital system design (combinational and sequential circuits); know the realization of basic design (adders, counters, state automata); create and simulate simple design.
 Learning outcomes:
At the end of the course, students will be able to:
formally describe a logic circuit composed of combinational or sequential circuits
design a simple digital system
simulate the behavior of digital circuits
basic design of logic circuits in HDL Verilog
 Syllabus:
Fundamentals of digital systems: description of a logic circuit, design methods.
Basic entities: primitives (gates), combinatorial circuits, sequential circuits.
Practical exercises with tools like Hades and Quartus.
A short introduction into HDL, Verilog.
PB171 Seminar on Digital System Architecture
k 0/2 2 kr., jaro
 RNDr. Zdeněk Matěj, Ph.D.  prof. Ing. Václav Přenosil, CSc.
 Goals: The main objectives of the seminar are to verify the knowledge acquired during the Digital computer architecture course. The students will learn about the structure and the design of systems for selected microcomputers, they will learn to programme them in the Assembler language or C language and at the end of the semester, they will create their own project. The lessons will be held in the Digital system construction laboratory.
 Learning outcomes:
At the end of the course, students will be able to:
practically design a digital system
program using a language assembler and C designed digital system
to practically assemble and integrate a digital system
 Syllabus:
Architecture of 8bit controllers (PIC12 family).
Assembly language for target platform.
General purpose I/O.
Timers and interrupt handling.
EEPROM handling.
Applications of the analogdigital converter.
C language compiler for 8bit platforms.
Using C language for target platform
Controlling shift register.
Bus drivers: UART, SPI, I2C.
Advanced peripherals.
Semestral project.
PB172 Systems Biology Seminar
k 0/2 2 kr., podzim
 RNDr. David Šafránek, Ph.D.
 Prerequisities:
souhlas
The seminar is focused on studying and presentation of selected scientific articles/book chapters in the field of computational systems biology. Students are assumed to understand elementary notions from biology and chemistry (grammar school level), to know basic principles of the systems biology paradigm, and to be interested in deeper understanding of the field. Previous successful studying of PB050 is welcome.  Goals: At the end of the course students should be able to: understand key results of computational systems biology; work with a scientific paper; extract the information from literature; prepare and give an oral presentation.
 Learning outcomes:
At the end of the course students should be able to:
 analyse a scientific paper;
 combine and infer the information from scientific literature;
 discuss pros and cons of computational methods in systems biology;
 contrast conceptual errors in analysed publications by employing suitable arguments.  Syllabus:
 Overview of elementary notions and paradigms
 Selection of seminar topics (papers) and explanation of their significance
 Studying of the selected topics
 Presentation and discussion
PB172 Systems Biology Seminar
k 0/2 2 kr., jaro
 RNDr. David Šafránek, Ph.D.
 Prerequisities:
souhlas
The seminar is focused on studying and presentation of selected scientific articles/book chapters in the field of computational systems biology. Students are assumed to understand elementary notions from biology and chemistry (grammar school level), to know basic principles of the systems biology paradigm, and to be interested in deeper understanding of the field. Previous successful studying of PB050 is welcome.  Goals: At the end of the course students should be able to: understand key results of computational systems biology; work with a scientific paper; extract the information from literature; prepare and give an oral presentation.
 Learning outcomes:
At the end of the course students should be able to:
 analyse a scientific paper;
 combine and infer the information from scientific literature;
 discuss pros and cons of computational methods in systems biology;
 contrast conceptual errors in analysed publications by employing suitable arguments.  Syllabus:
Overview of elementary notions and paradigms.
Selection of seminar topics (papers) and explanation of their significance.
Studying of the selected topics.
Presentation and discussion.
PB173 Domain specific development in C/C++
k 0/2 2 kr., podzim
 RNDr. Petr Ročkai, Ph.D.
 Prerequisities:
PB071  SOUHLAS
A basic knowledge of C or C++ programming language and userlevel knowledge of operating system (Unix or Windows) relevant to chosen thematic group is required. Absolved PB071 or teacher's approval is mandatory requirement for enrollment.  Goals: At the end of the course students should be able to: use modern development tools (IDE, debugger, version control...); follow and use good programming practices; orient in realworld programming problems in area of student focus; create maintainable and extensible applications; find and remove bugs in programs by debugging and prevent its occurrence by systematic testing; correctly and effectively work with memory and large data sets; optimize application usage of available system resources;
 Syllabus: Each seminar group has its own, domainspecific syllabus. The focus of the subject is practical programming and related skills  version controll, debugging, testing and so on.
PB173 Domain specific development in C/C++
k 0/2 2 kr., jaro
 RNDr. Petr Ročkai, Ph.D.
 Prerequisities:
PB071  SOUHLAS
A basic knowledge of C or C++ programming language and userlevel knowledge of operating system (Unix or Windows) relevant to chosen thematic group is required. Absolved PB071 or teacher's approval is mandatory requirement for enrollment.  Goals: Enhance the capability of programming in C++ based on development in particular selected application domain.
 Learning outcomes: At the end of the course students should be able to: use modern development tools (IDE, debugger, version control...); follow and use good programming practices; orient in realworld programming problems in area of student focus; create maintainable and extensible applications; find and remove bugs in programs by debugging and prevent its occurrence by systematic testing; correctly and effectively work with memory and large data sets; optimize application usage of available system resources;
 Syllabus:
Individual thematic groups (list is available in Teacher's information area) have common themes, but use practical problems from their own areas to demonstrate and practice it. Basic covered topics are:
Introduction to area of particular thematic group
Lifecycle of created application
Code maintainability
Debugging
Work with memory
Work with large data sets
Systematic testing: integration and unit testing
Robust error and exception handling
Performance and resource optimization
Application usability
PB175 Project managment and project
z 1/0 5 kr., jaro
 RNDr. Jaroslav Ráček, Ph.D.  Bc. Alena Hooperová
 Prerequisities:
PB007 && PB006
PB006  Goals: The course aim is to make students experience a real work on a specified complex software, where student's primary task is to program (code) a specified functionality. She will also be responsible for the integration of the programming results into the production version of the software involved
 Learning outcomes: After successful completion student will be able  to understand a complex project specification and orient in a complex code  to program and test (validate) specified function in accordance with the project specification  to integrate results (code) into a production version of the software involved  to document and pass over results of her work in a form that allows taking over by another team member (developer of the same software product)
 Syllabus: Time steps:  Selection of the project from a provided list or accepted student's project specification proposal  Individual (or team) work on the project  Regular consultations with the technical supervisor  Regular consultation with a faculty supervisor (assigned whem the technical supervisor is not a faculty]  Final project report (text and code), formally accepted by the teacher
PA008 Compiler Construction
zk 3/0 3 kr., podzim
 prof. RNDr. Mojmír Křetínský, CSc.
 Prerequisities: Finite automata and regular languages (see IB005); pushdown automata and contextfree languages, especially the parsing methods of deterministic contextfree languages (LL and LR techniques)  see IA006.
 Goals: At the end of the course students should be able to understand and explain principles, methods, and techniques used in design and implementation of compilers programming languages and the related systems based on analysis of an input text and synthesis of the corresponding output. Students should be able make reasoned decisions about design of these systems. Based on acquired knowledge, students should employ principles and techniques of compiler writing and program analysis in related areas of computer science and system desing.
 Learning outcomes:
On successful completion of the course students will be able to:
1. Specify and analyse the lexical, syntactic and semantic structures of language features and separate the lexical, syntactic and semantic analyses into phases for a compiler.
2. Implement a scanner, parser, and semantic analyser with/without the aid of automatic SW tools.
3. Write an intermediate (IR) code generator. Turn IR code into machine code. Describe techniques for intermediate code optimisation.  Syllabus:
Tasks of compiling, phases of a compiler, compiler structure.
The role of lexical analysis. Structure, modules and interfaces. Construction.
Parsing. The role of parser, interfaces and imlementation.
Attribute grammars (AG) and syntax directed translation. Description of language properties via AGs.
Semantic analysis, its tasks and implementation. Name and scope analysis, type checking.
Runtime enviroments, storage organization and allocation, stack and heap.
Onepass and multipass compiling. Intermediate code generation
Techniques for code generation. register allocation.
Error recovery.
Local optimization. Flow analyses, global optimization.
Compiler generators, techniques and tools.
PA010 Intermediate Computer Graphics
zk 2/0 3 kr., podzim
 prof. Ing. Jiří Sochor, CSc.
 Prerequisities: Basic algebra and geometry. Computer graphics fundamentals.
 Goals: Lectures cover classical and the most important fields of interest in computer graphics and current research results. Students should gain the purview of the critical issues and research trends in computer graphics field.
 Learning outcomes:
At the end of the course students
 will understand the theoretical concepts of modern computer graphics;
 will be able to judge and evaluate the research and development trends in the field;
 will be able to asses the complexity of computer graphics algorithms;
 will be able to design complex graphics systems in various application areas.  Syllabus:
Short recap on modelling and rendering
3D models and data structures
Polygon and Triangular meshes: problems, related tasks, filtering and remeshing, simplification and approximation
Subdivision surfaces
Textures: mapping, filtering, synthesis
3D modelling techniques: global and local deformations, implicit modelling
Space subdivision and searching methods: scenebased approaches, spacebased approaches
Realtime rendering techniques: culling, PVS approaches
Shadows: hard shadows, soft shadows
Point set and image registration
Warping and morphing
The topics are explained with both mathematical description as well as its algorithmic counterpart. Students will learn theoretical basis of the abovedescribed concepts, algorithms, and representations.
PA017 Software Engineering II
zk 2/0 2 kr., podzim
 RNDr. Jaroslav Ráček, Ph.D.
 Goals: The goal of this course is to explain software engineering approached in managing work on large projects.
 Learning outcomes:
At the end of the course students should be able to:
understand and explain problems of measuring effects of information technologies.
make reasoned decisions about the benefits of information technologies;
make reasoned decisions about the support of administration and management in the software lifecycle, together with related social and ergonomic issues.  Syllabus:
SW development process. The main activities in the development process and different approaches.
RUP in terms of development and management activities.
Configuration management, software version control, refactoring and integration.
The issue of testing and test process management, use case driven testing.
Types of tests, testing tools, automation testing, incident management. A user interface, the design, and tuning.
Software metrics, refactoring.
Software maintenance, software reusability.
Debugging and deployment.
SW quality and evaluation, ISO 9000, ISO 14598.
PA018 Advanced Topics in Information Technology Security
zk 1/1 4 kr., podzim
 prof. RNDr. Václav Matyáš, M.Sc., Ph.D.  Mgr. Kamil Malinka, Ph.D.  doc. RNDr. Tomáš Pitner, Ph.D.  RNDr. Adam Kučera, Ph.D.  RNDr. Daniel Tovarňák, Ph.D.
 Prerequisities:
PV017  PV079  PV157  IV054
Knowledge of English (intermediate level). Students shall also pass at least one of the following courses (PV017, PV079, PV157, IV054) before registering this course.  Goals:
To teach the students to:
understand advanced concepts in designing, developing, managing and analyzing security systems;
review interdependencies between system components and point out major vulnerabilities;
design security mechanisms;
reflect requirements and demands that have to be addressed when solving problems and security issues in common computer systems;
create both written project report and (oral) presentation of the project;
argue for their solution or analysis in the ways implied above.  Learning outcomes:
Graguate of this course shall be able to:
understand advanced concepts in designing, developing, managing and analyzing security systems;
review interdependencies between system components and point out major vulnerabilities;
design security mechanisms;
reflect requirements and demands that have to be addressed when solving problems and security issues in common computer systems;
create both written project report and (oral) presentation of the project;
argue for their solution or analysis in the ways implied above.  Syllabus:
This advancedlevel course reviews selected topics in IT security in a greater depth. Students are expected to work on several assignments and a term project.
This course is given in English. Assignments and the term project are to be handed in also in English, yet final exam answers are accepted in both Czech and English. Topics include issues related to the following areas:
Applications of cryptographic mechanisms, namely of public key techniques. Key management and protocols.
Security policies. Risk assessment and analysis. Role of standards and evaluation (criteria).
Authentication, namely issues of biometric authentication.
Security in communications and networks.
Secure hardware, smartcards.
Trust, electronic and/vs. real relations.
Malware.
Security of critical infrastructures.
PA026 Artificial Intelligence Project
k 0/2 2 kr., jaro
 doc. RNDr. Aleš Horák, Ph.D.
 Prerequisities:
PB016
 Goals: The aim of the seminar is to provide students with a deeper knowledge concerning a chosen area of artificial intelligence and practical checking of this knowledge by working on individual project. The choice of programming language for the project is not limited, for recommended topics see PB016 Artificial Intelligence I.
 Learning outcomes:
Students will be able to:
 design, analyze and elaborate a solution of a selected task in the field of artificial intelligence;
 present the selected stepbystep approach;
 justify the chosen implementation process;
 design an evaluation process of the created application and process its results.  Syllabus:
Study of a chosen area of artificial intelligence
Project implementation.
PA036 Database System Project
z 0/2 2 kr., jaro
 doc. RNDr. Vlastislav Dohnal, Ph.D.
 Prerequisities: Knowledge of database systems, data modeling and software engineering is expected and positive attitude to programming
 Goals: The aim of the course is to analyze and create the assigned problem from the area of data processing, implement a solution to the problem and present results, typically performance results. The implementation assumes the use of a current database system, not excluding database installation in portable devices.
 Learning outcomes: Upon completion of the course the student will be able to:  use a database storage system;  study and use advanced data processing techniques;  design and implement application performance tests;  document the test results and present them.
 Syllabus:
Presenting project topics, creating a detailed assignment.
Planning and managing project implementation using the GANTT chart.
Project solution consultation.
Presentation of a project solution proposal.
Implementing the solution and consulting it.
Executing performance tests.
Presentation of the project implementation, results achieved and evaluation of the work time schedule.
PA037 Compiler Project
z 0/2 2 kr., jaro
 prof. RNDr. Antonín Kučera, Ph.D.
 Prerequisities: PA008 Compiler Construction
 Goals:
The aim of the seminar is to provide students with a deeper
knowledge about the structure of programming languages
and the funcionality of the corresponding compilers.
To pass this seminar, students have to design a simple
programming language and implement its compiler.
It is possible to work in groups of 24 members; the
complexity of the project should be proportional to the
number of group members.
Main objectives of the course can be summarized as follows: to understand basic design principles of programming languages and their compilers; to design a simple programming language and implement its compiler.  Learning outcomes: Own experience with implementation of a compiler.
 Syllabus:
The logical structure of a compiler. Formalisms used to
specify the individual modules.
The scanner. Regular expressions. Tokens and their precedence.
The parser. Topdown and bottomup analysis.
The constrainer. Attribute grammars. Attribute flow. Attribute evaluation.
The code generator, optimisations.
A complete specification of a simple onepass optimising compiler.
Symbol tables as attributes. Declarations, type checking, scope analysis.
Functions. Stack frames. Passing of parameters. Conventions of C and Pascal.
Input and Output. Unix and the C language.
I386 assembler, conventions of the C language.
PA039 Supercomputer Architecture and Intensive Computations
zk 2/0 2 kr., jaro
 prof. RNDr. Luděk Matyska, CSc.
 Prerequisities:
! IA039
At least elementary knowledge of programming languages FORTRAN, C and eventually C++ is expected.  Goals: The main goal of this lecture is to provide information about architectures of highperformance computing systems and basic programming methods for vector and parallel computers. The first part focuses on the hardware, during the second part general optimization methods and programming methodology for parallel computers is discussed. The last part of the lecture is aimed at the programming of distributed systems.
 Learning outcomes:
The graduate will be able to understand and explain properties of modern processors.
The graduate will be also able to analyze the program code and propose optimizations for a particular processor.
The graduate will be able to design and implement a simple parallel program to solve a particular problem.
The graduate will be able to design and realize benchmarks of computer systems or applications.  Syllabus:
Highperformance vector and superscalar processors.
Uniprocessor computers, computers with a small number of processors, massively parallel computers; distributed systems.
Performance measurements, LINPACK test, TOP 500 list.
Highperformance uniprocessor systems, programming languages, the methodology of efficient program writing, basis optimization methods for vector and superscalar computers.
Distributed systems, data and task decomposition, coarse grain parallelism, programming systems (PVM, LINDA, ...). Multiprocessor systems with shared memory, programming languages, decomposition of algorithms, basic optimization methods for a small number of processors.
Massively parallel systems, parallel algorithms, fine grain parallelism.
Shared, distributed, and distributed shared memory; other alternatives. Sdílená, distribuovaná a distribuovaná sdílená paměť.
Scalability of computers and tasks.
PA052 Introduction to Systems Biology
zk 2/0 2 kr., jaro
 prof. RNDr. Luboš Brim, CSc.  RNDr. David Šafránek, Ph.D.
 Goals: Graguate of this course shall be able to: understand the basic concepts of systems biology; understand the role of computerscience in systems biology; employ abstract computerscientific thinking in the field of biological systems modeling.
 Learning outcomes:
After the course the student will be able:
 to analyse and discuss pros and cons of computational methods in systems biology;
 to interpret the paradigm of systems biology;
 to identify basic tasks employed in systems biology;
 to judge ideas and opinions in front of students and the teacher.  Syllabus:
History and scope of systems biology.
Elementary biological notions.
Elementary notions of systemic paradigm  biological process studied in terms of a complex system.
Model organisms.
Sources of biological data  Databases of biological knowledge.
Research scenario in systems biology, role of computer science.
Models in systems biology, model databases.
Examples of systems biology application.
Design and reconstruction of biological networks  Synthetic Biology.
Information in biology and about biology.
PA053 Distributed Systems and Middleware
zk 2/0 2 kr., jaro
 RNDr. Michal Batko, Ph.D.
 Goals: The goal of the course is to introduce possible solutions to problems related to the design of a robust distributed application.
 Learning outcomes:
At the end of the course students should be able to:
understand and explain the abstractions provided by operating systems and middleware layers in a distributed environment
organize an analysis of the communication, replication, sharing issues,
work with information on the abstractions provided by the distributed operating system kernels,
work with information on the abstractions provided by the middleware layers,
assess specific system studies,
use modern technologies to create distributed applications.  Syllabus:
Distributed system concepts, benefits, problems, typical architectural patterns (single system image, clientserver, service oriented).
Technological solutions related to distributed systems (communication, replication, sharing, migration).
Operating systems and middleware for distributed systems, provided abstractions, and specific system studies (CORBA, RMI, Remoting, EJB, CCM, JavaSpaces, and others).
PA054 Formal Methods in Systems Biology
zk 2/0 2 kr., jaro
 RNDr. David Šafránek, Ph.D.
 Prerequisities: The course requires elementary knowledge of formal techniques achieved at bachelor level. This is an interdisciplinary course. The course is recommended especially for students of Bioinformatics. The course is also suitable for students of all other applied and theoretical study branches, namely Parallel and Distributed Systems and Theoretical Computer Science.
 Goals: At the end of this course students should be able to: understand the actual trends and open problems in the domain of formal methods for complex systems modeling; apply formal methods in the modern biological research in systems biology; employ relevant software tools to solve particular problems in modeling and simulation of biological systems.
 Learning outcomes:
At the end of this course students should be able to:
 define the actual problems solved in the domain of formal methods for complex systems modelling and analysis;
 apply formal methods in systems biology;
 use relevant software tools to solve particular problems in modeling and simulation of biological systems.  Syllabus:
Problem definition: Modeling and analysis in systems biology. Motivation for application of formal methods.
Overview of formal methods employed for analysis of biological hypotheses. Model specification. Model size and state explosion problem.
Modeling and simulation: Deterministic vs. nondeterministic models. Continuous vs. discrete models. Models with parameter uncertainty. Approximation and abstraction. Simulation and analysis.
Qualitative models: Boolean networks, Petri nets.
Quantitative models: Timed Boolean networks, Markov chains, Stochastic Petri nets, relations to continuous and hybrid models.
Formal specification of models: Kappacalculus, Stochastic Petri nets, Stochastic PiCalculus and related formalisms.
Model checking: Application in the process of model validation. Properties of in silico models vs. in vivo/in vitro experiments. Model checking tools for biological models.
Models with parameter uncertainty: Parameter estimation. Robustness analysis.
PA055 Visualizing Complex Data
zk 1/1 2 kr., podzim
 Ing. Matej Lexa, Ph.D.
 Prerequisities: Elementary programming skills and interest in R and Processing (scripting and programming languages)
 Goals: Students will get aquainted with complex data in bioinformatics and selected other disciplines and their visualization, using examples in R and PROCESSING languages or scientific literature.
 Learning outcomes:
At the end of the course students will be able to:
explain the basic principles and goals of visualization
prepare data for visualization
evaluate existing visualizations
create their own static or interactive visualization  Syllabus:
1. Introduction to data visualization
2. The R computing environment and its visualization tools
3. The Processing computing environment and its visualization tools
4. Visualization and data types in bioinformatics and system biology
4. Data preprocessing (dimensionality estimates and reduction, PCA, clustering, similarity metrics, multidimensional scaling)
6. Review of isualization techniques (plots, histograms, trees and other graphs, maps, hybrid visualization)
7. Examples of visualization in bioinformatics, systems biology and other disciplines
PA081 Programming Numerical Computations
zk 2/0 2 kr., jaro
 Mgr. Aleš Křenek, Ph.D.
 Prerequisities: Prerequisites: knowledge of onedimensional calculus, linear algebra, programming in C and elements of objectoriented programming.
 Goals: This course is devoted to mathematical and programming techniques needed for exact solution of numerical problems.
 Learning outcomes: Student will understand basic methods used for solving numerical problems and will be able to suggest and validate methods to be used for solving a particular numerical computing problem.
 Syllabus:
Representation of floatingpoint numbers. Rounding errors of elementary
operations. Accuracy and stability of numerical computations.
Solution of nonlinear equations. Optimization of functions in one and more dimensions. Numerical integration.
Eigenvalues and eigenvectors.
Practical solution of linear algebra problems. Stability of the solution of the least squares problem.
Automated differentiation.
Numerical simulation of dynamic behaviour of physical systems.
PA093 Computational Geometry Project
z 0/1 2 kr., podzim
 doc. RNDr. Barbora Kozlíková, Ph.D.
 Prerequisities: It is recommended to concurrently attend or finish the M7130 course before attending this course. Moreover, the student should have the knowledge of C++ or Java programming language.
 Goals: The project is focused on solving the tasks from computational geometry area. The aim is programming and visualization of classical 2D and 3D algorithms. Students gain practical experience in implementation and integration of complex algorithms from the field of computer graphics.
 Learning outcomes: After passing this course, the student will be able to:  compare computational geometry algorithms with respect to their complexity,  choose the most appropriate computational geometry algorithms for given problems, according to their complexity and input requirements,  implement computational geometry algorithms described by a pseudocode.
 Syllabus: The purpose of this seminar is to discuss, extend and elaborate the subject area presented in M7130 , especially with respect to its practical applications. Some selected geometric algorithms will be implemented during the course. The aim of the first task is to demonstrate the problems regarding programming of computational geometry algorithms. Then an implementation of an essential and substantially more complicated advanced algorithm follows. Students gain practical experience with the implementation of advanced computational geometry applications.
PA096 Seminar of Dialog Laboratory
k 0/2 2 kr., podzim
 doc. RNDr. Ivan Kopeček, CSc.  RNDr. Jaromír Plhák, Ph.D.
 Prerequisities:
souhlas
 Goals: The aim of the seminar is to create a common platform for discussing issues related to ongoing research projects within the laboratory . The purpose is to present current projects' status to the other lab members and stir up a discussion that leads to new solutions and approaches. The projects are solved within small, usually disjoint, teams but led by lab members.
 Learning outcomes:
After completing this course, student will be able to:
 to present the state of the art of the research projects solved within the laboratory;
 present a research summary on the topics related to the areas of expertise of the laboratory.  Syllabus: The content of the seminar is formed by presentations of current status of ongoing research projects of the laboratory . An inherent part of the seminar constitutes presentations of new research trends. The backbone of the seminar is formed by presentations by PhD students.
PA096 Seminar of Dialog Laboratory
k 0/2 2 kr., jaro
 doc. RNDr. Ivan Kopeček, CSc.  RNDr. Jaromír Plhák, Ph.D.
 Prerequisities:
souhlas
 Goals: The aim of the seminar is to create a common platform for discussing issues related to ongoing research projects within the laboratory. The purpose is to present current projects' status to the other lab members and stir up a discussion that leads to new solutions and approaches. The projects are solved within small, usually disjoint, teams but led by lab members.
 Learning outcomes:
After completing this course, student will be able to:
 to present the state of the art of the research projects solved within the laboratory;
 present a research summary on the topics related to the areas of expertise of the laboratory.  Syllabus: The content of the seminar is formed by presentations of current status of ongoing research projects of the laboratory An inherent part of the seminar constitutes presentations of new research trends. The backbone of the seminar is formed by presentations by PhD students.
PA103 Objectoriented Methods for Design of Information Systems
zk 2/0 2 kr., podzim
 RNDr. Radek Ošlejšek, Ph.D.
 Prerequisities: Knowledge of objectoriented programming principles, core knowledge of software engineering, knowledge of UML models.
 Goals:
Understand objectoriented fundamentals that are used across all the levels of OO decomposition;
Ability to select and apply suitable formal models (UML, OCL) in various levels of decomposition;
Ability to select and apply suitable patterns during a system decomposition;
Understand the term "software quality" in the context of code, objectoriented models, and software architectures; Application of tuning tactics for quality improvement;  Learning outcomes:
At the end of the course, a student should be able to:
 explain fundamentals of objectoriented design and development;
 express semantic constraints on objectoriented models by means of Object Constraint Language;
 identify "bad smells" in code and apply suitable refactoring tactics;
 explain properties of analysis, design, and architectural patterns;
 apply analysis, design, and architectural patterns to system decomposition;
 describe properties and processes related to the development of component systems;
 explain qualitative aspects of software and describe their tuning tactics;  Syllabus:
Objectoriented paradigm, object properties, principles
of abstraction and decomposition. Principles of OO analysis and design.
Models of classes, packages and components. Interface as contract. IDL, SWDL.
Refinement of UML semantics by means of stereotypes and OCL.
Software reuse, software patterns at various stages of software life cycle (analysis, design, architecture, coding).
Design patterns in detail.
Analysis patterns, Java patterns, antipatterns.
Code refactoring („refactoring to patterns“).
Software architectures, architectural patterns.
Component systems. Qualitative attributes and their evaluation.
Objectoriented methods for software development, application of UML models in RUP.
Special methods and architectures: MDD, FDD, SOA, ...
ModelDriven Architecture (MDA), employing OCL in MDA.
PA107 Corpus Tools Project
z 0/2 2 kr., jaro
 doc. Mgr. Pavel Rychlý, Ph.D.
 Goals:
The aim of the seminar is to provide students with a deeper knowledge
concerning a chosen area of corpus linguistics and practical checking
of this knowledge by working on the project. The popularisation of
corpus linguistics and other areas of language engineering is one of
the main goals of Natural Language Processing Laboratory at the
Faculty of Informatics.