Aplikované funkcionální programování
Kód | Zakončení | Kredity | Rozsah | Jazyk výuky |
---|---|---|---|---|
MI-AFP | KZ | 5 | 2P+1C | česky |
- Garant předmětu:
- Přednášející:
- Cvičící:
- 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. Větvení a strukturování kódu
4.Další důležité datové typy, divergence a práce s chybami, lazy vyhodnocování
5. Pokročilejší konstrukce při tvorbě funkcí a operátorů
6. Typové třídy 1
7. Typové třídy 2
8. Typové třídy 3
9. Tvorba dokumentace a testů
10. Webový framework (Spock/Scotty/Yesod), Vai a reaktivní programování
11. GUI aplikace
12. 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. Větvení a strukturování kódu
4.Další důležité datové typy, divergence a práce s chybami, lazy vyhodnocování
5. Pokročilejší konstrukce při tvorbě funkcí a operátorů
6. Typové třídy 1
7. Typové třídy 2
8. Typové třídy 3
9. Tvorba dokumentace a testů
10. Webový framework (Spock/Scotty/Yesod), Vai a reaktivní programování
11. GUI aplikace
12. 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í.
- 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
- Další informace:
- https://courses.fit.cvut.cz/MI-AFP/
- Pro tento předmět se rozvrh nepřipravuje
- Předmět je součástí následujících studijních plánů:
-
- Mgr. obor Znalostní inženýrství, 2016-2017 (volitelný předmět)
- Mgr. obor Počítačová bezpečnost, 2016-2019 (volitelný předmět)
- Mgr. obor Počítačové systémy a sítě, 2016-2019 (volitelný předmět)
- Mgr. obor Návrh a programování vestavných systémů, 2016-2019 (volitelný předmět)
- Mgr. obor Webové a softwarové inženýrství, zaměření Informační systémy a management, 2016-2019 (volitelný předmět)
- Mgr. obor Webové a softwarové inženýrství, zaměření Softwarové inženýrství, 2016-2019 (volitelný předmět)
- Mgr. obor Webové a softwarové inženýrství, zaměření Webové inženýrství, 2016-2019 (volitelný předmět)
- Mgr. program Informatika, pro fázi studia bez oboru, 2016-2019 (volitelný předmět)
- Mgr. obor Systémové programování, zaměření Systémové programování, 2016-2019 (volitelný předmět)
- Mgr. obor Systémové programování, zaměření Teoretická informatika, 2016-2017 (volitelný předmět)
- Mgr. specializace Teoretická informatika, 2018-2019 (volitelný předmět)
- Mgr. obor Znalostní inženýrství, 2018-2019 (volitelný předmět)