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

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