Detailed search
Thank you! Your submission has been received!
Oops! Something went wrong while submitting the form.
close

Degree Plans - Programming and Software Development

Coordinating Department: Department of Software Engineering Specialization Coordinator: RNDr. Filip Zavoral, Ph.D.

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

CodeSubjectCreditsWinterSummer
NSWX004Operating Systems 42/1 MC—
NPRX041Programming v C++ 52/2 C+Ex—
NSWX142Web Applications Programming 52/2 C+Ex—
NSWI154Software Development Tools 20/2 C—
NSWI041Introduction to Software Engineering 5—2/2 C+Ex
NPRX043Recommended 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.

CodeSubjectCreditsWinterSummer
NPRX013Programming in Java 52/2 C+Ex—
NPRX035Programming in C# 52/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.

CodeSubjectCreditsWinterSummer
NPRX051Advanced C++ Programming 5—2/2 C+Ex
NPRX021Advanced Programming in Java 5—2/2 C+Ex
NPRX038Advanced C# Programming 5—2/2 C+Ex
NSWX153Advanced Web Application Programming 5—2/2 C+Ex
NPRX056Mobile 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.

CodeSubjectCreditsWinterSummer
NPRG024Design Patterns 3—0/2 MC
NSWI143Computer Architecture 3—2/0 Ex
NPRX036Data Formats 5—2/2 C+Ex
NSWI130Software System Architectures 52/2 C+Ex—
NSWI090Computer 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.

CodeSubjectCreditsWinterSummer
NSWI098Compiler Principles 62/2 C+Ex—
NPRG054High Performance Software Development 6—2/2 C+Ex
NPRG042Programming in Parallel Environment 6—2/2 C+Ex

Elective courses – group 5

CodeSubjectCreditsWinterSummer
NPGR038Introduction to computer game development 5—2/2 C+Ex
NPGR003Introduction to Computer Graphics 52/2 C+Ex—
NDBX007Database Access Methods 42/1 C+Ex—
NDBI040Modern Database Concepts 52/2 C+Ex—
NSWI162Program semantics 10/1 C—
NSWI163Introduction to Middleware 10/1 MC—
NPFL054Introduction to Machine Learning 52/2 C+Ex—
NAIL120Introduction to Artificial Intelligence 5—2/2 C+Ex
NPRX005Non-procedural Programming 5—2/2 C+Ex
NMAX055Mathematical Analysis 2 52/2 C+Ex—

3.3 Recommended Course of Study

First year

Common to all specializations – see under general information above.

Second year

CodeSubjectCreditsWinterSummer
NPRX...Programming in Java/C++/C# 52/2 C+Ex—
NDBX025Database Systems 52/2 C+Ex—
NSWX142web Applications Programming 52/2 C+Ex—
NTIX061Algorithms and Data Structures 2 52/2 C+Ex—
NAIX062Propositional and Predicate Logic 52/2 C+Ex—
NDMX011Combinatorics and Graph Theory 1 52/2 C+Ex—
NPRX...Advanced Programming in Java/C++/C# 5—2/2 C+Ex
NTIX071Automata and Grammars 5—2/2 C+Ex
NMAX059Probability and Statistics 1 5—2/2 C+Ex
NPRG045Individual Software Project 4—0/1 C
 Elective courses    
 Additional courses    

Third year

CodeSubjectCreditsWinterSummer
NPRX...Programming in Java/C++/C# 52/2 C+Ex—
 Advanced Programming in Java/C++/C# 5—2/2 C+Ex
NSWI098Compiler Principles662/2 C+Ex—
NPRG054High Performance Software Development 6—2/2 C+Ex
NPRG042Programming in Parallel Environment 6—2/2 C+Ex
NSZZ031Bachelor 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.