Software and Data Engineering
Coordinated by: Department of Software Engineering
Study branch coordinator: Prof. Mgr. Martin Nečaský, Ph.D.
- – Plan S - The standard study plan is the original program at Charles University.
- – Plan D - The joint double-degree study plan is organised in cooperation between the Faculty of Mathematics and Physics, Charles University, and the Faculty of Computer Science and Mathematics, University of Passau (further partners).
Plan S - Standard Study Plan
The standard study plan is a two-year master’s programme completed at Charles University (MFF UK).
Specializations:
- – Software engineering
- – Software development
- – Web engineering
- – Database systems
- – Big data processing
The study programme Software and data engineering aims at expertise in analysis, design and development of complex software solutions, and systems focused on big data processing. The portfolio of courses provided in the study covers a number of technological platforms, from classic, web-based, to modern cloud and distributed solutions. A required part of the study is a work on team project where students apply not only the theoretical knowledge and technological skills but also team work abilities.
The graduate gains a deep knowledge of software and data engineering based on her/his specialization. With the specialization Software engineering the graduate is able to analyse requirements for software solutions, to design architectures, and to lead the development process. The specialization Software development prepares the graduate for leading a team of SW developers, including parallel and cloud environments. The development of internet applications is covered by the specialization Web engineering, including web, cloud and other internet technologies with an emphasize on scalability, robustness and security. The graduate of Database systems is able to design and integrate schemas of various databases and to develop complex database applications. With the Big data processing specialization the graduate is prepared for the role of data scientist with abilities in data mining and related data analytics knowledge.
3.1 Obligatory Courses
| Code | Subject | Credits | Winter | Summer | |
| NTIN090 | Introduction to Complexity and Computability | 4 | 2/1 C+Ex | — | |
| NTIN066 | Data Structures 1 | 6 | — | 2/2 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 | |
3.2 Elective Courses - Set 1 - Team Project Courses
The student choses one project course from three offered (Software Project, Research Project, Company Project).
| 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 | |
| NPRG072 | Increased project scope | 3 | 0/2 C | 0/2 C | |
3.3 Elective Courses - Set 2 - Profiling Courses
The student needs to obtain at least 41 credits for the profiling courses from the following set:
| Code | Subject | Credits | Winter | Summer | |
| NPRG014 | Concepts of Modern Programming Languages | 4 | 0/3 C | — | |
| NPRG043 | Recommended Programming Practices | 5 | — | 2/2 MC | |
| NPRG024 | Design Patterns | 3 | — | 0/2 MC | |
| NSWI126 | Advanced Tools for Software Development and Monitoring | 2 | 0/2 C | — | |
| NPRG058 | Advanced Programming in Parallel Environment | 6 | 2/2 C+Ex | — | |
| NSWI150 | Virtualization and Cloud Computing | 3 | 2/0 Ex | — | |
| NSWI153 | Advanced Web Applications Development | 5 | — | 2/2 C+Ex | |
| NSWI144 | Data on the Web | 5 | — | 2/1 C+Ex | |
| NSWI130 | Software System Architectures | 5 | 2/2 C+Ex | — | |
| NTIN043 | Formal Foundations of Software Engineering | 5 | 2/2 C+Ex | — | |
| NDBI034 | Multimedia Retrieval | 4 | 2/1 C+Ex | — | |
| NDBI040 | Modern Database Systems | 5 | — | 2/2 C+Ex | |
| NDBI048 | Data Science | 5 | 2/2 C+Ex | — | |
| NDBI042 | Data Visualization Techniques | 4 | — | 2/1 C+Ex | |
| NPFL138 | Deep Learning | 8 | — | 3/4 C+Ex | |
| NDBI023 | Data Mining | 5 | — | 2/2 C+Ex | |
| NDBI049 | Query Languages | 3 | 2/0 Ex | — | |
| NDBI021 | User preferences and advanced recommending methods | 4 | 2/1 C+Ex | — | |
| NSWI072 | Data Compression Algorithms | 3 | 2/0 Ex | — | |
3.4 Elective Courses - Set 3
The student needs to obtain at least 15 credits for the courses from the following set:
| Code | Subject | Credits | Winter | Summer | |
| NMAI060 | Probabilistic Methods | 3 | 2/0 Ex | — | |
| NPRG042 | Programming in Parallel Environment | 6 | — | 2/2 MC | |
| NPRG054 | High Performance Software Development | 6 | — | 2/2 MC | |
| NSWI035 | Principles of Distributed Systems | 3 | 2/0 Ex | — | |
| NSWI080 | Middleware | 4 | — | 2/1 MC | |
| NSWI101 | System Behaviour Models and Verification | 5 | 2/2 C+Ex | — | |
| NSWI131 | Performance Evaluation of Computer Systems | 4 | — | 2/1 C+Ex | |
| NSWI152 | Cloud Application Development | 3 | — | 0/2 C | |
| NTIN067 | Data Structures 2 | 3 | — | 2/0 Ex | |
| NSWI166 | Introduction to recommender systems and user preferences | 4 | — | 2/1 C+Ex | |
| NPFL104 | Machine Learning Methods | 4 | — | 1/2 C+Ex | |
3.5 State Final Exam
The student will select three examination areas from the following list. Two of the examination areas are obligatory for the chosen specialization, the last area is chosen voluntarily.
Examination areas
- 1. Software analysis and architectures (obligatory for the specialization Software engineering)
- 2. Advanced programming (obligatory for the specializations Software engineering and Software development)
- 3. Software technologies (obligatory for the specialization Software development)
- 4. Web technologies (obligatory for the specialization Web engineering)
- 5. Formal foundations of database systems and query languages (obligatory for the specializations Web engineering and Database systems)
- 6. Implementation of database systems (obligatory for the specialization Database systems)
- 7. Big and unstructured data processing (obligatory for the specialization Big data processing)
- 8. Data mining (obligatory for the specialization Big data processing)
Knowledge requirements
1. Software analysis and architectures
SW development processes, development phases. SW requirement analysis - principles, methods, usage of UML (description of SW structure and behavior). Principles and methods of SW design. SW testing (V-model, testing activities, test types, testing techniques). Project planning (SW project, project management methods, SW project planning). SW architecture and its role in the SW development process. Notations for modeling and documentation of SW architecture (Bass, 4+1, ArchiMate, C4 model, etc). Kinds of SW architecture viewpoints and their meaning. Classification of SW architecture quality attributes, their description using scenarios and tactics. Architecture patterns. Monolith, modularized monolith, microservices, service-oriented architecture, domain-driven architecture. Algebraic methods, many sorted algebras, initial models. Temporal logic. Formal principles of the UML language. OCL as a specification language, formal base of specification.
Recommended courses
| Code | Subject | Credits | Winter | Summer | |
| NSWI130 | Software System Architectures | 5 | 2/2 C+Ex | — | |
| NTIN043 | Formal Foundations of Software Engineering | 5 | 2/2 C+Ex | — | |
2. Advanced programming
Object concepts of modern programming languages. Generic programming and metaprogramming, generics and templates, policies, traits, type inference, reflection. Exceptions, exception-safe programming. Implementation of object properties, runtime support, calling conventions, garbage collection. Parallel programming, Amdahl law, synchronization primitives, task stealing. Design patterns. Scripting languages, prototype-based languages. Domain-specific languages. Functional programming. Principles of code quality, best practices. Refactoring. Testing, debugging, monitoring.
Recommended courses
| Code | Subject | Credits | Winter | Summer | |
| NPRG014 | Concepts of Modern Programming Languages | 4 | 0/3 C | — | |
| NPRG024 | Design Patterns | 3 | — | 0/2 MC | |
| NPRG043 | Recommended Programming Practices | 5 | — | 2/2 MC | |
| NPRG042 | Programming in Parallel Environment | 6 | — | 2/2 MC | |
3. Software technologies
Operating system architectures, process management, memory management, communication and synchronization, parallelism, virtualization, paging. File systems, access rights and security. Portability, multiplatform applications. Testing and monitoring of performance and functionality. Architectures of web applications, server-side and client-side scripting, cooperation with database systems. Architecture of data servers, transactions, performance optimization. Cluster, Grid, and Cloud. IaaS, PaaS, and SaaS. Virtualization, containerization, orchestration, edge computing, IoT. MapReduce. Load balancing, high availability.
Recommended courses
| Code | Subject | Credits | Winter | Summer | |
| NSWI126 | Advanced Tools for Software Development and Monitoring | 2 | 0/2 C | — | |
| NSWI153 | Advanced Web Applications Development | 5 | — | 2/2 C+Ex | |
| NSWI150 | Virtualization and Cloud Computing | 3 | 2/0 Ex | — | |
4. Web technologies
Overview of basic web technologies. Architecture of client-server applications, server-side and client-side scripting, web frameworks. Database systems in web applications, NoSQL databases, multimedia databases. Indexing and document searching, principles of web search engines. Linked Data - principles, data model RDF and its serialization, query language SPARQL, frequently used vocabularies, SHACL, Solid. Security of information systems in the Internet environment, authentication, authorization, security models, cryptography basics, data security.
Recommended courses
| Code | Subject | Credits | Winter | Summer | |
| NSWI130 | Software System Architectures | 5 | 2/2 C+Ex | — | |
| NSWI153 | Advanced Web Applications Development | 5 | — | 2/2 C+Ex | |
| NDBI034 | Multimedia Retrieval | 4 | 2/1 C+Ex | — | |
| NDBI040 | Modern Database Systems | 5 | — | 2/2 C+Ex | |
| NSWI144 | Data on the Web | 5 | — | 2/1 C+Ex | |
5. Formal foundations of database systems and query languages
Domain relational calculus, relational algebra. Relational completeness. Safe expressions, equivalences of relational query languages. Transitive closure of relation. Semantics of SQL. SQL standards. Object extension of relational data model. Text databases Boolean and vector models, searching and indexing, query result ranking, top-k operator. Datalog. Recursion in SQL. XML data model. RDF data model and its serialization, SPARQL query language, RDF Schema and reasoning/inference. Similarity search in multimedia databases, feature extraction and modeling, metric indexes for similarity search.
Recommended courses
| Code | Subject | Credits | Winter | Summer | |
| NDBI034 | Multimedia Retrieval | 4 | 2/1 C+Ex | — | |
| NDBI049 | Query Languages | 3 | 2/0 Ex | — | |
| NDBI021 | User preferences and advanced recommending methods | 4 | 2/1 C+Ex | — | |
| NSWI144 | Data on the Web | 5 | — | 2/1 C+Ex | |
6. Implementation of database systems
Models and properties of transactions: ACID, locking protocols, deadlock. Distributed transactions (2PC protocol), error/failure recovery, journals. Distribution with horizontal fragmentation, implementation of NoSQL databases, CAP theorem. Indexing relational data. Spatial access methods. Algorithms for implementation of relational operations and aggregation functions. Query evaluation and optimization. Data compression: Huffman coding, arithmetic coding, LZ algorithms, Burrows-Wheeler transformation.
Recommended courses
| Code | Subject | Credits | Winter | Summer | |
| NSWI072 | Data Compression Algorithms | 3 | 2/0 Ex | — | |
| NDBI040 | Modern Database Systems | 5 | — | 2/2 C+Ex | |
| NTIN066 | Data Structures 1 | 6 | — | 2/2 C+Ex | |
7. Big and unstructured data processing
Distribution with horizontal fragmentation, implementation of NoSQL databases, CAP theorem. Big Data management - distribution, scalability, replication, transactions. MapReduce. Key-value storages. Column storages. Document storages. Models for fulltext querying - vector, Boolean, probabilistic models, query result ranking, top-operator. Similarity search in multimedia databases, feature extraction and modeling, metric indexes for similarity search. Data visualization techniques - dimensionality reduction (PCA, MDS, t-SNE, UMAP), graph data visualization (force directed placement algorithms, multi-scale algorithms). Data science and methodology CRISP-DM - preparation, modeling and evaluation. Basic statistical models for data science. Preference modeling, user feedback variants, recommender systems.
Recommended coursesy
| Code | Subject | Credits | Winter | Summer | |
| NDBI040 | Modern Database Systems | 5 | — | 2/2 C+Ex | |
| NDBI034 | Multimedia Retrieval | 4 | 2/1 C+Ex | — | |
| NDBI042 | Data Visualization Techniques | 4 | — | 2/1 C+Ex | |
| NDBI048 | Data Science | 5 | 2/2 C+Ex | — | |
| NDBI021 | User preferences and advanced recommending methods | 4 | 2/1 C+Ex | — | |
8. Data mining
Basic principles of database systems, data warehouses and OLAP technology. Data mining data preprocessing, concept description techniques, methods for mining association rules, methods for data classification and prediction, cluster analysis methods, data mining in database systems. Statistical methods for data mining. Discovery of different types of dependencies. Bayesian analysis, bayesian networks. Probabilistic models of information retrieval. Methods of learning for classification and regression. Support Vector Machines and kernel functions. Experiment evaluation. Data visualization techniques - dimensionality reduction (PCA, MDS, t-SNE, UMAP), graph data visualization (force directed placement algorithms, multi-scale algorithms). Data science and methodology CRISP-DM - preparation, modeling and evaluation. Basic statistical models for data science.
Recommended courses
| Code | Subject | Credits | Winter | Summer | |
| NDBI023 | Data Mining | 5 | — | 2/2 C+Ex | |
| NAIL029 | Machine Learning | 3 | — | 2/0 Ex | |
| NDBI042 | Data Visualization Techniques | 4 | — | 2/1 C+Ex | |
| NDBI048 | Data Science | 5 | 2/2 C+Ex | — | |
Plan D - Double-Degree Study Plan
This study plan of the study program “Computer Science - Software and Data Engineering” is organised in cooperation between Charles University and the University of Passau (further partners). It offers students an opportunity to study in two academic environments and to obtain a prestigious double degree:
- – Master of Science in Computer Science (University of Passau)
- – Magistr (Mgr.) in Computer Science – Software and Data Engineering (Charles University)
The students acquire skills in software engineering, software development, Web engineering, database systems and Big Data processing, allowing them to work in a wide variety of fields of computer science in an international environment. The Program aims at expertise in the analysis, design and development of complex software solutions and systems focused on Big Data processing. The portfolio of courses provided covers several technological platforms, from classic, web-based to modern cloud and distributed solutions.
The students spend the first year at their home university and the second year at the host university.
Courses and credits
Students are required to earn ECTS credits by enrolling in the course units and seminars listed in the study plan and successfully passing the examinations. The ECTS credit requirements are described below.
The study plan includes compulsory courses as well as compulsory elective courses:
- – Compulsory courses are courses each student must take, and they are not subject to election.
- – Compulsory elective courses are courses each student must elect from the list and complete to fulfil the criteria for compulsory elective courses specified in the study plan.
- – Other courses offered at the partner universities, not listed as compulsory or compulsory elective courses, are denoted as free courses.
The following tables show the compulsory courses with respective ECTS credits and possible interchangeability of courses. Interchangeable courses share more than 70% of the content and thus can be applied interchangeably (but the student can register for one of the interchangeable courses only).
3.1 Compulsory Courses
The following table lists compulsory courses taught at Charles University:
| Code | Subject | Credits | Winter | Summer | |
| NTIN090 | Introduction to Complexity and Computability | 4 | 2/1 C+Ex | — | |
| NTIN066 | Data Structures 1 | 6 | — | 2/2 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 | |
The following table lists compulsory courses taught at the University of Passau:
| Code | Subject | Credits | Winter | Summer | |
| NUPA037 | Seminar | 5 | 0/2 C | — | |
| NUPA035 | Presentation of the Master’s Thesis | 3 | — | 0/4 C | |
| NUPA036 | Master’s Thesis in Computer Science | 27 | — | 0/18 C | |
Courses with codes starting with NUPA, listed in the Charles University Student Information System, serve as ‘virtual mirrors’ of the corresponding courses at the University of Passau. These courses are taught only at the University of Passau.
Some of the courses or groups of courses offered at Charles University and the University of Passau are considered interchangeable. This means that students may take either of them to fulfil the respective study requirement (but cannot enrol for both).
Interchangeability of compulsory courses is as follows:
- – The course Introduction to Complexity and Computability (NTIN090) is interchangeable with the course Computational Complexity Theory (NUPA038).
- – The group of courses Diploma Thesis I (NSZZ023), Diploma Thesis II (NSZZ024), and Diploma Thesis III (NSZZ025) is interchangeable with the group of courses Presentation of the Master’s Thesis (NUPA035) and Master’s Thesis in Computer Science (NUPA036).
3.2 Compulsory Elective Courses - Team Project Courses
The student choses one project course from four offered (International Research Project, Software Project, Research Project, Company Project). Given the other commitments, the recommended (but not mandatory) option is the one-semester course International Research Project (NPRG081).
| Code | Subject | Credits | Winter | Summer | |
| NPRG081 | International research project | 6 | 0/6 C | 0/6 C | |
| 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 | |
| NPRG072 | Increased project scope | 3 | 0/2 C | 0/2 C | |
3.3 Compulsory Elective Courses - Profiling Courses
Courses at the University of Passau are organised into module groups. The joint double-degree program is related to two of them:
- – ProgSoft (Programming Methods and Software Systems) – focuses on programming paradigms, compilers, program analysis, software engineering, software architectures, and verification methods.
- – InfKomm (Information and Communication Systems) – covers databases, distributed systems, multimedia systems, cloud and IoT data processing, privacy and security, and data science.
Selected courses from Charles University's standard study plan have also been assigned to these groups to simplify the ECTS credit requirements described below.
The following table lists the courses from Charles University that are assigned to the InfKomm group:
| Code | Subject | Credits | Winter | Summer | |
| NSWI144 | Data on the Web | 5 | — | 2/1 C+Ex | |
| NDBI034 | Multimedia Retrieval | 4 | 2/1 C+Ex | — | |
| NDBI040 | Modern Database Systems | 5 | — | 2/2 C+Ex | |
| NDBI042 | Data Visualization Techniques | 4 | — | 2/1 C+Ex | |
| NPFL138 | Deep Learning | 8 | — | 3/4 C+Ex | |
| NDBI023 | Data Mining | 5 | — | 2/2 C+Ex | |
| NDBI049 | Query Languages | 3 | 2/0 Ex | — | |
| NDBI021 | User preferences and advanced recommending methods | 4 | 2/1 C+Ex | — | |
| NSWI080 | Middleware | 4 | — | 2/1 MC | |
| NSWI101 | System Behaviour Models and Verification | 5 | 2/2 C+Ex | — | |
| NSWI131 | Performance Evaluation of Computer Systems | 4 | — | 2/1 C+Ex | |
| NSWI166 | Introduction to recommender systems and user preferences | 4 | — | 2/1 C+Ex | |
The following table lists the courses from Charles University that are assigned to the ProgSoft group:
| Code | Subject | Credits | Winter | Summer | |
| NPRG014 | Concepts of Modern Programming Languages | 4 | 0/3 C | — | |
| NSWI126 | Advanced Tools for Software Development and Monitoring | 2 | 0/2 C | — | |
| NPRG058 | Advanced Programming in Parallel Environment | 6 | 2/2 C+Ex | — | |
| NSWI153 | Advanced Web Applications Development | 5 | — | 2/2 C+Ex | |
| NSWI130 | Software System Architectures | 5 | 2/2 C+Ex | — | |
| NTIN043 | Formal Foundations of Software Engineering | 5 | 2/2 C+Ex | — | |
The following table lists the courses from the University of Passau that are assigned to the InfKomm group:
| Code | Subject | Credits | Winter | Summer | |
| NUPA023 | Foundations of Energy Systems | 6 | 2/2 Ex | — | |
| NUPA024 | Safety and Security of Critical Infrastructures | 6 | — | 2/2 Ex | |
| NUPA025 | Methodological Foundations of Distributed Systems | 6 | — | 2/2 Ex | |
| NUPA026 | Multimedia Databases | 7 | — | 3/2 Ex | |
| NUPA027 | Data Modelling and Data Processing in the Internet of Things | 5 | — | 2/1 Ex | |
| NUPA028 | Privacy-Preservation Technologies in Information Systems | 5 | 2/1 Ex | — | |
| NUPA029 | Data Science Lab | 6 | 0/4 Ex | — | |
| NUPA030 | Advanced Topics in Data Science | 5 | 2/1 Ex | — | |
| NUPA001 | Scaling Database Systems | 6 | 2/2 Ex | — | |
| NUPA031 | Reproducibility Engineering | 6 | 2/2 Ex | — | |
| NUPA032 | Introduction to Deep Learning | 6 | 2/2 Ex | — | |
| NUPA033 | Applied Artificial Intelligence Lab | 6 | 0/4 Ex | — | |
| NUPA034 | Computational Linguistics | 6 | — | 2/2 Ex | |
| NUPA022 | Research Seminar for the Focus InfKomm | 5 | 0/2 C | 0/2 C | |
The following table lists the courses from the University of Passau that are assigned to the ProgSoft group:
| Code | Subject | Credits | Winter | Summer | |
| NUPA002 | Practical Parallel Programming | 7 | — | 3/2 Ex | |
| NUPA003 | Dependence Analysis | 6 | — | 2/2 Ex | |
| NUPA004 | Loop Parallelisation | 6 | — | 2/2 Ex | |
| NUPA005 | Functional Programming | 6 | — | 2/2 Ex | |
| NUPA006 | Virtual Machines and Runtime Systems | 6 | 2/2 Ex | — | |
| NUPA007 | Domain-Specific Languages | 6 | — | 2/2 Ex | |
| NUPA008 | Software Analysis | 6 | — | 2/2 Ex | |
| NUPA009 | Advanced Software Product Development | 10 | 2/4 Ex | — | |
| NUPA010 | Search-Based Software Engineering | 6 | 2/2 Ex | — | |
| NUPA011 | Mobile Security | 6 | — | 2/2 Ex | |
| NUPA012 | Program Repair | 6 | — | 2/2 Ex | |
| NUPA013 | Secure Information Flow | 6 | — | 2/2 Ex | |
| NUPA014 | Engineering Dependable Software | 6 | — | 2/2 Ex | |
| NUPA015 | Object-Oriented Programming with C++ | 6 | — | 2/2 Ex | |
| NUPA016 | Compiler Construction | 9 | — | 4/2 Ex | |
| NUPA017 | Reverse and Reengineering | 6 | 2/2 Ex | — | |
| NUPA018 | Software-Projektmanagement | 7 | — | 3/1 Ex | |
| NUPA019 | Principles of AI Engineering | 6 | 2/2 Ex | 2/2 Ex | |
| NUPA020 | Requirements Engineering | 6 | 2/2 Ex | — | |
| NUPA021 | Research Seminar for the Focus ProgSoft | 5 | 0/2 C | 0/2 C | |
Interchangeability of compulsory elective courses is as follows:
- – Course Program Analysis and Code Verification (NSWI132) is einterchangeable with the course Software Analysis (NUPA008).
- – Course Programming in C++ (NPRG041) is interchangeable with the course Object-Oriented Programming with C++ (NUPA015).
- – Course Compiler Principles (NSWI098) is interchangeable with the course Compiler Construction (NUPA016).
- – Course Data Science (NDBI048) is interchangeable with the course Data Science Lab (NUPA029).
- – Course Deep Learning (NPFL114) is interchangeable with the course Introduction to Deep Learning (NUPA032).
The common ECTS credit requirements are as follows:
- – At least 120 ECTS credits in total.
- – At least 45 ECTS credits are required to advance to the second year.
- – At least 30 ECTS credits (excluding the ECTS credits for the Diploma thesis) from courses of each partner.
The ECTS credit requirements checked at the University of Passau are as follows:
- – At least 40 ECTS credits for ProgSoft courses and at least 30 ECTS credits for courses outside ProgSoft (excluding the ECTS credits for the Diploma thesis), OR
- – at least 40 ECTS credits for InfKomm courses and at least 30 ECTS credits for courses outside InfKomm (excluding the ECTS credits for the Diploma thesis).
The ECTS credit requirement checked at Charles University is as follows:
- – At least 50 ECTS credits for the compulsory elective courses (i.e., ProgSoft and InfKomm courses).
3.2 Recommended Course of Study
Since students spend exactly one winter semester and one summer semester at each of the two universities, they primarily enrol in the compulsory courses offered at the respective university in that semester and choose from its compulsory elective courses. They may also supplement their course selection with free courses.
Charles University: 1st year - Winter Semester
| Code | Subject | Credits | Winter | Summer | |
| NTIN090 | Introduction to Complexity and Computability | 4 | 2/1 C+Ex | — | |
| NDBI034 | Multimedia Retrieval | 4 | 2/1 C+Ex | — | |
| NDBI049 | Query Languages | 3 | 2/0 Ex | — | |
| NSWI101 | System Behaviour Models and Verification | 5 | 2/2 C+Ex | — | |
| NDBI021 | User preferences and advanced recommending methods | 4 | 2/1 C+Ex | — | |
| NPRG014 | Concepts of Modern Programming Languages | 4 | 0/3 C | — | |
| NPRG058 | Advanced Programming in Parallel Environment | 6 | 2/2 C+Ex | — | |
| NSWI130 | Software System Architectures | 5 | 2/2 C+Ex | — | |
| NTIN043 | Formal Foundations of Software Engineering | 5 | 2/2 C+Ex | — | |
Charles University: 1st year - Summer Semester
| Code | Subject | Credits | Winter | Summer | |
| NTIN066 | Data Structures 1 | 6 | — | 2/2 C+Ex | |
| NPRG081 | International research project | 6 | — | 0/6 C | |
| NSWI144 | Data on the Web | 5 | — | 2/1 C+Ex | |
| NDBI040 | Modern Database Systems | 5 | — | 2/2 C+Ex | |
| NDBI042 | Data Visualization Techniques | 4 | — | 2/1 C+Ex | |
| NPFL138 | Deep Learning | 8 | — | 3/4 C+Ex | |
| NDBI023 | Data Mining | 5 | — | 2/2 C+Ex | |
| NSWI166 | Introduction to recommender systems and user preferences | 4 | — | 2/1 C+Ex | |
| NSWI080 | Middleware | 4 | — | 2/1 MC | |
| NSWI131 | Performance Evaluation of Computer Systems | 4 | — | 2/1 C+Ex | |
| NSWI126 | Advanced Tools for Software Development and Monitoring | 2 | 0/2 C | — | |
| NSWI153 | Advanced Web Applications Development | 5 | — | 2/2 C+Ex | |
University of Passau: 2nd year - Winter Semester
| Code | Subject | Credits | Winter | Summer | |
| NUPA037 | Seminar | 5 | 0/2 C | — | |
| NUPA001 | Scaling Database Systems | 6 | 2/2 Ex | — | |
| NUPA006 | Virtual Machines and Runtime Systems | 6 | 2/2 Ex | — | |
| NUPA009 | Advanced Software Product Development | 10 | 2/4 Ex | — | |
| NUPA010 | Search-Based Software Engineering | 6 | 2/2 Ex | — | |
| NUPA017 | Reverse and Reengineering | 6 | 2/2 Ex | — | |
| NUPA019 | Principles of AI Engineering | 6 | 2/2 Ex | 2/2 Ex | |
| NUPA020 | Requirements Engineering | 6 | 2/2 Ex | — | |
| NUPA023 | Foundations of Energy Systems | 6 | 2/2 Ex | — | |
| NUPA028 | Privacy-Preservation Technologies in Information Systems | 5 | 2/1 Ex | — | |
| NUPA029 | Data Science Lab | 6 | 0/4 Ex | — | |
| NUPA030 | Advanced Topics in Data Science | 5 | 2/1 Ex | — | |
| NUPA031 | Reproducibility Engineering | 6 | 2/2 Ex | — | |
| NUPA032 | Introduction to Deep Learning | 6 | 2/2 Ex | — | |
| NUPA033 | Applied Artificial Intelligence Lab | 6 | 0/4 Ex | — | |
University of Passau: 2nd year - Summer Semester
| Code | Subject | Credits | Winter | Summer | |
| NUPA035 | Presentation of the Master’s Thesis | 3 | — | 0/4 C | |
| NUPA036 | Master’s Thesis in Computer Science | 27 | — | 0/18 C | |
| NUPA002 | Practical Parallel Programming | 7 | — | 3/2 Ex | |
| NUPA003 | Dependence Analysis | 6 | — | 2/2 Ex | |
| NUPA004 | Loop Parallelisation | 6 | — | 2/2 Ex | |
| NUPA005 | Functional Programming | 6 | — | 2/2 Ex | |
| NUPA007 | Domain-Specific Languages | 6 | — | 2/2 Ex | |
| NUPA008 | Software Analysis | 6 | — | 2/2 Ex | |
| NUPA011 | Mobile Security | 6 | — | 2/2 Ex | |
| NUPA012 | Program Repair | 6 | — | 2/2 Ex | |
| NUPA013 | Secure Information Flow | 6 | — | 2/2 Ex | |
| NUPA014 | Engineering Dependable Software | 6 | — | 2/2 Ex | |
| NUPA015 | Object-Oriented Programming with C++ | 6 | — | 2/2 Ex | |
| NUPA016 | Compiler Construction | 9 | — | 4/2 Ex | |
| NUPA018 | Software-Projektmanagement | 7 | — | 3/1 Ex | |
| NUPA024 | Safety and Security of Critical Infrastructures | 6 | — | 2/2 Ex | |
| NUPA025 | Methodological Foundations of Distributed Systems | 6 | — | 2/2 Ex | |
| NUPA026 | Multimedia Databases | 7 | — | 3/2 Ex | |
| NUPA027 | Data Modelling and Data Processing in the Internet of Things | 5 | — | 2/1 Ex | |
| NUPA034 | Computational Linguistics | 6 | — | 2/2 Ex | |
Thesis
The student selects the thesis topic, preferably (but not mandatorily) in the second year at the host university, in accordance with its regulations. The thesis is written in English and carried out under the joint supervision of a supervisor and a consultant from both partner universities.
The thesis should demonstrate the student’s ability to conduct independent scientific work and to apply appropriate research methods to a defined topic. It must be submitted and defended in line with the regulations of the university where it is officially registered. The supervisor and the consultant jointly ensure that the thesis meets the academic standards and requirements of both institutions.
Final (State) Examination
The studies are successfully completed by passing the final (state) examination. The final (state) examination is performed in front of a committee consisting of members proposed jointly by the partners and approved in accordance with the relevant rules and regulations of both partners. The examination will consist of a Diploma thesis defence and an oral examination. Both parts will be held in the order indicated, i.e. first the defence, then the oral part. The student must successfully pass both parts to finish the studies. The oral examination will take place immediately after the successful defence of the Diploma thesis. It will be implemented in the form of an expert discussion on topics closely related to the topic of the presented thesis.
A student may register for the final (state) examination after completing at least 90 ECTS credits, fulfilling the minimum requirements for ECTS credits stated above (except for the total number of 120 ECTS credits), and successfully submitting his/her Diploma thesis. The remaining ECTS credits for the Diploma thesis will be given after the successful defence of the thesis, prior to the oral examination.
A student is entitled to one regular attempt and a maximum of two retake attempts of the final (state) examination. The quality of the thesis and the correctness of the answers to the committee’s questions are graded independently. A comprehensive final grade is awarded on the basis of the two partial grades.
Grade conversion
- –A (ECTS) = "Výborně" (in Czech) = "Excellent" = 1,3 (University of Passau)
- –B (ECTS) = "Výborně" (in Czech) = "Excellent" = 1,7 (University of Passau)
- –B (ECTS) = "Velmi dobře" (in Czech) = "Very good" = 2,0 (University of Passau)
- –C (ECTS) = "Velmi dobře" (in Czech) = "Very good" = 2,3 (University of Passau)
- –C (ECTS) = "Velmi dobře" (in Czech) = "Very good" = 2,7 (University of Passau)
- –D (ECTS) = "Dobře" (in Czech) = "Good" = 3,0 (University of Passau)
- –D (ECTS) = "Dobře" (in Czech) = "Good" = 3,3 (University of Passau)
- –E (ECTS) = "Dobře" (in Czech) = "Good" = 3,7 (University of Passau)
- –E (ECTS) = "Dobře" (in Czech) = "Good" = 4,0 (University of Passau)
- –F (ECTS) = "Nedostatečný" (in Czech) = "Fail" = 4,3 (University of Passau)
- –F (ECTS) = "Nedostatečný" (in Czech) = "Fail" = 4,7 (University of Passau)
- –F (ECTS) = "Nedostatečný" (in Czech) = "Fail" = 5,0 (University of Passau)

