Otázky B-PVA Programování a vývoj aplikací

Jednooborový studijní plán

Teoretické základy informatiky a matematika

  1. Lineární algebra. Operace s vektory a maticemi, vlastnosti lineárních operací a skalárního součinu. Gaussova eliminace, determinant. Vlastní čísla a vektory, jejich geometrický význam, inverzní matice, vektorové podprostory, vektorové báze, afinní transformace. (MB141)
  2. Základy matematické analýzy. Relace a zobrazení, vlastnosti reálných funkcí, polynomy, spojité funkce a limity, derivace, neurčitý a určitý integrál, geometrický význam. Diferenciální počet. (IB000, MB142)
  3. Popisná statistika. Popisná statistika, střední hodnota, medián, rozptyl, korelace. Odhady statistik a jejich spolehlivost. Distribuční funkce, rozdělení náhodných veličin a jejich příklady. (MB143)
  4. Grafy a jejich prohledávání. Typy grafů, stromy, stupně vrcholů, orientované grafy, reprezentace grafů. Algoritmy prohledávání grafu do hloubky a do šířky a jejich využití. Komponenty souvislosti. (IB000, IB002)
  5. Grafové algoritmy. Ohodnocené grafy, definice nejkratší cesty, minimální kostry grafu, algoritmy pro hledání nejkratších cest (Dijkstrův, Bellman-Fordův algoritmus) a minimálních koster v grafu. (IB000, IB002)
  6. Stromové datové struktury. Binární vyhledávací stromy, B-stromy, červeno-černé stromy, haldy, související operace a jejich složitost. Typické implementace, příklady použití. (IB002)
  7. Návrh algoritmů. Metoda rozděl a panuj, výhody a nevýhody použití rekurze, odstranění rekurze. Vysvětlení principů a implementace řadících rekurzivních algoritmů. Vztah rekurze a matematické indukce. (IB002, IB015)
  8. Funkcionální programování. Funkcionální programovací paradigma (princip výpočtu, redukční krok, redukční strategie a jejich vlastnosti, příklady). Funkce vyšších řádů a jejich využití. Nepojmenované funkce. Schopnost elementárního programování v Haskellu. (IB015)
  9. Regulární jazyky. Chomského hierarchie formálních jazyků. Regulární jazyky, jejich reprezentace a převody mezi nimi. Varianty konečných automatů. Nedeterminismus a determinizace automatů. Uzávěrové vlastnosti regulárních jazyků. (IB110)
  10. Rozhodnutelnost. Pojem algoritmického problému a algoritmu. Turingův stroj a problém zastavení. Rozhodnutelnost a částečná rozhodnutelnost, nerozhodnutelnost. Metoda redukce, diagonalizace. (IB110)
  11. Složitost. Složitost algoritmu versus složitost problému. Složitostní třídy (P, NP) a vztahy mezi nimi, příklady problémů z jednotlivých tříd. Těžkost a úplnost problému v dané třídě, polynomiální redukce problémů, NP-úplné úlohy. (IB110)
Programové, výpočetní a informační systémy

  1. Strukturování a řízení běhu programu. Podprogramy, rozsahy jmen, předávání hodnot, výjimky. Objektově orientované programování. Zapouzdření, dědičnost, polymorfismus - principy, použití a implementace. Realizace v jazycích C#, C++ nebo Java (dle vlastní volby). (PB006)
  2. Principy nízkoúrovňového programování. Paměťový model programu; správa paměti, dynamická alokace, práce s uživatelskými datovými strukturami. Nízkoúrovňová práce s pamětí, ukazatel, pole a ukazatelová aritmetika. Způsoby ladění programu (debugging). (PB071)
  3. Architektury. Číselné soustavy, vztahy mezi soustavami, zobrazení celého čísla v počítači, aritmetika. Kódy, vnitřní, vnější, detekční a opravné. Obvody a paměti: parametry, architektura. Procesor, programování, mikroprogramování. Architektury: RISC/CISC, vyrovnávací paměti. (PB150)
  4. Databáze. Relační model dat, relační schéma, klíče relačních schémat, relační algebra (projekce, selekce, agregace, přejmenování), spojování relací. Funkční závislosti, normální formy (1NF, 2NF, 3NF, Boyce-Coddova NF), vztahy mezi normálními formami. Dekompozice relačních schémat, normalizace schématu. (PB154)
  5. SQL, transakce a zpracování dotazů. Syntaxe a sémantika příkazů. Příkazy pro dotazování a aktualizaci dat, agregační funkce, triggery a uložené procedury, definici dat, integritní omezení. Transakční zpracování, jeho vlastnosti. Základní principy vyhodnocování dotazů (náklady na vyhodnocení dotazu, využití indexování a hašování). (PB154)
  6. Operační systémy. Architektura operačního systému, architektura jádra, základní režimy procesoru. Programovací rozhraní, knihovny. Uživatel, přístupová práva, virtualizace. Virtuální paměť, proces a stránkové tabulky. Vlákno, plánování vláken a procesů. Souběžnost, uváznutí, přidělování zdrojů. Vznik procesu a spuštění programu v systémech POSIX, copy-on-write. (PB152)
  7. Souborové systémy. Blokové zařízení, bloková vrstva, I/O plánovač, RAID, šifrování disku. Obyčejné soubory, alokace volného místa, fragmentace. Adresářová struktura a její reprezentace na disku. Vstup a výstup mapovaný do paměti. (PB152)
  8. Sítě. Modely vrstev počítačových sítí (ISO/OSI, TCP/IP): funkcionalita a součinnost vrstev, adresace. Fyzická vrstva, signály a jejich kódování, řízení přístupu k médiu. Propojování počítačových sítí. Síťové protokoly, přepínání a směrování, multicast. Zajištěný přenos dat, sestavení a ukončení spojení. Transportní protokoly. (PB156)
  9. Síťové aplikace a bezpečnost. Základní aplikační protokoly: doručování pošty, přenos souborů, web, jmenná služba. Principy popisu a zajištění kvality služby, použití pro multimédia. Zabezpečení síťové komunikace, autentizace a šifrování, zabezpečení na jednotlivých protokolových vrstvách. (PB156)
  10. Základy informační bezpečnosti. Základní bezpečnostní funkce a jejich zajištění – důvěrnost, integrita, dostupnost, nepopiratelnost původu. Kryptografická primitiva, protokoly. Řízení rizik, audit, bezpečnostní operace, standardy, hodnocení bezpečnosti. (PV080)
  11. Informační bezpečnost. Řízení identity a přístupu. Ochrana soukromí – koncepty a metody. Síťové útoky. Bezpečné programování a vývoj SW. Použitelná bezpečnost. (PV080)
  12. Aplikované informační systémy. Definice AIS, oblasti použití IS: Státní správa, Výroba, Zdravotnictví, Sklady a obchod. Architektury rozsáhlých informačních systémů. Metody vedení rozsáhlých projektů. Řízení provozu IS. (PV028)
  13. Digitální systémy. Teorie zobrazení dat a kódování informací včetně operací. Algebraické, grafické a algoritmické minimalizační metody. Optimalizace založené na - minimalizaci zpoždění, minimalizaci logických prvků, testovatelnosti. Kombinační konstrukční prvky digitálních systémů – aritmetické obvody, komparátory, multiplexery a demultiplexery, kodéry a dekodéry. Sekvenční obvody – kódování vnitřních stavů a jeho vliv na konstrukci. Typy a vlastnosti klopných obvodů. Základní sekvenční konstrukční prvky digitálních systémů – registry, čítače, komparátory, řadiče a sekvencéry. (PV170)
  14. Paralelní systémy. Základní metody v návrhu paralelních algoritmů - dekompozice, mapování, komunikační primitiva. Výkonnostní analýza paralelních algoritmů. Paralelní algoritmy v prostředí se sdílenou pamětí. OpenMP standard. POSIX Threads. Lock-free přístup. Paralelní algoritmy v prostředí s distribuovanou pamětí. Message Passing Interface (MPI). (IB109)
  15. Moderní značkovací jazyky. Základní standardy rodiny XML. Aplikace XML pro dokumenty a data. Objektový model dokumentu (DOM). Jazyky schémat (XML Schema). Navigace a dotazování v XML datech (XPath, XQuery). Transformace XML (XSLT). (PB138)