IB016 Seminář z funkcionálního programování

Fakulta informatiky
jaro 2016
Rozsah
0/2. 2 kr. (plus ukončení). Ukončení: z.
Vyučující
RNDr. Vladimír Štill, Ph.D. (cvičící)
RNDr. Martin Ukrop, Ph.D. (cvičící)
Garance
prof. RNDr. Mojmír Křetínský, CSc.
Katedra teorie programování – Fakulta informatiky
Dodavatelské pracoviště: Katedra teorie programování – Fakulta informatiky
Rozvrh seminárních/paralelních skupin
IB016/01: Po 16:00–17:50 A219, V. Štill, M. Ukrop
IB016/02: Čt 14:00–15:50 A219, V. Štill, M. Ukrop
Předpoklady
IB015 Neimperativní programování
Pro zapsání do kurzu stačí mít znalost Haskellu v rozsahu předmětu IB015 Neimperativní programování a kladný vztah k funkcionálnímu programování.
Omezení zápisu do předmětu
Předmět je nabízen i studentům mimo mateřské obory.
Předmět si smí zapsat nejvýše 40 stud.
Momentální stav registrace a zápisu: zapsáno: 0/40, pouze zareg.: 0/40, pouze zareg. s předností (mateřské obory): 0/40
Mateřské obory/plány
předmět má 17 mateřských oborů, zobrazit
Cíle předmětu
Studenti předmětu si podstatně rozšíří své znalosti funkcionálního programování. Po absolvování kurzu by měli být schopni řešit netriviální programátorské problémy s pomocí Haskellu a získat přehled o praktických využitích tohoto funkcionálního jazyka.
Osnova
  • GHC(i), příkazy interpretu, kompilace programů v Haskellu.
  • Větvení programů, rekurze, anonymní funkce, funkce vyšších řádů, operátory skládání a aplikace funkce.
  • Moduly: důležité moduly v Haskellu 2010, jejich import, psaní vlastních modulů.
  • Podpůrné nástroje, balíčky, cabal, Hackage.
  • Typové třídy Show, Read, číselné typové třídy a další. Vlastní typové třídy.
  • Datové struktury: asociační seznamy, záznamy, pole, implementace vlastních datových struktur.
  • Vstup a výstup: práce se soubory, systémové programování, možnosti V/V v Haskellu.
  • Funktory, applicative, monády.
  • Zpracování chyb a výjimek: Maybe, Either, odchytávání a nastavování výjimek, ošetření chybových stavů.
  • Testování, optimalizace, dokumentace: QuickCheck, koncová rekurze, přidávání striktnosti. Dokumentované programování a generování dokumentace.
  • Parsování: regulární výrazy, generátor parserů Parsec.
  • Zajímavá syntaktická rozšíření v GHC
Literatura
  • LIPOVAČA, Miran. Learn You a Haskell for Great Good!: A Beginner's Guide. First Edition. San Francisco, CA, USA: No Starch Press, 2011, 400 s. ISBN 978-1-59327-283-8. URL info
  • O'SULLIVAN, Bryan, John GOERZEN a Don STEWART. Real World Haskell. First Edition. O'Reilly Media, Inc., 2009, 670 s. ISBN 978-0-596-51498-3. URL info
Záložky
https://is.muni.cz/ln/tag/FI:IB016!
Výukové metody
Kurz se sestává z dvouhodinových cvičení, ve kterých jsou studentům prezentována témata využití funkcionalního programování v praxi. Kromě toho je požadováno řešení pěti domácích úloh týkajících se probírané látky.
Metody hodnocení
Podmínkou pro získání zápočtu je získání minimálně 50 % bodů z domácích úloh. Účast na cvičeních je nepovinná, ale důrazně doporučená.
Navazující předměty
Informace učitele
https://is.muni.cz/auth/el/1433/jaro2016/IB016/index.qwarp
Další komentáře
Studijní materiály
Předmět je vyučován každoročně.
Předmět je zařazen také v obdobích jaro 2010, jaro 2011, jaro 2012, jaro 2013, jaro 2015, jaro 2017, jaro 2018, jaro 2019, jaro 2020, jaro 2021, jaro 2022, jaro 2023, jaro 2024, jaro 2025.