Detail předmětu
Funkcionální programování
FSI-VFL Ak. rok: 2026/2027 Letní semestr
Tento předmět se zaměřuje na hlubší pochopení principů funkcionálního programování prostřednictvím jazyka F#. Studenti se seznámí s teoretickými základy funkcionálního paradigmatu, jako jsou algebraické datové typy, kompozice funkcí, immutabilita nebo práce s efektivními datovými strukturami, a naučí se tyto koncepty aplikovat při návrhu robustních a bezpečných softwarových systémů. Kurz se věnuje také pokročilejším technikám, mezi které patří pattern matching, funkcionální error-handling, computation expressions či asynchronní a paralelní výpočty, a klade důraz na architektonické zásady typické pro funkcionální svět, jako je separation of concerns či modelování domény pomocí typů. Součástí výuky je nejen teorie, ale i praktická tvorba aplikací, které studenty povedou k porozumění tomu, jak lze funkcionální přístup efektivně využít v moderním softwarovém vývoji.
Garant předmětu
Zajišťuje ústav
Výsledky učení předmětu
Prerekvizity
Základní znalosti programování.
Plánované vzdělávací činnosti a výukové metody
Způsob a kritéria hodnocení
Hodnocení je založeno na aktivitě studentů v předmětu a obhajobě zadaného projektu.
Jazyk výuky
čeština
Cíl
Cílem předmětu je seznámit studenty s neimperativními přístupy k řešení problémů a prohloubit jejich znalosti principů metod funkcionálního programování.
Vymezení kontrolované výuky a způsob jejího provádění a formy nahrazování zameškané výuky
Použití předmětu ve studijních plánech
Program N-AIŘ-P: Aplikovaná informatika a řízení, magisterský navazující
obor ---: bez specializace, 4 kredity, povinně volitelný
Typ (způsob) výuky
Přednáška
13 hod., nepovinná
Osnova
1. Funkcionální programování v moderním světě
2. Funkce a kompozice jako hlavní stavební kámen
3. Algebraické datové typy – teorie a modelování domén
4. Pattern matching – deterministické řízení toku
5. Higher-order funkce a funkcionální design
6. Kolekce, lazy evaluace a nekonečné struktury
7. Funkcionální error-handling – od teorie k praxi
8. Architekturální principy ve funkcionálním světě
9. Práce se stavem – teorie a praxe
10. Asynchronní a paralelní FP
11. Computation expressions – obecný mechanismus pro abstrakci výpočtů
12. Funkcionální doménový návrh (FDD)
13. Výstavba plně funkcionální architektury
Cvičení s počítačovou podporou
26 hod., povinná
Osnova
1. F# v moderním .NET ekosystému
2. Funkcionální jádro: funkce, kompozice a expresivita
3. Pokročilé typy: records, unions, tuples
4. Pattern matching jako základní mechanismus řízení toku
5. Higher-order funkce a funkcionální design
6. Kolekce, sekvence a lazy evaluace
7. Error handling v profesionálních FP aplikacích
8. Moduly, architektura a návrhové vzory ve F#
9. Práce se stavem ve funkcionálních systémech
10. Asynchronní a paralelní funkcionální programování
11. Computation expressions – custom workflow, syntactic sugar
12. Funkcionální doménový návrh (FDD / DDD ve F#)
13. Moderní trendy