Tato stránka vychází z podkladů pro tištěné studijní plány (tzv. Karolinku).
Databáze a web
Garantující pracoviště: Katedra softwarového inženýrství Garant specializace: Prof. RNDr. Tomáš Skopal, Ph.D.Specializace Databáze a web nabízí škálu předmětů zaměřených na databázové a webové metody a technologie, analýzu dat, databázovou administraci, programování a vývoj tradičních, webových, databázových a datově intenzivních aplikací. Důraz je kladen na relační i nerelační databáze, analýzu sociálních sítí, webové a multimediální vyhledávače, metody extrakce vlastností z dat. Vedle tohoto profilujícího zaměření nabízí specializace také tradiční informatický základ, který absolventa připraví na navazující magisterské studium informatiky.
Společné povinné předměty programu Informatika
Povinné předměty společné pro všechny specializace jsou uvedeny v předchozí části.
Povinné předměty specializace
kód | Předmět | Kredity | ZS | LS | |
NSWX142 | Programování webových aplikací | 5 | 2/2 Z+Zk | — | |
NDBI026 | Databázové aplikace | 4 | 1/2 KZ | — | |
NDBX007 | Databázové přístupové metody | 4 | 2/1 Z+Zk | — | |
NDBI040 | Moderní databázové koncepty | 5 | 2/2 Z+Zk | — | |
NSWX153 | Pokročilé programování webových aplikací | 5 | — | 2/2 Z+Zk | |
NPRX036 | Datové formáty | 5 | — | 2/2 Z+Zk | |
NDBX046 | Datový management | 5 | — | 2/2 Z+Zk | |
NDBI038 | Vyhledávání na webu | 4 | — | 2/1 Z+Zk |
Povinně volitelné předměty – skupina 1
Podmínkou pro přihlášení ke státní závěrečné zkoušce je získání 15 kreditů za předměty z této skupiny.
kód | Předmět | Kredity | ZS | LS | |
NPRX041 | Programování v C++ | 5 | 2/2 Z+Zk | — | |
NPRX013 | Programování v jazyce Java | 5 | 2/2 Z+Zk | — | |
NPRX035 | Programování v jazyce C# | 5 | 2/2 Z+Zk | — | |
NPRX051 | Pokročilé programování v C++ | 5 | — | 2/2 Z+Zk | |
NPRX021 | Pokročilé programování v jazyce Java | 5 | — | 2/2 Z+Zk | |
NPRX038 | Pokročilé programování v jazyce C# | 5 | — | 2/2 Z+Zk | |
NPRX005 | Neprocedurální programování | 5 | — | 2/2 Z+Zk |
Povinně volitelné předměty – skupina 2
Podmínkou pro přihlášení ke státní závěrečné zkoušce je získání 6 kreditů za předměty z této skupiny.
kód | Předmět | Kredity | ZS | LS | |
NSWX004 | Operační systémy | 4 | 2/1 KZ | — | |
NPFL054 | Úvod do strojového učení | 5 | 2/2 Z+Zk | — | |
NDBI045 | Vyhledávání a explorace ve videu | 5 | — | 2/2 Z+Zk | |
NDBI037 | Informační modely s uspořádáním | 4 | 2/1 Z+Zk | — | |
NDBI013 | Administrace Oracle | 2 | — | 0/2 Z |
Povinně volitelné předměty – skupina 3
Podmínkou pro přihlášení ke státní závěrečné zkoušce je získání 3 kredity za předměty z této skupiny.
kód | Předmět | Kredity | ZS | LS | |
NMAX055 | Matematická analýza 2 | 5 | 2/2 Z+Zk | — | |
NPRX056 | Programování mobilních zařízení | 3 | — | 0/2 Z | |
NAIL120 | Úvod do umělé inteligence | 5 | — | 2/2 Z+Zk | |
NSWI130 | Architektury softwarových systémů | 5 | 2/2 Z+Zk | — | |
NSWI090 | Počítačové sítě | 3 | — | 2/0 Zk | |
NPGR036 | Počítačové vidění | 5 | — | 2/2 Z+Zk | |
NPGR002 | Digitální zpracování obrazu | 4 | 3/0 Zk | — | |
NAIL121 | Seminář dobývání znalostí | 4 | — | 1/2 KZ | |
NPGR035 | Strojové učení v počítačovém vidění | 5 | 2/2 Z+Zk | — |
Doporučený průběh studia
Doporučený průběh studia zahrnuje všechny povinné předměty a některé další povinně volitelné nebo volitelné předměty. Posluchač si ho musí sám doplnit dalšími povinně volitelnými a volitelnými předměty podle vlastního výběru. Povinné předměty jsou v tabulkách doporučeného průběhu studia vyznačeny tučně, povinně volitelné běžným písmem a volitelné kurzívou.
1. rok studia
Společné pro všechny specializace, viz předchozí část.2. rok studia
kód | Předmět | Kredity | ZS | LS | |
Programování v jazyce Java/C++/C# | 5 | 2/2 Z+Zk | — | ||
NDBX025 | Databázové systémy | 5 | 2/2 Z+Zk | — | |
NSWX142 | Programování webových aplikací | 5 | 2/2 Z+Zk | — | |
NTIX061 | Algoritmy a datové struktury 2 | 5 | 2/2 Z+Zk | — | |
NAIX062 | Výroková a predikátová logika | 5 | 2/2 Z+Zk | — | |
NDMX011 | Kombinatorika a grafy 1 | 1 | 5 | 2/2 Z+Zk | — |
NJAZ074 | Anglický jazyk pro středně pokročilé III | 2 | 1 | 0/2 Z | — |
NTVY016 | Tělesná výchova III | 4 | 1 | 0/2 Z | — |
NSWX153 | Pokročilé programování webových aplikací | 5 | — | 2/2 Z+Zk | |
NTIX071 | Automaty a gramatiky | 5 | — | 2/2 Z+Zk | |
NMAX059 | Pravděpodobnost a statistika 1 | 5 | — | 2/2 Z+Zk | |
NPRG045 | Ročníkový projekt | 4 | — | 0/1 Z | |
NJAZ090 | Anglický jazyk pro středně pokročilé IV | 2 | 1 | — | 0/2 Z |
NJAZ091 | Anglický jazyk | 3 | 1 | — | 0/0 Zk |
NTVY017 | Tělesná výchova IV | 4 | 1 | — | 0/2 Z |
Povinně volitelné předměty | |||||
Volitelné předměty |
3. rok studia
kód | Předmět | Kredity | ZS | LS | |
NDBI026 | Databázové aplikace | 4 | 1/2 KZ | — | |
NDBX007 | Databázové přístupové metody | 4 | 2/1 Z+Zk | — | |
NDBI040 | Moderní databázové koncepty | 5 | 2/2 Z+Zk | — | |
NPRX036 | Datové formáty | 5 | — | 2/2 Z+Zk | |
NDBX046 | Datový management | 5 | — | 2/2 Z+Zk | |
NDBI038 | Vyhledávání na webu | 4 | — | 2/1 Z+Zk | |
NSZZ031 | Vypracování a konzultace bakalářské práce | 6 | — | 0/4 Z | |
Povinně volitelné předměty | |||||
Volitelné předměty |
1 Předmět Kombinatorika a grafy 1 jsou vyučován v akademickém roce 2019/2020 v letním semestru pro studenty, kteří nastoupili v minulých letech. Pro studenty nastupující v roce 2019/20 je určen běh v zimním semestru 2020/21.
2 Výuka anglického jazyka NJAZ070, NJAZ072, NJAZ074, NJAZ090 v rozsahu 0/2 v každém semestru je určena pro středně pokročilé a pokročilé. Pro začátečníky a mírně pokročilé jsou určeny předměty NJAZ071, NJAZ073, NJAZ075, NJAZ089 s rozsahem výuky 0/4 v každém semestru.
3 Zkoušku z anglického jazyka NJAZ091 je možné absolvovat v zimním nebo v letním semestru.
4 Místo jednoho z předmětů NTVY014, NTVY015, NTVY016 a NTVY017 je možné si zapsat letní výcvikový kurz NTVY018 nebo zimní výcvikový kurz NTVY019. Tyto kurzy může student absolvovat kdykoli v průběhu bakalářského studia.
Požadavky znalostí ke státní závěrečné zkoušce
1. Databáze
Architektury databázových systémů. Konceptuální, logická a fyzická úroveň pohledů na data. Konceptuální modelování - ER, UML (datový diagram). Logický model dat - především relační model. Fyzický model dat - soubory (halda, indexsekvenční soubor, tříděný soubor).
Algoritmy návrhu schémat relací, normální formy, referenční integrita. Důvody pro normalizaci relací. Třetí NF a BCNF. Dekompozice a syntéza relace. Primární a cizí klíče.
Transakční zpracování, vlastnosti transakcí, uzamykací protokoly, zablokování. ACID vlastnosti transakcí. Rozvrhy transakcí. Sériový a serializovatelný rozvrh. Konfliktová ekvivalence rozvrhů. Konfliktová serializovatelnost, detekce precedenčním grafem. Dvoufázový zamykací protokol. Striktní dvoufázový zamykací protokol. Řešení problému uváznutí v databázi. Izolace transakcí v SQL
Konceptuální modelování. ER-diagramy, metody návrhů IS. Entity, vztahy, atributy a jejich reprezentace v konceptuálním modelu. Rámcově převod konceptuálního modelu na (relační) logický datový model. Kardinalita a arita vztahů a jejich reprezentace v relačním modelu
Přehled SQL. Základní dotazy (SELECT - FROM - WHERE). Třídění (ORDER BY). Seskupování dat a agregace (GROUP BY - HAVING, MIN, MAX, AVG, COUNT). Spojování tabulek (INNER JOIN, OUTER JOIN). Vnořené dotazy, operátory IN, EXISTS, ALL, ANY. Testy na NULL hodnotu (IS NULL, IS NOT NULL)
Uložené procedury, triggery, funkce.
Moderní databázové koncepty. MapReduce - princip, vlastnosti, kritika, alternativní přístupy. NoSQL databáze (klíč/hodnota, sloupcové, dokumentové). Grafová data a grafové databáze. Data s více modely. Multi-model databáze. Polystores. Jazyk SQL v prostředí Big Data. NewSQL databáze.
Pokryto přednáškami
- –
NDBI025 Databázové systémy
- – NDBI026 Databázové aplikace
- – NDBI040 Moderní databázové koncepty
- – NDBI026 Databázové aplikace
2. Datový management
Datové formáty. Základní typy strukturovaných dat, jejich reprezentanti, příklady užití. Formáty pro tabulková data, schémata, jazyky pro transformaci dat. Formáty pro stromová, schémata, jazyky pro transformaci dat. Formáty pro grafová data, schémata, jazyky pro transformaci dat. Formáty pro geodata. Základy grafických formátů. Základy multimediálních formátů. Sémantický popis dat, slovníky
Procesy zpracování dat. Předzpracování dat. Katalogizace dat, metadata. Kódování a komprese dat. Základy šifrování dat.
Základy indexování. Typy organizace souborů, přímé/nepřímé indexování, primární/sekundární index.
Hashování na vnější paměti. Cormack, Larson & Kalja, Faginovo rozšiřitelné hashování, Lineární hashování.
Hierarchické indexování. B-Tree, B+-Tree, B*-Tree. Indexování v prostorových databázích. Z-Curve, Hilbert Curve, Quad-Tree, k-d-Tree, R-Tree, R+-Tree, R*-Tree, prostorové spojení, prostorové dotazování.
Pokryto přednáškami
- –
NPRX036 Datové formáty
- – NDBX046 Datový management
- – NDBX007 Databázové přístupové metody
- – NDBX046 Datový management
3. Web
World Wide Web. Základní principy www, chápání webu jako distribované databáze a jako aplikační platformy. Význam HTTP v kontextu webu. Struktura URL a význam jednotlivých částí.
Tvorba statických webových stránek. Principy a syntax značkovacích jazyků (HTML, XHTML, HTML5) a jejich interpretace prohlížečem (vizualizace, DOM). Ovlivňování vzhledu webové stránky pomocí CSS (syntax, princip fungování, jaké vzhledové vlastnosti je možné měnit). Základy interakce s uživatelem (odkazy, formuláře)
Architektury a základní principy webových aplikací. CGI a CGI-like aplikace (princip fungování). AJAX, Single-page aplikace, souvislost s REST API, klasické přístupy k návrhu SPA a udržování stavu aplikace. Návaznost na protokol HTTP, udržování uživatelské relace, cookies. Nejpoužívanější návrhové vzory a techniky (Front Controller, MVC/MVP, MVVC, ORM, šablony)
Programování na straně klienta (JavaScript). Základní syntaxe JavaScriptu (ECMAScriptu), principy prototypového OOP, funkcionální konstrukce (scope chaining, closure). Práce s dokumentem skrz DOM (přehled principů, základní znalost API). Zpracování událostí v DOM, event driven model, asynchronní programování v JavaScriptu (callbacks, promises). Povědomí o nejdůležitějších standardních API v prohlížeči (location, fetch, local storage, history)
API webových aplikací. Způsob návrhu REST API, OpenAPI. Webové služby (SOAP, WSDLs). WebSocket, WebRTC. Základy bezpečnosti webových aplikací. Autentizace, autentizační tokeny (JWT), 3rd-party autentizace (OAuth2). Autorizace, příklady bezpečnostních modelů (ACL). Šifrování (HTTPS, HSTS), hašovací funkce a jejich použití v rámci web aplikací
Vyhledávání na webu. Booleovské a vektorové modely, word2vec. Vyhledávání v hypertextu, ranking, PageRank, optimalizace webových stránek pro vyhledávače. Podobnostní vyhledávání v multimediálních databázích. Metrické indexování podobnosti (filtrování pomocí pivotů, maticové, stromové, hašované a hybridní indexy)
Pokryto přednáškami
- –
NSWI142 Programování webových aplikací
- – NSWX153 Pokročilé programování webových aplikací
- – NDBI038 Vyhledávání na webu
- – NSWX153 Pokročilé programování webových aplikací