Software Systems

Coordinated by: Department of Distributed and Dependable Systems
Study branch coordinator: Prof. Ing. Petr Tůma, Dr.

Specializations:

System Programming
Dependable Systems
High Performance Computing

This program invites students with deep interest in programming languages and system-oriented programming. It offers three specializations - System Programming, which focuses on the design and implementation of the basic software layers of a computer system, including the operating system, virtual machine layers and middleware, Dependable Systems, where the curriculum deals with systematic construction of systems with high reliability, such as embedded and real-time systems, and High Performance Computing, which introduces techniques for software development on high performance computing systems, that is, highly parallel systems, distributed systems, and clouds.

4.1 Obligatory Courses

CodeSubjectCreditsWinterSummer
NTIN066Data Structures 1 62/2 C+Ex
NTIN090Introduction to Complexity and Computability 42/1 C+Ex
NSZZ023Diploma Thesis I 60/4 C
NSZZ024Diploma Thesis II 90/6 C
NSZZ025Diploma Thesis III 150/10 C

4.2 Elective Courses - Set 1

The core content of the program is provided through elective courses, where the students need to collect a minimum of 48 credits in courses of their choice. See also the course content suggested for the knowledge part of the State Final Exam.

CodeSubjectCreditsWinterSummer
NSWI026Advanced aspects of software engineering 52/2 C+Ex
NSWI161Advanced Operating Systems 32/0 Ex
NPRG058Advanced Programming in Parallel Environment 62/2 C+Ex
NSWI126Advanced Tools for Software Development and Monitoring 20/2 C
NSWI057Advanced topics in distributed and component-based systems I 30/2 C0/2 C
NSWI152Cloud Application Development 20/2 C
NSWI133Commercial Workshops 20/2 C0/2 C
NSWI109Compiler Design 42/1 C+Ex
NPRG014Concepts of Modern Programming Languages 40/3 C
NDBI042Data Visualization Techniques 42/1 C+Ex
NAIL094Decision procedures and SAT/SMT solvers 52/2 C+Ex
NSWE001Embedded and Real Time Systems 52/2 C+Ex
NTIN043Formal Foundations of Software Engineering 52/2 C+Ex
NSWI089Information Security 1 32/0 Ex
NSWI071Information Security 2 32/0 Ex
NSWI080Middleware 42/1 MC
NSWI164Model-driven Development 20/1 C
NSWI131Performance Evaluation of Computer Systems 42/1 C+Ex
NSWI176Practical Dynamic Compilation 20/2 C
NSWI035Principles of Distributed Systems 32/0 Ex
NMAI060Probabilistic Methods 32/0 Ex
NSWI132Program Analysis and Code Verification 52/2 C+Ex
NSWI054Software Engineering for Dependable Systems 30/2 C
NSWI101System Behaviour Models and Verification 52/2 C+Ex
NSWI150Virtualization and Cloud Computing 32/0 Ex
NSWI151Virtualization Infrastructure Administration 30/2 C

4.3 Elective Courses - Set 2 - Courses from the Bachelor's Programme

The programme involves taking a number of courses from the preceding bachelor programme with a total of at least 8 credits. This obligation can also be fulfilled by recognizing courses already taken from the preceding bachelor programme per existing regulations. The relevant bachelor programme courses are:

CodeSubjectCreditsWinterSummer
NPRG038Advanced C# Programming 52/2 C+Ex
NPRG051Advanced C++ Programming 52/2 C+Ex
NPRG021Advanced Java Programming 52/2 C+Ex
NSWI153Advanced Programming of Web Applications 52/2 C+Ex
NPRG043Recommended Programming Practices 52/2 MC
NPRG054High Performance Software Development 62/2 C+Ex
NPRG056Mobile Devices Programming 30/2 C
NPRG042Programming in Parallel Environment 62/2 C+Ex
NSWI143Computer Architecture 32/0 Ex
NSWI098Compiler Principles 62/2 C+Ex

4.4 Elective Courses - Set 3 - Team Project Courses

The program requires passing one of the team project courses:

CodeSubjectCreditsWinterSummer
NPRG069Software Project 120/8 C0/8 C
NPRG070Research Project 90/6 C0/6 C
NPRG071Company Project 60/4 C0/4 C

4.5 State Final Exam

The requirements for the knowledge part of the State Final Exam are specified per program specialization.

Specialization: System programming

The exam for this specialization tests knowledge and skills related to system programming and internal function of software systems, as presented in these courses:

CodeSubjectCreditsWinterSummer
NSWI161Advanced Operating Systems 32/0 Ex
NPRG058Advanced Programming in Parallel Environment 62/2 C+Ex
NPRG014Concepts of Modern Programming Languages 40/3 C
NSWI080Middleware 42/1 MC
NSWI035Principles of Distributed Systems 32/0 Ex

Specialization: Dependable Systems

The exam for this specialization tests knowledge and skills related to design and construction of dependable software systems, as presented in these courses:

CodeSubjectCreditsWinterSummer
NSWE001Embedded and Real Time Systems 52/2 C+Ex
NTIN043Formal Foundations of Software Engineering 52/2 C+Ex
NSWI164Model-driven Development 20/1 C
NSWI132Program Analysis and Code Verification 52/2 C+Ex
NSWI101System Behaviour Models and Verification 52/2 C+Ex

Specialization: High Performance Computing

The exam for this specialization tests knowledge and skills related to high performance computing systems, as presented in these courses:

CodeSubjectCreditsWinterSummer
NPRG058Advanced Programming in Parallel Environment 62/2 C+Ex
NSWI109Compiler Design 42/1 C+Ex
NSWI131Performance Evaluation of Computer Systems 42/1 C+Ex
NSWI035Principles of Distributed Systems 32/0 Ex
NSWI150Virtualization and Cloud Computing 32/0 Ex