IB015 Úvod do funkcionálního programování

Fakulta informatiky
podzim 2005
Rozsah
2/1. 3 kr. (plus ukončení). Ukončení: zk.
Vyučující
RNDr. Libor Škarvada (přednášející)
RNDr. Václav Brožek, Ph.D. (cvičící)
Mgr. Jiří Cvachovec (cvičící)
RNDr. Vojtěch Forejt, Ph.D., LL.B. (Hons) (cvičící)
doc. RNDr. Aleš Horák, Ph.D. (cvičící)
RNDr. Jan Hubený (cvičící)
RNDr. Ondřej Krajíček (cvičící)
Mgr. Tomáš Kratochvíla (cvičící)
RNDr. Václav Lorenc (cvičící)
Mgr. Eva Mráková, Ph.D. (cvičící)
RNDr. David Novák, Ph.D. (cvičící)
Mgr. Martin Osovský (cvičící)
doc. RNDr. David Šafránek, Ph.D. (cvičící)
Garance
prof. RNDr. Mojmír Křetínský, CSc.
Katedra teorie programování – Fakulta informatiky
Kontaktní osoba: RNDr. Libor Škarvada
Rozvrh
Po 18:00–19:50 D1, Po 18:00–19:50 D3, Po 18:00–19:50 D2
  • Rozvrh seminárních/paralelních skupin:
IB015/01: každé sudé úterý 12:00–13:50 B130, A. Horák
IB015/02: každé sudé úterý 14:00–15:50 B311, V. Brožek
IB015/03: každé liché úterý 14:00–15:50 B311, V. Brožek
IB015/04: každý sudý pátek 12:00–13:50 B130, V. Brožek
IB015/05: každý lichý pátek 12:00–13:50 B130, V. Brožek
IB015/06: každé sudé úterý 16:00–17:50 B130, D. Šafránek
IB015/07: každé liché úterý 16:00–17:50 B130, D. Šafránek
IB015/08: každé sudé úterý 18:00–19:50 B130, D. Šafránek
IB015/09: každé liché úterý 18:00–19:50 B130, D. Šafránek
IB015/10: každou sudou středu 16:00–17:50 B130, O. Krajíček
IB015/11: každou lichou středu 16:00–17:50 B130, O. Krajíček
IB015/12: každý sudý pátek 12:00–13:50 B311, O. Krajíček
IB015/13: každý lichý pátek 12:00–13:50 B311, O. Krajíček
IB015/14: každý sudý pátek 10:00–11:50 B311, M. Osovský
IB015/15: každý lichý pátek 10:00–11:50 B311, M. Osovský
IB015/16: každou sudou středu 18:00–19:50 B130, V. Forejt
IB015/17: každou lichou středu 18:00–19:50 B130, V. Forejt
IB015/18: každý sudý čtvrtek 12:00–13:50 B130, T. Kratochvíla
IB015/19: každý lichý čtvrtek 12:00–13:50 B130, T. Kratochvíla
IB015/20: každý sudý čtvrtek 12:00–13:50 B311, J. Cvachovec
IB015/21: každý lichý čtvrtek 12:00–13:50 B311, J. Cvachovec
IB015/22: každý sudý čtvrtek 18:00–19:50 B311, J. Cvachovec
IB015/23: každý lichý čtvrtek 18:00–19:50 B311, J. Cvachovec
IB015/24: každý sudý čtvrtek 18:00–19:50 B130, J. Hubený
IB015/25: každý lichý čtvrtek 18:00–19:50 B130, J. Hubený
IB015/26: každý sudý pátek 10:00–11:50 B130, V. Lorenc
IB015/27: každý lichý pátek 10:00–11:50 B130, V. Lorenc
Předpoklady
! I015 Úvod do funkc. progr.
Studenti by měli vystačit s běžnými středoškolskými znalostmi a jistou schopností matematické abstrakce.
Omezení zápisu do předmětu
Předmět je nabízen i studentům mimo mateřské obory.
Mateřské obory/plány
předmět má 11 mateřských oborů, zobrazit
Cíle předmětu
Kurs seznamuje posluchače s funkcionálním programovacím paradigmatem. Prostředí vynucující čistý zápis programů bez vedlejších efektů má mimo jiné přivést studenty k návykům, jež využijí při pozdější tvorbě větších programových celků i v imperativních jazycích. Přednáška je doplněna řadou příkladů, které si lze prakticky vyzkoušet na nepovinných cvičeních.
Osnova
  • Základní pojmy: term, hodnota, redukce.
  • Lambda abstrakce.
  • Vyšší funkce, částečná aplikace, currifikace.
  • Jednoduché typy: základní typy a typové konstruktory, součinové typy.
  • Polymorfní typy, otypování.
  • Definice nových typových konstruktorů, součtové typy, rekursivní typy; definice podle vzoru.
  • Seznamy, výčtový a intensionální zápis seznamů.
  • Pořadí vyhodnocování, striktní a líné vyhodnocování.
  • Nekonečné datové struktury.
  • Rekursivní funkce, operace na seznamech a stromech, složitost.
Literatura
  • THOMPSON, Simon. Haskell :the craft of functional programming. Harlow: Addison-Wesley, 1996, xx, 500 s. ISBN 0-201-40357-9. info
Záložky
https://is.muni.cz/ln/tag/FI:IB015!
Metody hodnocení
Kurs probíhá formou přednášek a je doplněn nepovinným cvičením. Je ukončen závěrečnou písemnou zkouškou.
Navazující předměty
Informace učitele
http://www.fi.muni.cz/~libor/vyuka/IB015/
Další komentáře
Studijní materiály
Předmět je vyučován každoročně.
Nachází se v prerekvizitách jiných předmětů
Předmět je zařazen také v obdobích podzim 2002, podzim 2003, podzim 2004, podzim 2006, podzim 2007, jaro 2008, podzim 2008, jaro 2009, podzim 2009, jaro 2010, podzim 2010, jaro 2011, podzim 2011, jaro 2012, podzim 2012, podzim 2013, podzim 2014, podzim 2015, podzim 2016, podzim 2017, podzim 2018, podzim 2019, podzim 2020, podzim 2021, podzim 2022, podzim 2023, podzim 2024.