4. Softwarové systémy

Garantující pracoviště: Katedra distribuovaných a spolehlivých systémů
Oborový garant: Doc. 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
NSWI004Operační systémy 52/1 Z+Zk
NPRG043Doporučené postupy v programování 62/2 Z+Zk
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
NPRG042Programování v paralelním prostředí 62/2 Z+Zk
NPRG054Vývoj vysoce výkonného software 52/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
NSWI041Úvod do softwarového inženýrství 52/2 Z+Zk
NSWI054Softwarové inženýrství pro spolehlivé systémy 30/2 KZ
NSWI068Objektové a komponentové systémy 52/2 Z+Zk
NSWI080Middleware 52/1 Z+Zk
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 20/2 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)
Správa procesů a vláken, komunikace, synchronizace, memory models. Správa paměti (stránkování, heap, garbage collection). Běhová podpora, volací konvence, virtualizace. Správa periferií. Systémy souborů. Vše v kontextu soudobých paralelních architektur.

Doporučené předměty
kódPředmětKredityZSLS
NSWI004Operační systémy 52/1 Z+Zk

2. Paralelní a distribuované systémy (SP)
Moderní hierarchie paměti (multiprocesory, GPU, NUMA), vztah efektivity přístupu a umístění dat. 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
NPRG042Programování v paralelním prostředí 62/2 Z+Zk
NPRG054Vývoj vysoce výkonného software 52/2 Z+Zk
NSWI035Principy distribuovaných systémů 32/0 Zk
NSWI080Middleware 52/1 Z+Zk

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 Z+Zk
NSWI068Objektové a komponentové systémy 52/2 Z+Zk

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)
Správa procesů a vláken, komunikace, synchronizace, memory models. 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
NSWI004Operační systémy 52/1 Z+Zk
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 Z+Zk

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)
Virtualizační technologie, clustery, cloudy. Frameworky pro vývoj cloud aplikací a výpočty v cloudech, deployment. 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
NSWI150Virtualizace a cloud computing 32/0 Zk
NSWI035Principy distribuovaných systémů 32/0 Zk
NSWI080Middleware 52/1 Z+Zk

2. Programování paralelních aplikací (VS)
Moderní hierarchie paměti (multiprocesory, GPU, NUMA), vztah efektivity přístupu a umístění dat. Podpora virtualizace. 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 52/2 Z+Zk

3. Systémové aspekty počítačů (VS)
Správa procesů a vláken, komunikace, synchronizace, memory models. Správa paměti (stránkování, heap, garbage collection). Běhová podpora, volací konvence, virtualizace. Správa periferií. Systémy souborů. Metriky výkonnosti systému, měření výkonnosti, simulace a modelování. Vše v kontextu soudobých paralelních architektur.

Doporučené předměty
kódPředmětKredityZSLS
NSWI004Operační systémy 52/1 Z+Zk
NSWI131Vyhodnocování výkonnosti počítačových systémů 52/1 Z+Zk

© 2013–2017 Univerzita Karlova, Matematicko-fyzikální fakulta. Design noBrother.
Za obsah odpovídá Studijní oddělení.