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

Functional Programming

Přihlášení do KOSu pro zápis předmětu Zobrazit rozvrh
Kód Zakončení Kredity Rozsah Jazyk výuky
BE4B36FUP Z,ZK 6 2P+2C anglicky
Vztahy:
Předmět BE4B36FUP nesmí být zapsán, je-li v témže semestru zapsán anebo již dříve absolvován předmět B4B36FUP (vztah je symetrický)
Předmět BE4B36FUP může při kontrole studijních plánů nahradit předmět B4B36FUP
Předmět BE4B36FUP nesmí být zapsán, je-li v témže semestru zapsán anebo již dříve absolvován předmět B4B36FUP (vztah je symetrický)
Garant předmětu:
Michal Pěchouček
Přednášející:
Niklas Maximilian Heim
Cvičící:
Niklas Maximilian Heim
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
místnost KN:E-301
Heim N.
11:00–12:30
(přednášková par. 1)
Karlovo nám.
Šrámkova posluchárna K9
místnost KN:E-328
Heim N.
18:00–19:30
(přednášková par. 1
paralelka 103)

Karlovo nám.
Bourací učebna
St
místnost KN:E-311
Heim N.
09:15–10:45
(přednášková par. 1
paralelka 101)

Karlovo nám.
Lab K311
místnost KN:E-311
Heim N.
11:00–12:30
(přednášková par. 1
paralelka 102)

Karlovo nám.
Lab K311
Čt

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