Logo ČVUT
ČESKÉ VYSOKÉ UČENÍ TECHNICKÉ V PRAZE
STUDIJNÍ PLÁNY
2023/2024

Funkcionální programování

Přihlášení do KOSu pro zápis předmětu Zobrazit rozvrh
Kód Zakončení Kredity Rozsah Jazyk výuky
B4B36FUP Z,ZK 6 2P+2C česky

Předmět B4B36FUP nesmí být zapsán, je-li v témže semestru zapsán anebo již dříve absolvován předmět BE4B36FUP (vztah je symetrický)

Předmět B4B36FUP nesmí být zapsán, je-li v témže semestru zapsán anebo již dříve absolvován předmět BE4B36FUP (vztah je symetrický)

Předmět B4B36FUP může být splněn v zastoupení předmětem BE4B36FUP

Garant předmětu:
Michal Pěchouček
Přednášející:
Rostislav Horčík
Cvičící:
Rostislav Horčík, Jiří Němeček, Tomáš Votroubek, Matěj Zorek
Předmět zajišťuje:
katedra počítačů
Anotace:

Předmět podává úvod do technik funkcionálního programování, výhod a

nevýhod funkcionálního přístupu, a nejběžnějších použití těchto

technik v praxi. Tyto jazyky jsou deklarativní v tom smyslu, že

programátor symbolicky popíše problém, který má být řešen, místo výčtu

konkrétní posloupnosti akcí, které má počítač provést. Tento přístup

umožnuje soustředit se na jádro problému a implementovat i velmi

komplikované algoritmy kompaktně. Funkcionální programování má

nesporné výhody pro paralelizaci a formální verifikaci algoritmů a

nejužitečnější koncepty funkcionálního programování stále více

pronikají i do standardních programovacích jazyků. Díky důrazu na

operace se symboly a namísto čísel, funkcionální programování také

nalezlo významné aplikace v umělé inteligenci, např. v agentových

systémech či v symbolickém strojovém učení.

Tento předmět je také součástí meziuniverzitního programu prg.ai Minor. Ten spojuje to nejlepší z výuky AI v Praze s cílem poskytnout studujícím hlubší a širší vhled do oboru umělé inteligence. Více informací je k dispozici na webu https://prg.ai/minor.

Požadavky:
Osnova přednášek:

1. Úvod do deklarativních programovacích jazyků. Srovnání s

klasickými imperativními jazyky. Hlavní principy a praktické aplikace

funkcionálního programování.

2. LISP: základní jazykové idiomy, atomy, seznamy, rekurze

3. LISP: lambda abstrakce, vestavěné funkce, pokročilé datové struktury

4. LISP: vestavěné funkce vyšších řádů

5. LISP: nekonečné datové struktury, uzávěry (closures)

6. Úvod do Lambda kalkulu, vztah k funkcionálnímu programování

7. Ekvivalence funkcionálního programování s Turingovím strojem

8. Typy ve funkcionálních jazycích, jejich smysl a důsledky na

vyjadřovací sílu jazyka, typovaný Lambda kalkulus

9. Haskell: typy, vzory, vestavěné funkce, lambda abstrakce

10. Haskell: líné vyhodnocování, částečná aplikace funkce

11. Haskell: monády

12. Automatické optimalizace ve funkcionálním programování, formální

verifikace funkcionálních programů

13. Funkcionální programování a paralelní výpočty

14. Funkcionální rysy v populárních programovacích jazycích a nástrojích

Osnova cvičení:
Cíle studia:
Studijní materiály:

Hudak, Paul, and Joseph H. Fasel. „A gentle introduction to Haskell.“ ACM Sigplan Notices 27.5 (1992): 1-52.

Harvey, Brian, and Matthew Wright. Simply Scheme: introducing computer science. Mit Press, 1999.

Poznámka:
Další informace:
https://cw.fel.cvut.cz/wiki/courses/fup/start
Rozvrh na zimní semestr 2023/2024:
Rozvrh není připraven
Rozvrh na letní semestr 2023/2024:
06:00–08:0008:00–10:0010:00–12:0012:00–14:0014:00–16:0016:00–18:0018:00–20:0020:00–22:0022:00–24:00
Po
Út
St
Čt
místnost KN:E-107
Horčík R.
12:45–14:15
(přednášková par. 1)
Karlovo nám.
Zengerova posluchárna K1
místnost KN:E-328
Zorek M.
Votroubek T.

14:30–16:00
(přednášková par. 1
paralelka 101)

Karlovo nám.
Bourací učebna
místnost KN:E-328
Němeček J.
16:15–17:45
(přednášková par. 1
paralelka 102)

Karlovo nám.
Bourací učebna
místnost KN:E-301
Horčík R.
12:45–14:15
(přednášková par. 1)
Karlovo nám.
Šrámkova posluchárna K9

Předmět je součástí následujících studijních plánů:
Platnost dat k 18. 5. 2024
Aktualizace výše uvedených informací naleznete na adrese https://bilakniha.cvut.cz/cs/predmet4703006.html