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
- – Dependable Systems
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
Code | Subject | Credits | Winter | Summer | |
NTIN066 | Data Structures 1 | 6 | — | 2/2 C+Ex | |
NTIN090 | Introduction to Complexity and Computability | 4 | 2/1 C+Ex | — | |
NSZZ023 | Diploma Thesis I | 6 | — | 0/4 C | |
NSZZ024 | Diploma Thesis II | 9 | 0/6 C | — | |
NSZZ025 | Diploma Thesis III | 15 | — | 0/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.
Code | Subject | Credits | Winter | Summer | |
NSWI026 | Advanced aspects of software engineering | 5 | — | 2/2 C+Ex | |
NSWI161 | Advanced Operating Systems | 3 | — | 2/0 Ex | |
NPRG058 | Advanced Programming in Parallel Environment | 6 | 2/2 C+Ex | — | |
NSWI126 | Advanced Tools for Software Development and Monitoring | 2 | — | 0/2 C | |
NSWI057 | Advanced topics in distributed and component-based systems I | 3 | 0/2 C | 0/2 C | |
NSWI152 | Cloud Application Development | 2 | — | 0/2 C | |
NSWI133 | Commercial Workshops | 2 | 0/2 C | 0/2 C | |
NSWI109 | Compiler Design | 4 | — | 2/1 C+Ex | |
NPRG014 | Concepts of Modern Programming Languages | 4 | 0/3 C | — | |
NDBI042 | Data Visualization Techniques | 4 | — | 2/1 C+Ex | |
NAIL094 | Decision procedures and SAT/SMT solvers | 5 | — | 2/2 C+Ex | |
NSWE001 | Embedded and Real Time Systems | 5 | — | 2/2 C+Ex | |
NTIN043 | Formal Foundations of Software Engineering | 5 | 2/2 C+Ex | — | |
NSWI089 | Information Security 1 | 3 | 2/0 Ex | — | |
NSWI071 | Information Security 2 | 3 | — | 2/0 Ex | |
NSWI080 | Middleware | 4 | — | 2/1 MC | |
NSWI164 | Model-driven Development | 2 | 0/1 C | — | |
NSWI131 | Performance Evaluation of Computer Systems | 4 | — | 2/1 C+Ex | |
NSWI176 | Practical Dynamic Compilation | 2 | — | 0/2 C | |
NSWI035 | Principles of Distributed Systems | 3 | 2/0 Ex | — | |
NMAI060 | Probabilistic Methods | 3 | 2/0 Ex | — | |
NSWI132 | Program Analysis and Code Verification | 5 | — | 2/2 C+Ex | |
NSWI054 | Software Engineering for Dependable Systems | 3 | — | 0/2 C | |
NSWI101 | System Behaviour Models and Verification | 5 | 2/2 C+Ex | — | |
NSWI150 | Virtualization and Cloud Computing | 3 | 2/0 Ex | — | |
NSWI151 | Virtualization Infrastructure Administration | 3 | — | 0/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:
Code | Subject | Credits | Winter | Summer | |
NPRG038 | Advanced C# Programming | 5 | — | 2/2 C+Ex | |
NPRG051 | Advanced C++ Programming | 5 | — | 2/2 C+Ex | |
NPRG021 | Advanced Java Programming | 5 | — | 2/2 C+Ex | |
NSWI153 | Advanced Programming of Web Applications | 5 | — | 2/2 C+Ex | |
NPRG043 | Recommended Programming Practices | 5 | — | 2/2 MC | |
NPRG054 | High Performance Software Development | 6 | — | 2/2 C+Ex | |
NPRG056 | Mobile Devices Programming | 3 | 0/2 C | — | |
NPRG042 | Programming in Parallel Environment | 6 | — | 2/2 C+Ex | |
NSWI143 | Computer Architecture | 3 | — | 2/0 Ex | |
NSWI098 | Compiler Principles | 6 | 2/2 C+Ex | — |
4.4 Elective Courses - Set 3 - Team Project Courses
The program requires passing one of the team project courses:
Code | Subject | Credits | Winter | Summer | |
NPRG069 | Software Project | 12 | 0/8 C | 0/8 C | |
NPRG070 | Research Project | 9 | 0/6 C | 0/6 C | |
NPRG071 | Company Project | 6 | 0/4 C | 0/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:
Code | Subject | Credits | Winter | Summer | |
NSWI161 | Advanced Operating Systems | 3 | — | 2/0 Ex | |
NPRG058 | Advanced Programming in Parallel Environment | 6 | 2/2 C+Ex | — | |
NPRG014 | Concepts of Modern Programming Languages | 4 | 0/3 C | — | |
NSWI080 | Middleware | 4 | — | 2/1 MC | |
NSWI035 | Principles of Distributed Systems | 3 | 2/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:
Code | Subject | Credits | Winter | Summer | |
NSWE001 | Embedded and Real Time Systems | 5 | — | 2/2 C+Ex | |
NTIN043 | Formal Foundations of Software Engineering | 5 | 2/2 C+Ex | — | |
NSWI164 | Model-driven Development | 2 | 0/1 C | — | |
NSWI132 | Program Analysis and Code Verification | 5 | — | 2/2 C+Ex | |
NSWI101 | System Behaviour Models and Verification | 5 | 2/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:
Code | Subject | Credits | Winter | Summer | |
NPRG058 | Advanced Programming in Parallel Environment | 6 | 2/2 C+Ex | — | |
NSWI109 | Compiler Design | 4 | — | 2/1 C+Ex | |
NSWI131 | Performance Evaluation of Computer Systems | 4 | — | 2/1 C+Ex | |
NSWI035 | Principles of Distributed Systems | 3 | 2/0 Ex | — | |
NSWI150 | Virtualization and Cloud Computing | 3 | 2/0 Ex | — |