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
  6. Makra
  7. Líné vyhodnocování v datových strukturách, přísliby a proudy
  8. Líné vyhodnocování v programovacích jazycích, aplikativní a normální model vyhodnocení
  9. 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. Příklad jednoho nebo více objektově orientovaných jazyků (Java, C sharp, C++, Common Lisp, Python, …) a jejich objektově orientované rysy

  1. Paralelní program - proces, stavy, plánovač, stav programu, historie, slabá férovost
  2. Atomické operace
  3. Programová logika, invarianty, dokazování
  4. Problém kritické sekce - vlastnosti, Petersonův a Dekkerův algoritmus
  5. Semafory - operace, invarianty, implementace a použití
  6. Večeřící východní mudrci, čtenáři a písaři, výrobci a spotřebitelé
  7. Bariéry, paralelní součet prefixů
  8. Logické programování - pravidla, cíl substituce, unifikace, úsudek, strom úsudků
  9. Aritmetika v logickém programování

  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é, charakteristické vlastnosti relací
  2. Relační algebra - množinové operace, restrikce, projekce, přirozené spojení, přejmenování atributů, relační dělení
  3. SELECT výraz v SQL
  4. Kontrola integrity - primární a alternativní klíče, cizí klíče
  5. Funkční závislosti, Boyceho-Coddova normální forma, normalizace
  6. Pohledy v SQL
  7. Agregace, slučování a rozdělování atributů, řazení 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