English
Kamil Dudka

Studijní materiály

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