Informatika - Softwarové a datové inženýrství
Tato stránka vychází z podkladů pro tištěné studijní plány (tzv. Karolinku).
Garantující pracoviště: Katedra softwarového inženýrství
Oborový garant: Prof. RNDr. Tomáš Skopal, Ph.D.
Zaměření:
- – softwarové inženýrství
- – vývoj software
- – webové inženýrství
- – databázové systémy
- – analýza a zpracování rozsáhlých dat
- – vývoj software
Absolvent má hluboké softwarově a datově inženýrské znalosti v rámci zvoleného zaměření. Tyto znalosti nesledují pouze aktuální technologické trendy, ale jejich jádro je tvořeno hlubokým teoretickým základem. Absolvováním zaměření Softwarové inženýrství umí absolvent analyzovat požadavky na kvalitu a funkcionalitu softwarových řešení, navrhovat odpovídající architekturu a řídit proces vývoje a monitorování kvality. Absolvent zaměření Vývoj software je schopen navrhovat architekturu software a vést jeho implementaci v různých prostředích včetně paralelních nebo cloudových. Zaměření Webové inženýrství učí absolventy navrhovat a implementovat software fungující v prostředí webu, cloudu a dalších síťových technologií s důrazem na škálovatelnost, robustnost a bezpečnost. Se zaměřením Databázové systémy je absolvent připraven navrhovat a integrovat schémata v různých typech databází a na jejich základě pak implementovat a administrovat databázové aplikace. Absolvent zaměření Analýza a zpracování rozsáhlých dat se uplatní jako vědecky orientovaný odborník na dobývání znalostí z dat a jejich interpretaci uživateli, např. jako datový analytik (data scientist).
Povinné předměty
kód | Předmět | Kredity | ZS | LS | |
NTIN090 | Základy složitosti a vyčíslitelnosti | 4 | 2/1 Z+Zk | — | |
NTIN066 | Datové struktury 1 | 6 | 2/2 Z+Zk | — | |
NSZZ023 | Diplomová práce I | 6 | — | 0/4 Z | |
NSZZ024 | Diplomová práce II | 9 | 0/6 Z | — | |
NSZZ025 | Diplomová práce III | 15 | — | 0/10 Z |
Týmový projekt
Student si volí právě jeden z trojice předmětů Softwarový projekt, Výzkumný projekt a Firemní projekt.
kód | Předmět | Kredity | ZS | LS | |
NPRG069 | Softwarový projekt | 12 | 0/8 Z | 0/8 Z | |
NPRG070 | Výzkumný projekt | 9 | 0/6 Z | 0/6 Z | |
NPRG071 | Firemní projekt | 6 | 0/4 Z | 0/4 Z | |
NPRG072 | Zvýšený rozsah projektu | 3 | 0/2 Z | 0/2 Z |
Povinně volitelné profilující předměty
Je požadováno splnění povinně volitelných profilujících předmětů z následujícího seznamu v rozsahu alespoň 41 kreditů. Předměty je doporučené volit tak, aby pokrývaly zvolené studijní okruhy státní závěrečné zkoušky.
kód | Předmět | Kredity | ZS | LS | |
NPRG014 | Koncepty moderních programovacích jazyků | 4 | 0/3 Z | — | |
NPRG043 | Doporučené postupy v programování | 5 | — | 2/2 KZ | |
NPRG024 | Návrhové vzory | 3 | — | 0/2 KZ | |
NSWI126 | Pokročilé nástroje pro vývoj a monitorování software | 2 | — | 0/2 Z | |
NPRG059 | Praktikum z pokročilého objektového programování | 2 | 0/1 Z | — | |
NPRG058 | Pokročilé programování v paralelním prostředí | 6 | 2/2 Z+Zk | — | |
NSWI150 | Virtualizace a cloud computing | 3 | 2/0 Zk | — | |
NSWI153 | Pokročilé programování webových aplikací | 5 | — | 2/2 Z+Zk | |
NSWI145 | Webové služby | 5 | — | 2/2 Z+Zk | |
NSWI144 | Data na Webu | 5 | 2/1 Z+Zk | — | |
NSWI130 | Architektury softwarových systémů | 5 | 2/2 Z+Zk | — | |
NSWI026 | Pokročilé aspekty softwarového inženýrství | 5 | — | 2/2 Z+Zk | |
NTIN043 | Formální základy softwarového inženýrství | 5 | 2/2 Z+Zk | — | |
NDBI034 | Vyhledávání multimediálního obsahu na webu | 4 | 2/1 Z+Zk | — | |
NDBI040 | Moderní databázové systémy | 5 | 2/2 Z+Zk | — | |
NDBI042 | Techniky vizualizace dat | 4 | — | 2/1 Z+Zk | |
NPFL114 | Hluboké učení | 7 | — | 3/2 Z+Zk | |
NDBI023 | Dobývání znalostí | 5 | — | 2/2 Z+Zk | |
NDBI016 | Transakce | 3 | — | 2/0 Zk | |
NDBI001 | Dotazovací jazyky 1 | 5 | 2/2 Z+Zk | — | |
NDBI006 | Dotazovací jazyky 2 | 5 | — | 2/2 Z+Zk | |
NDBI021 | Zákaznické preference | 4 | — | 2/1 Z+Zk | |
NSWI072 | Algoritmy komprese dat | 3 | 2/0 Zk | — |
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ň 15 kreditů.
kód | Předmět | Kredity | ZS | LS | |
NMAI060 | Pravděpodobnostní metody | 3 | 2/0 Zk | — | |
NPRG042 | Programování v paralelním prostředí | 6 | — | 2/2 Z+Zk | |
NPRG054 | Vývoj vysoce výkonného software | 6 | — | 2/2 Z+Zk | |
NSWI035 | Principy distribuovaných systémů | 3 | 2/0 Zk | — | |
NSWI080 | Middleware | 4 | — | 2/1 KZ | |
NSWI101 | Modely a verifikace chování systémů | 5 | 2/2 Z+Zk | — | |
NSWI131 | Vyhodnocování výkonnosti počítačových systémů | 4 | — | 2/1 Z+Zk | |
NSWI149 | Softwarové inženýrství v praxi | 3 | — | 2/0 Z | |
NSWI152 | Vývoj cloudových aplikací | 2 | — | 0/2 Z | |
NTIN067 | Datové struktury 2 | 3 | — | 2/0 Zk | |
NSWI166 | Úvod do doporučovacích systémů | 4 | 2/1 Z+Zk | — | |
NPFL104 | Metody strojového učení | 4 | — | 1/2 Z+Zk |
Státní závěrečná zkouška
Student si vybere tři okruhy podle zvoleného zaměření. Dva z těchto okruhů jsou povinné pro zvolené zaměření, třetí je volitelný.
Zkušební okruhy
- 1. Analýza a architektury software (povinný pro zaměření: Softwarové inženýrství)
- 2. Rozšířené programování (povinný pro zaměření: Softwarové inženýrství, Vývoj software)
- 3. Softwarové technologie (povinný pro zaměření: Vývoj software)
- 4. Webové technologie (povinný pro zaměření: Webové inženýrství)
- 5. Databáze - formální základy a dotazovací jazyky (povinný pro zaměření: Webové inženýrství, Databázové systémy)
- 6. Databáze - implementace a administrace (povinný pro zaměření: Databázové systémy)
- 7. Zpracování rozsáhlých a nestrukturovaných dat (povinný pro zaměření: Analýza a zpracování rozsáhlých dat)
- 8. Data mining (povinný pro zaměření: Analýza a zpracování rozsáhlých dat)
- 2. Rozšířené programování (povinný pro zaměření: Softwarové inženýrství, Vývoj software)
Zkušební požadavky
1. Analýza a architektury software
Procesy vývoje SW a jejich fáze. Podnikové procesy a jejich modelování pomocí BPMN. UML a jeho využití pro analýzu a návrh struktury a chování SW. Návrhové vzory. Testování SW, dopadová a změnová analýza. Plánování SW projektů, odhad nákladů, úrovně řízení projektů. Právní aspekty SW, hlavní zákony důležité pro IT projekty. Typy pohledů na SW architekturu. Modelování a dokumentace SW architektury. Klasifikace atributů kvality SW architektury, jejich popis pomocí scénářů a taktik. Servisně orientované architektury. Algebraické metody formálních specifikací, vícedruhové algebry, iniciální modely. Temporální logika. Formální základy jazyka UML. OCL jako specifikační jazyk a formální základy dle specifikace.
Doporučené předměty
kód | Předmět | Kredity | ZS | LS | |
NSWI130 | Architektury softwarových systémů | 5 | 2/2 Z+Zk | — | |
NSWI026 | Pokročilé aspekty softwarového inženýrství | 5 | — | 2/2 Z+Zk | |
NTIN043 | Formální základy softwarového inženýrství | 5 | 2/2 Z+Zk | — |
2. Rozšířené programování
Moderní konstrukce a pokročilé aspekty programovacích jazyků. Generické programování a metaprogramování, generika a šablony, politiky, traits, typová dedukce, reflexe. Výjimky a bezpečné programování v prostředí s výjimkami. Implementace objektových vlastností, běhová podpora, volací konvence, garbage collection. Vliv moderních konstrukcí na výkonnost kódu.
Paralelní programování, Amdahlův zákon, synchronizační primitiva, task stealing.
Návrhové vzory a jejich využití. Skriptovací jazyky, prototype-based jazyky. Domain Specific Languages. Funkcionální programování. Principy tvorby kvalitního kódu, doporučené postupy. Refaktorizace. Testování funkčnosti, hledání chyb, monitorování programů.
Doporučené předměty
kód | Předmět | Kredity | ZS | LS | |
NPRG014 | Koncepty moderních programovacích jazyků | 4 | 0/3 Z | — | |
NPRG024 | Návrhové vzory | 3 | — | 0/2 KZ | |
NPRG043 | Doporučené postupy v programování | 5 | — | 2/2 KZ | |
NPRG042 | Programování v paralelním prostředí | 6 | — | 2/2 Z+Zk | |
NPRG059 | Praktikum z pokročilého objektového programování | 2 | 0/1 Z | — |
3. Softwarové technologie
Architektury operačních systémů, správa procesů, správa paměti, komunikace a synchronizace, paralelismus, virtualizace, stránkování. Souborové systémy, přístupová práva a bezpečnost. Přenositelnost a multiplatformnost aplikací. Testování a monitorování funkčnosti a výkonnosti. Architektura webových aplikací, skriptování na straně serveru a klienta, spolupráce s databázovými systémy. Architektura datového serveru, transakce, optimalizace výkonu. Cloudové služby, IaaS, PaaS a SaaS. Virtualizace, kontejnerizace, orchestrace, edge computing, IoT. Vyvažování zátěže, vysoká dostupnost. MapReduce.
Doporučené předměty
kód | Předmět | Kredity | ZS | LS | |
NSWI126 | Pokročilé nástroje pro vývoj a monitorování software | 2 | — | 0/2 Z | |
NSWI153 | Pokročilé programování webových aplikací | 5 | — | 2/2 Z+Zk | |
NSWI150 | Virtualizace a cloud computing | 3 | 2/0 Zk | — |
4. Webové technologie
Obecný přehled základní webových technologií. Síťové služby pro webové technologie. Webové služby. Architektura klient-server aplikací, skriptování na straně serveru a klienta, webové frameworky. Použití databázových systémů ve webových aplikacích, NoSQL databáze, multimediální databáze. Indexace a prohledávání dokumentů, principy fungování webových vyhledávačů. Linked Data, integrace sémantických dat do webových stránek. Zajištění bezpečnosti informačních systémů v prostředí internetu, autentizace, autorizace, bezpečnostní modely, základy šifrování, ochrana dat.
Doporučené předměty
kód | Předmět | Kredity | ZS | LS | |
NSWI130 | Architektury softwarových systémů | 5 | 2/2 Z+Zk | — | |
NSWI153 | Pokročilé programování webových aplikací | 5 | — | 2/2 Z+Zk | |
NSWI145 | Webové služby | 5 | — | 2/2 Z+Zk | |
NDBI034 | Vyhledávání multimediálního obsahu na webu | 4 | 2/1 Z+Zk | — | |
NPRG043 | Doporučené postupy v programování | 5 | — | 2/2 KZ |
5. Databáze - formální základy a dotazovací jazyky
Relační kalkuly, relační algebry. Relační úplnost. Bezpečné výrazy, ekvivalence relačních dotazovacích jazyků. Věta o tranzitivním uzávěru relace. Sémantika SQL. Standardy SQL. Objektové rozšíření relačního modelu dat. Databáze textů – Booleovský a vektorový model, vyhledávání a indexování, uspořádání odpovědí, top-k operátor. Datalog. Rekurze v SQL. Datový model XML. Datový model RDF, dotazovací jazyk SPARQL. Podobnostní dotazy v multimediálních databázích, metrické indexační metody. Modelování preferencí a dotazování s preferencemi.
Doporučené předměty
kód | Předmět | Kredity | ZS | LS | |
NDBI040 | Moderní databázové systémy | 5 | 2/2 Z+Zk | — | |
NDBI034 | Vyhledávání multimediálního obsahu na webu | 4 | 2/1 Z+Zk | — | |
NDBI001 | Dotazovací jazyky 1 | 5 | 2/2 Z+Zk | — | |
NDBI006 | Dotazovací jazyky 2 | 5 | — | 2/2 Z+Zk | |
NDBI021 | Zákaznické preference | 4 | — | 2/1 Z+Zk |
6. Databáze - implementace a administrace
Architektury databázových systému. Modely a vlastnosti transakcí: uzamykací protokoly, časová razítka. Izolace transakcí, alokace prostředků. Distribuované transakce. Zotavení z chyb, žurnály. Distribuce s horizontální fragmentací, implementace NoSQL databází, CAP teorém. Indexace relačních dat. Přístupové metody k prostorovým objektům. Algoritmy implementace relačních operací, agregačních funkcí. Vyhodnocování a optimalizace dotazů. Komprese dat: Huffmanovo kódování, aritmetické kódování, LZ algoritmy, Burrows-Wheelerova transformace.
Doporučené předměty
kód | Předmět | Kredity | ZS | LS | |
NDBI016 | Transakce | 3 | — | 2/0 Zk | |
NSWI072 | Algoritmy komprese dat | 3 | 2/0 Zk | — | |
NSWI144 | Data na Webu | 5 | 2/1 Z+Zk | — | |
NDBI040 | Moderní databázové systémy | 5 | 2/2 Z+Zk | — | |
NTIN066 | Datové struktury 1 | 6 | 2/2 Z+Zk | — |
7. Zpracování rozsáhlých a nestrukturovaných dat
Distribuce s horizontální fragmentací, implementace NoSQL databází, CAP teorém. Big Data management - distribuce, škálování, replikace, transakce. Paralelní a distribuované zpracování rozsáhlých dat, MapReduce. Úložiště typu klíč - hodnota. Sloupcová úložiště. Dokumentová úložiště. Modely pro fulltextové dotazování - vektorový, booleovský model, uspořádání odpovědí, top-k operátor. Podobnostní dotazy v multimediálních databázích, metrické indexační metody. Techniky vizualizace dat.
Doporučené předměty
kód | Předmět | Kredity | ZS | LS | |
NDBI040 | Moderní databázové systémy | 5 | 2/2 Z+Zk | — | |
NDBI034 | Vyhledávání multimediálního obsahu na webu | 4 | 2/1 Z+Zk | — | |
NDBI042 | Techniky vizualizace dat | 4 | — | 2/1 Z+Zk |
8. Data mining
Základní principy databázových systémů, datových skladů a technologie OLAP. Dobývání znalostí z databází - příprava dat a jejich předzpracování, techniky pro popis konceptů, metody pro dobývání asociativních pravidel, metody pro klasifikaci a predikci dat, metody pro klastrovou analýzu, dobývání znalostí v databázových systémech. Statistické metody pro data mining. Hledání různých typů závislostí. Bayesovská analýza, bayesovské sítě. Pravděpodobnostní modely dokumentografického informačního systému. Metody řízeného učení pro klasifikaci a regresi. Support Vector Machines a kernelové funkce. Evaluace experimentů. Techniky vizualizace dat.
Doporučené předměty
kód | Předmět | Kredity | ZS | LS | |
NDBI023 | Dobývání znalostí | 5 | — | 2/2 Z+Zk | |
NAIL029 | Strojové učení | 3 | — | 2/0 Zk | |
NDBI042 | Techniky vizualizace dat | 4 | — | 2/1 Z+Zk |