Softwarové a datové inženýrství

3. Softwarové a datové inženýrství

Garantující pracoviště: Informatická sekce
Oborový garant: doc. RNDr. Tomáš Skopal, Ph.D.

Studijní obor Softwarové a datové inženýrství nabízí následující zaměření:

 Softwarové inženýrství
 Databáze a web

 

Pro obě zaměření platí stejné podmínky studia, stejné povinné a povinně volitelné předměty i stejné požadavky k bakalářské státní závěrečné zkoušce s výjimkou posledního zkušebního okruhu v požadavcích ke státní závěrečné zkoušce z informatiky.

 

Povinné předměty

kód Předmět Kredity ZS LS
NMAI054 Matematická analýza I   5 2/2 Z+Zk
NMAI055 Matematická analýza II   5 2/2 Z+Zk
NMAI057 Lineární algebra I   5 2/2 Z+Zk
NMAI058 Lineární algebra II   5 2/2 Z+Zk
NDMI002 Diskrétní matematika   5 2/2 Z+Zk
NDMI011 Kombinatorika a grafy I   5 2/2 Z+Zk
NMAI059 Pravděpodobnost a statistika   6 2/2 Z+Zk
NAIL062 Výroková a predikátová logika   6 2/2 Z+Zk
NTIN071 Automaty a gramatiky   6 2/2 Z+Zk
NTIN060 Algoritmy a datové struktury I   5 2/2 Z+Zk
NTIN061 Algoritmy a datové struktury II   6 2/2 Z+Zk
NPRG030 Programování I   6 3/2 Z
NPRG031 Programování II   5 2/2 Z+Zk
NSWI120 Principy počítačů   3 3/0 Zk
NSWI141 Úvod do počítačových sítí   2 1/0 Zk
NSWI095 Úvod do UNIXu   5 2/2 Z+Zk
NDBI025 Databázové systémy   6 2/2 Z+Zk
NPRG036 Technologie XML   6 2/2 Z+Zk
NSWI142 Webové aplikace   6 2/2 Z+Zk
NSWI004 Operační systémy   5 2/1 Z+Zk
NSWI098 Principy překladačů   6 2/2 Z+Zk
NPRG045 Ročníkový projekt 1 4 0/1 Z
NSZZ031 Vypracování a konzultace bakalářské práce   6 0/4 Z
NJAZ091 Anglický jazyk 2 1 0/0 Zk
NTVY014 Tělesná výchova I 3 1 0/2 Z
NTVY015 Tělesná výchova II 3 1 0/2 Z
NTVY016 Tělesná výchova III 3 1 0/2 Z
NTVY017 Tělesná výchova IV 3 1 0/2 Z

1 Předmět NPRG045 lze zapsat v zimním i v letním semestru, standardně je zapisován v letním semestru.

2 Zkoušku z anglického jazyka NJAZ091 je možné absolvovat v zimním nebo v letním semestru.

3 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.

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í 10 kreditů za předměty z této skupiny.

kód Předmět Kredity ZS LS
NPRG041 Programování v C++   6 2/2 Z+Zk
NPRG013 Java   6 2/2 Z+Zk
NPRG035 Jazyk C# a platforma .NET   6 2/2 Z+Zk
NDBI007 Organizace a zpracování dat I   4 2/1 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í 5 kreditů za předměty z této skupiny.

kód Předmět Kredity ZS LS
NMAI062 Algebra I   6 2/2 Z+Zk
NOPT048 Lineární programování a kombinatorická optimalizace 1 6 2/2 Z+Zk
NDMI084 Úvod do aproximačních a pravděpodobnostních algoritmů   5 2/1 Z+Zk

1 Předmět NOPT048 se do akademického roku 2017/18 nazýval Optimalizační metody, jedná se o stejný předmět.

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í 23 kreditů za předměty z této skupiny.

kód Předmět Kredity ZS LS
NPRG051 Pokročilé programování v C++   6 2/2 Z+Zk
NPRG021 Pokročilé programování na platformě Java   6 2/2 Z+Zk
NPRG038 Pokročilé programování pro .NET I   6 2/2 Z+Zk
NPRG005 Neprocedurální programování   6 2/2 Z+Zk
NSWI090 Počítačové sítě   3 2/0 Zk
NPGR002 Digitální zpracování obrazu   5 3/0 Zk
NPFL012 Úvod do počítačové lingvistiky   3 2/0 Zk
NDBI013 Administrace Oracle   2 0/2 Z
NSWI126 Pokročilé nástroje pro vývoj a monitorování software   3 0/2 Z
NDBI039 Administrace Microsoft SQL serveru   2 0/2 Z
NDBI038 Vyhledávání na webu   4 2/1 Z+Zk
NSWI089 Ochrana informací I   3 2/0 Zk
NSWI036 Programování pro Windows I   3 2/0 Zk
NSWI037 Programování pro Windows II   3 2/0 Zk
NSWI106 Administrace Unixu   6 2/2 Z+Zk
NSWI045 Rodina protokolů TCP/IP   3 2/0 Zk
NSWI041 Úvod do softwarového inženýrství   5 2/2 Z+Zk
NPRG024 Návrhové vzory   3 0/2 KZ
NDBI026 Databázové aplikace   4 1/2 KZ
NSWI154 Nástroje pro vývoj software   2 0/2 Z
NSWI162 Sémantika programů   1 0/1 Z
NSWI163 Úvod do middleware   1 0/1 Z
NDBI037 Informační modely s uspořádáním   4 2/1 Z+Zk

* Předmět je vyučován v zimním i v letním semestru.

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

kód Předmět Kredity ZS LS
NMAI054 Matematická analýza I   5 2/2 Z+Zk
NMAI057 Lineární algebra I   5 2/2 Z+Zk
NDMI002 Diskrétní matematika   5 2/2 Z+Zk
NPRG030 Programování I   6 3/2 Z
NSWI120 Principy počítačů   3 3/0 Zk
NSWI141 Úvod do počítačových sítí   2 1/0 Zk
NMAI069 Matematické dovednosti 1 2 0/2 Z
NSWI165 Počítačové dovednosti 2 1 0/1 Z
NJAZ070 Anglický jazyk pro středně pokročilé a pokročilé I 3 1 0/2 Z
NTVY014 Tělesná výchova I 5 1 0/2 Z
NMAI055 Matematická analýza II   5 2/2 Z+Zk
NMAI058 Lineární algebra II   5 2/2 Z+Zk
NDMI011 Kombinatorika a grafy I   5 2/2 Z+Zk
NPRG031 Programování II   5 2/2 Z+Zk
NTIN060 Algoritmy a datové struktury I   5 2/2 Z+Zk
NSWI095 Úvod do UNIXu   5 2/2 Z+Zk
NJAZ072 Anglický jazyk pro středně pokročilé a pokročilé II 3 1 0/2 Z
NTVY015 Tělesná výchova II 5 1 0/2 Z

2. rok studia

kód Předmět Kredity ZS LS
NTIN061 Algoritmy a datové struktury II   6 2/2 Z+Zk
NAIL062 Výroková a predikátová logika   6 2/2 Z+Zk
NMAI059 Pravděpodobnost a statistika   6 2/2 Z+Zk
  Povinně volitelné předměty ze skupiny 1      
NJAZ074 Anglický jazyk pro středně pokročilé a pokročilé III 3 1 0/2 Z
NTVY016 Tělesná výchova III 5 1 0/2 Z
NTIN071 Automaty a gramatiky   6 2/2 Z+Zk
NDBI025 Databázové systémy   6 2/2 Z+Zk
NPRG036 Technologie XML   6 2/2 Z+Zk
NPRG045 Ročníkový projekt   4 0/1 Z
NJAZ090 Anglický jazyk pro středně pokročilé a pokročilé IV 3 1 0/2 Z
NJAZ091 Anglický jazyk 4 1 0/0 Zk
NTVY017 Tělesná výchova IV 5 1 0/2 Z
  Povinně volitelné předměty ze skupin 2 a 3        
  Volitelné předměty        

3. rok studia

kód Předmět Kredity ZS LS
NSWI098 Principy překladačů   6 2/2 Z+Zk
NSWI142 Webové aplikace   6 2/2 Z+Zk
NSWI004 Operační systémy   5 2/1 Z+Zk
NSZZ031 Vypracování a konzultace bakalářské práce   6 0/4 Z
  Povinně volitelné předměty ze skupin 2 a 3        
  Volitelné předměty        

1 Předmět NMAI069 Matematické dovednosti je určen a vřele doporučen studentům, kteří si chtějí osvojit a procvičit základní matematické dovednosti používané v matematických předmětech na MFF. Důraz je kladen na korektní matematické vyjadřování a základní důkazové techniky.

2 Předmět NSWI165 Počítačové dovednosti je určen a vřele doporučen studentům, kteří si chtějí osvojit a procvičit základní informatické úlohy související s principy fungování počítačů používané v informatických předmětech na MFF. Důraz je kladen na jasné chápání funkce počítačů v podstatných souvislostech.

3 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.

4 Zkoušku z anglického jazyka NJAZ091 je možné absolvovat v zimním nebo v letním semestru.

5 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.

Doporučené předměty pro jednotlivá zaměření

Softwarové inženýrství

kód Předmět Kredity ZS LS
NPRG051 Pokročilé programování v C++   6 2/2 Z+Zk
NSWI126 Pokročilé nástroje pro vývoj a monitorování software   3 0/2 Z
NPRG024 Návrhové vzory   3 0/2 KZ

Databáze a web

kód Předmět Kredity ZS LS
NDBI038 Vyhledávání na webu   4 2/1 Z+Zk
NDBI007 Organizace a zpracování dat I   4 2/1 Z+Zk
NDBI026 Databázové aplikace   4 1/2 KZ

Požadavky znalostí ke státní závěrečné zkoušce

Matematika

Okruhy 1.-16. se shodují s okruhy 1.-16. oboru Obecná informatika.

1. Čísla 
Vlastnosti přirozených, celých, racionálních, reálných a komplexních čísel. Posloupnosti a řady čísel. Cauchyovské posloupnosti.

2. Základy diferenciálního počtu 
Reálné funkce jedné reálné proměnné. Spojitost, limita funkce v bodě (vlastní i nevlastní). Některé konkrétní funkce (polynomy, racionální lomené funkce, goniometrické a cyklometrické funkce, logaritmy a exponenciální funkce). Derivace: definice a základní pravidla, věty o střední hodnotě, derivace vyšších řádů. Některé aplikace (průběhy funkcí, Taylorův polynom se zbytkem).

3. Integrál 
Primitivní funkce, metody výpočtu. Určitý (Riemannův) integrál, užití určitého integrálu. Vícerozměrný integrál a Fubiniho věta.

4. Základy teorie funkcí více proměnných 
Parciální derivace a totální diferenciál, věty o střední hodnotě, extrémy funkcí více proměnných, věta o implicitních funkcích.

5. Metrické prostory 
Definice metrického prostoru, příklady. Spojitost, otevřené a uzavřené množiny. Kompaktnost.

6. Základní algebraické struktury 
Grupa, okruh, těleso - definice a příklady. Malá Fermatova věta. Dělitelnost a ireducibilní rozklady polynomů. Rozklady polynomů na kořenové činitele pro polynom s reálnými, racionálními, komplexními koeficienty. Násobnost kořenů a jejich souvislost s derivacemi mnohočlenu.

7. Vektorové prostory 
Grupa, těleso. Základní vlastnosti vektorových prostorů, podprostory, generování, lineární závislost a nezávislost. Věta o výměně. Konečně generované vektorové prostory, báze. Lineární zobrazení.

8. Skalární součin 
Vlastnosti v reálném i komplexním případě. Norma. Cauchy-Schwarzova nerovnost. Kolmost. Ortogonální doplněk a jeho vlastnosti.

9. Řešení soustav lineárních rovnic 
Lineární množiny ve vektorovém prostoru, jejich geometrická interpretace. Řešení soustavy rovnic je lineární množina. Frobeniova věta. Řešení soustavy úpravou matice. Souvislost soustavy řešení s ortogonálním doplňkem.

10. Matice 
Matice a jejich hodnost. Operace s maticemi a jejich vlastnosti. Inverzní matice. Regulární matice, různé charakteristiky. Matice a lineární zobrazení, resp. změny souřadných soustav.

11. Determinanty 
Definice a základní vlastnosti determinantu. Úpravy determinantů, výpočet. Geometrický smysl determinantu. Minory a inversní matice. Cramerovo pravidlo.

12. Vlastní čísla a vlastní hodnoty 
Vlastní čísla a vlastní hodnoty lineárního operátoru, resp. čtvercové matice. Jejich výpočet, základní vlastnosti. Uvedení matice na diagonální tvar v případě různých vlastních čísel. Informace o Jordanově tvaru v obecném případě.

13. Diskrétní matematika 
Uspořádané množiny. Množinové systémy, párování, párování v bipartitních grafech (systémy různých reprezentantů). Kombinatorické počítání. Princip inkluze a exkluze.

14. Teorie grafů 
Základní pojmy teorie grafů, reprezentace grafu. Stromy a jejich základní vlastnosti, kostra grafu. Eulerovské grafy. Rovinné grafy, barvení grafů. Mengerova věta, dualita toků a řezů.

15. Pravděpodobnost a statistika 
Náhodné jevy, podmíněná pravděpodobnost, nezávislost náhodných jevů. Náhodné veličiny, střední hodnota, rozdělení náhodných veličin, normální a binomické rozdělení. Lineární kombinace náhodných veličin. Bodové odhady, intervaly spolehlivosti, testování hypotéz, t-test, chí-kvadrát test, lineární regrese.

16. Logika 
Jazyk, formule, sémantika, tautologie. Rozhodnutelnost, splnitelnost, pravdivost, dokazatelnost. Věty o kompaktnosti a úplnosti výrokové a predikátové logiky. Normální tvary výrokových formulí, prenexní tvary formulí predikátové logiky.

Informatika

Okruhy 1.-5. se shodují s okruhy 1.-5. oboru Obecná informatika.

1. Automaty a jazyky
Chomského hierarchie, třídy automatů a gramatik, determinismus a nedeterminismus. Uzávěrové vlastnosti tříd jazyků.

2. Algoritmy a datové struktury
Časová složitost algoritmů, složitost v nejhorším a průměrném případě. Třídy složitosti P a NP, převoditelnost, NP-úplnost. Metoda ,,rozděl a panuj'' - aplikace a analýza složitosti, dynamické programování. Binární vyhledávací stromy, vyvažování, haldy. Hašování. Sekvenční třídění, porovnávací algoritmy, přihrádkové třídění, třídící sítě. Grafové algoritmy - prohledávání do hloubky a do šířky, souvislost, silná souvislost v orientovaných grafech, topologické třídění, nejkratší cesta, kostra grafu, toky v sítích. Tranzitivní uzávěr. Algoritmy vyhledávání v textu. Algebraické algoritmy - DFT, Euklidův algoritmus. RSA. Aproximační algoritmy.

3. Databáze
Architektury databázových systémů. Konceptuální, logická a fyzická úroveň pohledů na data. Algoritmy návrhu schémat relací, normální formy, referenční integrita. Transakční zpracování, vlastnosti transakcí, uzamykací protokoly, zablokování. ER-diagramy, metody návrhů IS. Přehled SQL.

4. Programovací jazyky
Principy implementace objektově orientovaných jazyků, běhová podpora. Oddělený překlad, sestavení, řízení překladu. Pojmy a principy objektového návrhu. Generické programování a knihovny, šablony a generika, kompilační polymorfismus. Neprocedurální programování.

5. Architektura počítačů a operačních systémů
Architektury počítače. Procesory, multiprocesory. Sběrnice, protokoly. Vstupní a výstupní zařízení. Architektury OS. Vztah OS a HW, obsluha přerušení. Procesy, vlákna, plánování. Synchronizační primitiva, vzájemné vyloučení. Zablokování a zotavení z něj. Organizace paměti, alokační algoritmy. Principy virtuální paměti, stránkování, algoritmy pro výměnu stránek, výpadek stránky, stránkovací tabulky. Systémy souborů, adresářové struktury.

6. Základy sítí
Taxonomie počítačových sítí. Architektura ISO/OSI. Přehled síťového modelu TCP/IP. Směrování. Koncept adresy, portu, socketu. Architektura klient/server. Základy fungování protokolů HTTP, FTP a SMTP. Principy datových přenosů - kódování, modulace, přenosová rychlost a pásmo, Nyquistův a Shannonův teorém, analogový/digitální přenos, přenosová média. Techniky přenosu dat - synchronní/asynchronní přenosy, CRC, potvrzování, řízení toku. Přístupové metody, řešení kolizí. Směrování. Koncept adresy, portu, socketu. QoS.

7. Překladače
Struktura překladače, lexikální, syntaktická analýza, generování mezikódu, optimalizace. Interpretované jazyky, virtuální stroje.

8. Pro zaměření Softwarové inženýrství
Vícehodnotové logické programování. Faginův datový model a algoritmus. Míry úspěšnosti algoritmů. Rámec pro převeditelnost informačních modelů. Informační modely a uspořádání. Tvorba webových stránek pomocí HTML, XHTML a CSS. Programování na straně serveru: PHP, Java, .NET. Programování na straně klienta: JavaScript, AJAX. Technologie webových služeb: REST, SOAP, WSDL. Linked Data: principy, RDF, RDF Schema. Principy formátu XML, definice struktury XML dat pomocí DTD a XML Schema. Rozhraní DOM a SAX, XML Infoset. Dotazovací jazyky XPath, XQuery, XML Query Update. Transformace XML dat pomocí XSL. Databáze s XML rozšířením a jejich principy, SQL/XML. Nativní XML databáze a jejich principy. Přehled standardních XML formátů (DocBook, OpenOffice, SVG, XHTML, RDF, MathML, RSS, ...)

Návrhové vzory. Významná rozšíření a příbuzné jazyky C++: C, C++/CLI, .Net, POSIX, GNU. Kompilační polymorfismus: Parciální a explicitní specializace, policy classes, traits. Koncepty. Standardní knihovny: Kontejnery, iterátory, algoritmy. Lambda výrazy. Paralelní prostředí. Bezpečné a přenositelné programování, předcházení chybám. Ladění chyb a výkonu, pokročilé vývojové nástroje. Interakce programu s okolím, rozhraní OS. Typická paradigmata důležitých rozhraní: databáze, XML, síťová komunikace, GUI, grafika.

8. Pro zaměření Databáze a web
Vícehodnotové logické programování. Faginův datový model a algoritmus. Míry úspěšnosti algoritmů. Rámec pro převeditelnost informačních modelů. Informační modely a uspořádání. Tvorba webových stránek pomocí HTML, XHTML a CSS. Programování na straně serveru: PHP, Java, .NET. Programování na straně klienta: JavaScript, AJAX. Technologie webových služeb: REST, SOAP, WSDL. Linked Data: principy, RDF, RDF Schema. Principy formátu XML, definice struktury XML dat pomocí DTD a XML Schema. Rozhraní DOM a SAX, XML Infoset. Dotazovací jazyky XPath, XQuery, XML Query Update. Transformace XML dat pomocí XSL. Databáze s XML rozšířením a jejich principy, SQL/XML. Nativní XML databáze a jejich principy. Přehled standardních XML formátů (DocBook, OpenOffice, SVG, XHTML, RDF, MathML, RSS, ...)

Optimalizace dotazů (indexy, hinty, plány provedení, metody přístupu k datům, spojování tabulek). Implementace integritních omezení. Využití XML rozšíření relačních databází. Fultextové vyhledávání v SQL databázích. Schémata organizace souborů. Základní typy indexů a jejich použití. B-stromy a jejich varianty. Hašování a sekundární paměť. Hledání dat podle více atributů. Mapování datových struktur do sekundární paměti. Vyhledávání textu - Booleovské a vektorové modely. Vyhledávání hypertextu, ranking, optimalizace webových stránek pro vyhledávače. Podobnostní vyhledávání v multimediálních databázích. Metrické indexování podobnosti. Kolaborativní filtrování.