Degree Plans - Programming and Software Development
Common obligatory courses in Computer Science
Common obligatory courses for all specializations are listed above in the section giving general information.
3.1 Obligatory Courses
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 |
3.2 Elective Courses
A prerequisite for taking either part of the State Final Exam is to have obtained at least 37 credits from elective courses overall.Elective courses – group 1
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 | — |
Elective courses – group 2
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 |
Elective courses – group 3
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 |
Elective courses – group 4
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 |
Elective courses – group 5
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 | — |
3.3 Recommended Course of Study
First year
Common to all specializations – see under general information above.Second year
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 |
Third year
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 |
3.4 State Final Exam
The State Final Exam knowledge requirements common to all specializations are described in the first section of this chapter (General Information on Computer Science bachelor's degree plans). Students of the Programming and Software Development specialization will be further tested according to the list below.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.