1. Přehled a základní rysy programovacích paradigmat - funkcionální, procedurální, objektové
  2. Symbolické výrazy a jejich vyhodnocování v jazyce Common Lisp
  3. Rekurzivní funkce a rekurzivní výpočetní proces
  4. Funkce vyššího řádu
  5. Lexikální a dynamický rozsah platnosti proměnných

  1. Makra
  2. Líné vyhodnocování v datových strukturách, přísliby a proudy
  3. Líné vyhodnocování v programovacích jazycích, aplikativní a normální model vyhodnocení
  4. Zásobníkový model vyhodnocování

  1. Objektově orientované programování - třídy a objekty, zprávy a metody
  2. Zapouzdření, polymorfismus, rozhraní, dědičnost (jednoduchá i vícenásobná)
  3. Pravidlo is-a, princip B. Liskovové, kontraktové programování
  4. OOP založené na prototypech
  5. , C++, Common Lisp, Python, …) a jejich objektově orientované rysy

  1. Paralelní program - proces a jeho stavy, plánovač, stav programu, historie, slabá férovost
  2. Invarianty programu - pravdivost a dokazování
  3. Atomické operace a pravidlo nejvýše jednou
  4. Problém kritické sekce - vlastnosti, Dekkerův algoritmus
  5. Semafory - operace invarianty a použití
  6. Výrobci a spotřebitelé
  7. INF-PVS Večeřící filozofové
  8. Bariéry
  9. Logické programování v Prologu - pravidla, cíl substituce, resoluční strom, reprezentace čísel a seznamů

  1. Softwarový proces, jeho fáze a jeho modely (vodopádový, evoluční, iterativní)
  2. Specifikace požadavků(druhy požadavků, metody zjišťování požadavků, diagram případů užití)
  3. Návrh systému a využití jazyka UML při návrhu (diagram tříd, sekvenční diagram, stavový diagram, diagram aktivit)
  4. Sestavení kvalitního kódu (formátování kódu, efektivní využívání deklarací, konvence zápisu funkcí a jejich parametrů, zásady pro psaní příkazů)
  5. Testování programu (metody testování, úrovně testování, kategorie chyb)
  6. Návrhové vzory a vzory architektur SW
  7. Verze software a systémy pro správu verzí

  1. Relační model databáze - atributy, n-tice, relace, relační proměnné
  2. Relační algebra - množinové operace, restrikce, projekce, přirozené spojení, přejmenování atributů, relační dělení
  3. Operace rozšíření
  4. SELECT výraz v SQL
  5. Kontrola integrity - primární a alternativní klíče, cizí klíče
  6. Funkční závislosti, Boyceho-Coddova normální forma, normalizace
  7. Pohledy - pohledy vSQL, měnitelné pohledy
  8. Agregace - slučování a rozdělování atributů, agregace v SQL

  1. Počítačové sítě, jejich služby a architektury
  2. Ethernet - přepínač, použití média, linkový rámec
  3. Protokol IP - paket, adresy a podsítě, směrování
  4. Protokoly TCP a UDP - spojení a řízení toku dat
  5. Systém DNS
  6. Aplikační služby a tvorba síťových aplikací
  7. Bezpečnost počítačových sítích

  1. Architektury a princip činnosti počítače
  2. Číselné soustavy
  3. Binární logika, logické operace a jejich vlastnosti, funkce a jejich úpravy, logické obvody
  4. Reprezentace čísel a znaků v počítači
  5. Detekční a samoopravné kódy

  1. Operační systém, architektura, poskytovaná rozhraní
  2. Vykonávání programu a proces překladu
  3. Správa procesoru - procesy a vlákna, plánování jejich běhu, komunikace a synchronizace
  4. Problém uváznutí, jeho detekce a metody předcházení
  5. Správa operační paměti - segmentace, stránkování, virtuální paměť
  6. Přidělování a uvolňování paměti v uživatelských procesech, garbage collector