Common obligatory courses for all specializations are listed above in the section giving general information.
Code | Subject | Credits | Winter | Summer | |
NSWX004 | Operating Systems | 4 | 2/1 MC | — | |
NPRX041 | Programming v C++ | 5 | 2/2 C+Ex | — | |
NSWX142 | Web Applications Programming | 5 | 2/2 C+Ex | — | |
NSWI154 | Software Development Tools | 2 | 0/2 C | — | |
NSWI041 | Introduction to Software Engineering | 5 | — | 2/2 C+Ex | |
NPRX043 | Recommended Programming Practices | 5 | — | 2/2 MC |
A prerequisite for taking either part of the State Final Exam is to have obtained at least 5 credits from courses in this group.
Code | Subject | Credits | Winter | Summer | |
NPRX013 | Programming in Java | 5 | 2/2 C+Ex | — | |
NPRX035 | Programming in C# | 5 | 2/2 C+Ex | — |
A prerequisite for taking either part of the State Final Exam is to have obtained at least 10 credits from courses in this group.
Code | Subject | Credits | Winter | Summer | |
NPRX051 | Advanced C++ Programming | 5 | — | 2/2 C+Ex | |
NPRX021 | Advanced Programming in Java | 5 | — | 2/2 C+Ex | |
NPRX038 | Advanced C# Programming | 5 | — | 2/2 C+Ex | |
NSWX153 | Advanced Web Application Programming | 5 | — | 2/2 C+Ex | |
NPRX056 | Mobile Devices Programming | 3 | — | 0/2 C |
A prerequisite for taking either part of the State Final Exam is to have obtained at least 10 credits from courses in this group.
Code | Subject | Credits | Winter | Summer | |
NPRG024 | Design Patterns | 3 | — | 0/2 MC | |
NSWI143 | Computer Architecture | 3 | — | 2/0 Ex | |
NPRX036 | Data Formats | 5 | — | 2/2 C+Ex | |
NSWI130 | Software System Architectures | 5 | 2/2 C+Ex | — | |
NSWI090 | Computer Networks | 3 | — | 2/0 Ex |
A prerequisite for taking either part of the State Final Exam is to have obtained at least 6 credits from courses in this group.
Code | Subject | Credits | Winter | Summer | |
NSWI098 | Compiler Principles | 6 | 2/2 C+Ex | — | |
NPRG054 | High Performance Software Development | 6 | — | 2/2 C+Ex | |
NPRG042 | Programming in Parallel Environment | 6 | — | 2/2 C+Ex |
Code | Subject | Credits | Winter | Summer | |
NPGR038 | Introduction to computer game development | 5 | — | 2/2 C+Ex | |
NPGR003 | Introduction to Computer Graphics | 5 | 2/2 C+Ex | — | |
NDBX007 | Database Access Methods | 4 | 2/1 C+Ex | — | |
NDBI040 | Modern Database Concepts | 5 | 2/2 C+Ex | — | |
NSWI162 | Program semantics | 1 | 0/1 C | — | |
NSWI163 | Introduction to Middleware | 1 | 0/1 MC | — | |
NPFL054 | Introduction to Machine Learning | 5 | 2/2 C+Ex | — | |
NAIL120 | Introduction to Artificial Intelligence | 5 | — | 2/2 C+Ex | |
NPRX005 | Non-procedural Programming | 5 | — | 2/2 C+Ex | |
NMAX055 | Mathematical Analysis 2 | 5 | 2/2 C+Ex | — |
Code | Subject | Credits | Winter | Summer | |
NPRX... | Programming in Java/C++/C# | 5 | 2/2 C+Ex | — | |
NDBX025 | Database Systems | 5 | 2/2 C+Ex | — | |
NSWX142 | web Applications Programming | 5 | 2/2 C+Ex | — | |
NTIX061 | Algorithms and Data Structures 2 | 5 | 2/2 C+Ex | — | |
NAIX062 | Propositional and Predicate Logic | 5 | 2/2 C+Ex | — | |
NDMX011 | Combinatorics and Graph Theory 1 | 5 | 2/2 C+Ex | — | |
NPRX... | Advanced Programming in Java/C++/C# | 5 | — | 2/2 C+Ex | |
NTIX071 | Automata and Grammars | 5 | — | 2/2 C+Ex | |
NMAX059 | Probability and Statistics 1 | 5 | — | 2/2 C+Ex | |
NPRG045 | Individual Software Project | 4 | — | 0/1 C | |
Elective courses | |||||
Additional courses |
Code | Subject | Credits | Winter | Summer | |
NPRX... | Programming in Java/C++/C# | 5 | 2/2 C+Ex | — | |
Advanced Programming in Java/C++/C# | 5 | — | 2/2 C+Ex | ||
NSWI098 | Compiler Principles | 6 | 6 | 2/2 C+Ex | — |
NPRG054 | High Performance Software Development | 6 | — | 2/2 C+Ex | |
NPRG042 | Programming in Parallel Environment | 6 | — | 2/2 C+Ex | |
NSZZ031 | Bachelor Thesis | 6 | — | 0/4 C | |
Elective courses | |||||
Additional courses |
1. Computer Architecture, Operating Systems and Networks
Runtime memory organization.
Memory representation of arrays, structures, and classes. Cache, performance impact, NUMA. Virtual memory.
Processing of instructions by processors. Processes and threads, context switching, IRQ, asynchronous I/O. Multicore, multisocket.
Physical, link and transport layers. Internetworking, VLAN. TCP/IP adressing.
2. Programming Languages
Object lifetime. Components, dependency injection.
Parallel programming, threads. Debugging, exceptions.
Reflection and introspection. Principles of dynamic languages. Functional aspects of object languages.
Static vs. dynamic polymorphism, generic programming, type deduction.
Standard libraries. Design patterns.
Principles of WWW, HTTP, URL. Static web pages.
Principles of web applications. Client side programming. API of web applications.
3. Software Engineering
Software development processes, requirement analysis, testing, maintenance, risk analysis.
Version control systems. Building. Performance measurement.
Design of API, classes and methods, object design.
Principles of web application security.
4. Databases
Architectures of database systems.
Normal forms. Database schema, keys, indexes, integrity constraints.
Transactions and their properties.
SQL - common statements, subqueries. SQL procedures and functions, triggers.