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, jaro 2026.