Study
Základy programování (IZP)
- Algoritmy a řešení problémů: strategie řešení problémů, strukturovaná dekompozice, pojem a vlastnosti algoritmu.
- Základní programovací konstrukty: syntaxe a sémantika vyššího programovacího jazyka, definice proměnných, datové typy, výrazy, řídicí struktury, podprogramy, předávání parametrů, vstupy/výstupy.
- Základní datové struktury: primitivní datové typy, přiřazení, implicitní typová konverze, explicitní typová konverze.
- Strukturované datové typy: pole, struktura, soubor, znakové řetězce.
- Alokace paměti: základní typy alokace paměti, jejich princip a použití.
- Proměnné a konstanty: druhy, umístění v paměti.
- Dynamické datové struktury, typ ukazatel.
- Hodnocení složitosti algoritmů.
- Algoritmy pro vyhledávání: sekvenční vyhledávání, vyhledávání v neseřazeném a v seřazeném poli, vyhledávání se zarážkou, binární vyhledávání.
- Metody řazení: vlastnosti, principy, Select-sort, Insert-sort, Bubble-sort a jeho varianty.
- Rekurze: princip rekurze, rekurze v programování, jednoduché rekurzivní funkce.
- Modulární návrh a abstrakce.
- Dokazování správnosti programů: částečná a úplná správnost, invarianty, konvergence, průběžné dokazování.
Algoritmy (IAL)
- Přehled základních datových struktur a jejich použití.
- Principy dynamického přidělování paměti.
- Specifikace abstraktních datových typů (ADT).
- Specifikace a implementace ADT: seznamy, zásobník, fronta, množina, pole, vyhledávací tabulka, graf, binární strom.
- Základní operace nad uvedenými ADT a jejich využití.
- Zásobník a vyčíslování výrazů.
- Algoritmy nad binárním stromem.
- Vyhledávání: sekvenční, v neseřazeném a seřazeném poli, s adaptivní rekonfigurací, vyhledávání se zarážkou, binární vyhledávání, binární vyhledávací strom, vyvážený strom (AVL).
- Vyhledávání v tabulkách s rozptýlenými položkami.
- Řazení, principy, stabilita, řazení bez přesunu položek, řazení podle více klíčů.
- Nejznámější metody řazení a jejich principy: Select-sort, Bubble-sort, Heap-sort, Insert-sort a jeho varianty, Shell-sort, Quick sort v rekurzívní a nerekurzívní notaci, Merge-sort, List-merge-sort, Radix-sort.
- Sekvenční metody řazení.
- Rekurze a algoritmy s návratem.
- Vyhledávání podřetězců v textu.
- Základní principy dokazování programů, antecendence, konsekvence, invariant cyklu, tvorba dokázaných programů.
Softwarové inženýrství (IUS)
- Vznik softwarového inženýrství, softwarová krize.
- Vlastnosti softwaru, problémy při jeho vývoji.
- Životní cyklus softwaru, charakteristika jeho etap.
- Modely životního cyklu softwaru.
- Analýza a specifikace požadavků, diagram případů užití.
- Objektová orientace, diagram tříd.
- Strukturovaná analýza a návrh, ER diagram.
- Jazyk UML, statické a dynamické diagramy.
- Implementace a testování softwaru.
- Agilní metodologie tvorby softwaru.
- Řízení softwarových projektů.
- Kvalita a měření v softwarovém inženýrství.
- Ochrana intelektuálního vlastnictví.