Aplikované funkcionální programování
Kód | Zakončení | Kredity | Rozsah | Jazyk výuky |
---|---|---|---|---|
NI-AFP | KZ | 5 | 2P+1C | česky |
- Garant předmětu:
- Robert Pergl
- Přednášející:
- Robert Pergl, Marek Suchánek
- Cvičící:
- Daniel Němec, Robert Pergl, Marek Suchánek
- Předmět zajišťuje:
- katedra softwarového inženýrství
- Anotace:
-
Funkcionální programování představuje jedno z tradičních programovacích paradigmat. Jelikož v současné době jsou na vzestupu tradiční i nové funkcionální jazyky a funkcionální paradigma se stává i důležitým prvkem tradičně imperativních jazyků (C++, C#, Java), je nutnou kompetencí softwarového inženýra toto paradigma ovládat jak po stránce teoretické, tak především praktické.
- Požadavky:
-
BI-PPA je vhodnou, nikoliv nutnou prerekvizitou.
- Osnova přednášek:
-
1. Úvod do předmětu, funkcionálního programování a nástrojů.
2. Funkce a datové typy
3. Strukturování kódu, vyhodnocování a textové typy
4. Kontejnery (datové typy), pokročilé funkce a operátory
5. Typové třídy
6. IO, vyjímky a další typové třídy
7. Testování, dokumentace, výkon
8. Webové aplikace v Haskell
9. Úvod do jazyka Elm
10. The Elm Architecture
11. Webové aplikace v Elm
12. Příklady z praxe, diskuse a konzultace
- Osnova cvičení:
-
1. Úvod do předmětu, funkcionálního programování a nástrojů.
2. Funkce a datové typy
3. Strukturování kódu, vyhodnocování a textové typy
4. Kontejnery (datové typy), pokročilé funkce a operátory
5. Typové třídy
6. IO, vyjímky a další typové třídy
7. Testování, dokumentace, výkon
8. Webové aplikace v Haskell
9. Úvod do jazyka Elm
10. The Elm Architecture
11. Webové aplikace v Elm
12. Příklady z praxe, diskuse a konzultace
- Cíle studia:
-
Koncepty budou demonstrovány na čistém funkcionálním jazyku Haskell, nicméně studenti by měli být schopni aplikovat nabyté poznatky i v ostatních jazycích; bude též poskytnut přehled současné nabídky funkcionálních jazyků a jejich základních vlastností. V druhé půlce semestru se studenti seznámí rovněž s jazykem Elm.
- Studijní materiály:
-
Učebnice:
The Haskelll Book
Learn you a Haskell for Great Good
Články:
Why functional programming matters
How functional programming mattered
Další materiály:
https://wiki.ccmi.fit.cvut.cz/doku.php?id=programming:haskell
- Poznámka:
-
Tento předmět obsahově navazuje na bakalářský předmět Programovací paradigmata
Informace o předmětu a výukové materiály naleznete na https://courses.fit.cvut.cz/MI-AFP/
- Další informace:
- https://courses.fit.cvut.cz/MI-AFP/
- Rozvrh na zimní semestr 2024/2025:
- Rozvrh není připraven
- Rozvrh na letní semestr 2024/2025:
- Rozvrh není připraven
- Předmět je součástí následujících studijních plánů:
-
- Bc. program Informatika, pro fázi studia bez oboru, 2015-2020 (volitelný předmět)
- Bc. obor Bezpečnost a informační technologie, 2015-2020 (volitelný předmět)
- Bc. obor Teoretická informatika, 2015-2020 (volitelný předmět)
- Bc. obor Počítačové inženýrství, 2015-2020 (volitelný předmět)
- Bc. obor Informační systémy a management, 2015-2020 (volitelný předmět)
- Bc. obor Webové a softwarové inženýrství, zaměření Softwarové inženýrství, 2015-2020 (volitelný předmět)
- Bc. obor Webové a softwarové inženýrství, zaměření Webové inženýrství, 2015-2020 (volitelný předmět)
- Bc. obor Webové a softwarové inženýrství, zaměření Počítačová grafika, 2015-2020 (volitelný předmět)
- Bc. obor Znalostní inženýrství, 2018-2020 (volitelný předmět)
- Mgr. specializace Počítačová bezpečnost, 2020 (volitelný předmět)
- Mgr. specializace Návrh a programování vestavných systémů, 2020 (volitelný předmět)
- Mgr. specializace Počítačové systémy a sítě, 2020 (volitelný předmět)
- Mgr. specializace Manažerská informatika, 2020 (volitelný předmět)
- Mgr. specializace Softwarové inženýrství, 2020 (volitelný předmět)
- Mgr. specializace Systémové programování, verze od 2020 (volitelný předmět)
- Mgr. specializace Webové inženýrství, 2020 (volitelný předmět)
- Mgr. specializace Znalostní inženýrství, 2020 (volitelný předmět)
- Mgr. specializace Teoretická informatika, 2020 (volitelný předmět)
- Mgr. program, pro fázi studia bez specializace, ver. pro roky 2020 a vyšší (volitelný předmět)
- Bc. specializace Informační bezpečnost, 2021 (volitelný předmět)
- Bc. specializace Manažerská informatika, 2021 (volitelný předmět)
- Bc. specializace Počítačová grafika, 2021 (volitelný předmět)
- Bc. specializace Počítačové inženýrství, 2021 (volitelný předmět)
- Bc. program, pro fázi studia bez specializace, 2021 (volitelný předmět)
- Bc. specializace Webové inženýrství, 2021 (volitelný předmět)
- Bc. specializace Umělá inteligence, 2021 (volitelný předmět)
- Bc. specializace Teoretická informatika, 2021 (volitelný předmět)
- Bc. specializace Softwarové inženýrství, 2021 (volitelný předmět)
- Bc. specializace Počítačové systémy a virtualizace, 2021 (volitelný předmět)
- Bc. specializace Počítačové sítě a Internet, 2021 (volitelný předmět)
- Study plan for Ukrainian refugees (volitelný předmět)
- Mgr. specializace Systémové programování, verze od 2023 (volitelný předmět)
- Mgr. specializace Teoretická informatika, 2023 (volitelný předmět)
- Bc. specializace Informační bezpečnost, 2024 (volitelný předmět)
- Bc. program, pro fázi studia bez specializace, 2024 (volitelný předmět)
- Bc. specializace Manažerská informatika, 2024 (volitelný předmět)
- Bc. specializace Počítačová grafika, 2024 (volitelný předmět)
- Bc. specializace Softwarové inženýrství, 2024 (volitelný předmět)
- Bc. specializace Webové inženýrství, 2024 (volitelný předmět)
- Bc. specializace Počítačové sítě a Internet, 2024 (volitelný předmět)
- Bc. specializace Počítačové inženýrství, 2024 (volitelný předmět)
- Bc. specializace Počítačové systémy a virtualizace, 2024 (volitelný předmět)
- Bc. specializace Umělá inteligence, 2024 (volitelný předmět)
- Bc. specializace Teoretická informatika, 2024 (volitelný předmět)