Tato stránka vychází z podkladů pro tištěné studijní plány (tzv. Karolinku).

Softwarové systémy

Garantující pracoviště: Katedra distribuovaných a spolehlivých systémů
Oborový garant: Prof. Ing. Petr Tůma, Dr.

Zaměření:

systémové programování
spolehlivé systémy
výkonné systémy

Absolvent má hluboké znalosti z oblasti programovacích jazyků a počítačových systémů podle zvoleného zaměření. Těmito zaměřeními jsou Systémové programování, které vybaví absolventa znalostmi o moderních operačních systémech a souvisejících technologiích (middleware, virtual machines), Spolehlivé systémy, které se soustředí na metody systematické konstrukce systémů s vysokou spolehlivostí, a konečně Výkonné systémy, které kladou důraz na znalosti potřebné pro vývoj software na moderních paralelních a distribuovaných systémech. Znalosti jsou vnímány ve vzájemných souvislostech a podporují navazující odborné dovednosti.

Povinné předměty

kódPředmětKredityZSLS
NTIN090Základy složitosti a vyčíslitelnosti 52/1 Z+Zk
NTIN066Datové struktury I 52/1 Z+Zk
NMAI060Pravděpodobnostní metody 32/0 Zk
NPRG043Doporučené postupy v programování 62/2 KZ
NPRG059Praktikum z pokročilého objektového programování 20/1 Z
NSWI126Pokročilé nástroje pro vývoj a monitorování software 30/2 Z
NSWI150Virtualizace a cloud computing 32/0 Zk
NPRG027Zápočet k projektu 60/4 Z0/4 Z
NPRG023Softwarový projekt 90/6 Z0/6 Z
NSZZ023Diplomová práce I 60/4 Z0/4 Z
NSZZ024Diplomová práce II 90/6 Z0/6 Z
NSZZ025Diplomová práce III 150/10 Z0/10 Z

Povinně volitelné předměty

Je požadováno splnění povinně volitelných předmětů z následujícího seznamu v rozsahu alespoň 30 kreditů:

kódPředmětKredityZSLS
NPRG014Koncepty moderních programovacích jazyků 30/3 Z
NPRG042Programování v paralelním prostředí 62/2 Z+Zk
NPRG054Vývoj vysoce výkonného software 62/2 Z+Zk
NPRG056Vývoj aplikací pro mobilní zařízení 30/2 Z
NSWE001Vestavěné systémy a systémy reálného času 62/2 Z+Zk
NSWI029Moderní trendy v informatice 20/2 Z0/2 Z
NSWI035Principy distribuovaných systémů 32/0 Zk
NSWI026Pokročilé aspekty softwarového inženýrství 52/2 Z+Zk
NSWI054Softwarové inženýrství pro spolehlivé systémy 30/2 Z
NSWI080Middleware 52/1 KZ
NSWI101Modely a verifikace chování systémů 62/2 Z+Zk
NSWI109Konstrukce překladačů 42/1 Z+Zk
NSWI131Vyhodnocování výkonnosti počítačových systémů 52/1 Z+Zk
NSWI132Analýza programů a verifikace kódu 62/2 Z+Zk
NSWI161Pokročilé operační systémy 32/0 Zk
NSWI164Modelem řízený vývoj 10/1 Z

Státní závěrečná zkouška

Ke dvěma povinným okruhům společným pro všechny obory student dostane po jedné otázce ze tří zkušebních okruhů podle zvoleného zaměření. Celkem tedy každý student dostane pět otázek.

Zaměření: Systémové programování

Zkušební okruhy

1. Systémové aspekty počítačů (SP)
2. Paralelní a distribuované systémy (SP)
3. Moderní koncepty programování (SP)

Zkušební požadavky

1. Systémové aspekty počítačů (SP)
Paralelismus, synchronizace a komunikace. Hierarchie paměti. Podpora virtualizace. Vše v kontextu soudobých paralelních architektur.

Doporučené předměty

kódPředmětKredityZSLS
NPRG042Programování v paralelním prostředí 62/2 Z+Zk
NPRG054Vývoj vysoce výkonného software 62/2 Z+Zk
NSWI161Pokročilé operační systémy 32/0 Zk

2. Paralelní a distribuované systémy (SP)
Komunikace a koordinace v distribuovaném prostředí, algoritmy a technologie (konkrétní technologie pro RPC, DSM, messaging podle aktuálního vývoje).

Doporučené předměty

kódPředmětKredityZSLS
NSWI035Principy distribuovaných systémů 32/0 Zk
NSWI080Middleware 52/1 KZ

3. Moderní koncepty programování (SP)
Moderní objektové koncepty, metaprogramování, reflexe, aspekty. Konstrukce moderních programovacích jazyků (například anotace, iterátory, generika, lambda funkce). Metriky kvality kódu, dokumentace, refaktoring, testování a ladění. Návrhové vzory. Vše v kontextu soudobých programovacích jazyků.

Doporučené předměty

kódPředmětKredityZSLS
NPRG043Doporučené postupy v programování 62/2 KZ
NPRG014Koncepty moderních programovacích jazyků 30/3 Z

Zaměření: Spolehlivé systémy

Zkušební okruhy

1. Systémové aspekty počítačů (SS)
2. Paralelní a distribuované systémy (SS)
3. Formální metody (SS)

Zkušební požadavky

1. Systémové aspekty počítačů (SS)
Embedded a real time systémy (RTES), real time plánování, návrh a modelování RTES, operační systémy pro RTES. Mobilní zařízení, návrh a distribuce software pro mobilní zařízení, správa prostředků.

Doporučené předměty

kódPředmětKredityZSLS
NSWE001Vestavěné systémy a systémy reálného času 62/2 Z+Zk
NPRG056Vývoj aplikací pro mobilní zařízení 30/2 Z

2. Paralelní a distribuované systémy (SS)
Synchronizace v paralelních systémech. Kauzalita a konsensus v distribuovaném prostředí. Komunikace, koordinace, replikace a mobilita v distribuovaném prostředí, algoritmy a technologie (konkrétní technologie pro RPC, DSM, messaging podle aktuálního vývoje).

Doporučené předměty

kódPředmětKredityZSLS
NSWI035Principy distribuovaných systémů 32/0 Zk
NSWI080Middleware 52/1 KZ

3. Formální metody (SS)
Modelování chování programů, formální nástroje (timed automata, LTS, Kripke Structure, svazy, LTL, CTL, bisimulace). Verifikace kódu proti kontraktům. Statická analýza (princip, základní algoritmy). Model checking, state explosion, infinite state model checking, compositional reasoning, bounded model checking, CEGAR, symbolická exekuce, runtime analýza, abstraktní interpretace.

Doporučené předměty

kódPředmětKredityZSLS
NSWI101Modely a verifikace chování systémů 62/2 Z+Zk
NSWI132Analýza programů a verifikace kódu 62/2 Z+Zk

Zaměření: Výkonné systémy

Zkušební okruhy

1. Distribuované systémy (VS)
2. Programování paralelních aplikací (VS)
3. Systémové aspekty počítačů (VS)

Zkušební požadavky

1. Distribuované systémy (VS)
Kauzalita a konsensus v distribuovaném prostředí. Komunikace, koordinace, replikace a mobilita v distribuovaném prostředí, algoritmy a technologie (konkrétní technologie pro RPC, DSM, messaging, deployment podle aktuálního vývoje).

Doporučené předměty

kódPředmětKredityZSLS
NSWI035Principy distribuovaných systémů 32/0 Zk
NSWI080Middleware 52/1 KZ

2. Programování paralelních aplikací (VS)
Moderní hierarchie paměti (multiprocesory, GPU, NUMA), vztah efektivity přístupu a umístění dat. Transformace úloh na datově paralelní, paralelní řešení nehomogenních úloh. Efektivní paralelní implementace základních algoritmů. Synchronizace, vyvažování zátěže.

Doporučené předměty

kódPředmětKredityZSLS
NPRG042Programování v paralelním prostředí 62/2 Z+Zk
NPRG054Vývoj vysoce výkonného software 62/2 Z+Zk

3. Systémové aspekty počítačů (VS)
Hierarchie paměti. Podpora virtualizace. Metriky výkonnosti systému a metody jejich měření. Metodiky měření výkonnosti moderních systémů. Modelování výkonnosti systému. Vše v kontextu soudobých paralelních architektur.

Doporučené předměty

kódPředmětKredityZSLS
NSWI131Vyhodnocování výkonnosti počítačových systémů 52/1 Z+Zk
NSWI150Virtualizace a cloud computing 32/0 Zk