IA014 Advanced Functional Programming

Fakulta informatiky
jaro 2020
Rozsah
2/0. 2 kr. (plus ukončení). Doporučované ukončení: zk. Jiná možná ukončení: k, z.
Vyučující
doc. Mgr. Jan Obdržálek, PhD. (přednášející)
Garance
doc. Mgr. Jan Obdržálek, PhD.
Katedra teorie programování – Fakulta informatiky
Dodavatelské pracoviště: Katedra teorie programování – Fakulta informatiky
Rozvrh
Po 17. 2. až Pá 15. 5. Út 12:00–13:50 A217
Předpoklady
Previous experience with functional programming, at least to the extent covered by the course IB015 - Non-imperative programming.
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á 45 mateřských oborů, zobrazit
Cíle předmětu
Introduce the underlying theory of functional programming. Show some of the modern advanced functional programming concepts (monads, monad transformers, GADTs, dependent types...).
Výstupy z učení
By the end of the course, students will:
understand the theoretical foundations of functional programming, e,g, lambda calculi and type theory;
understand and be able to efficiently use modern/advanced concepts of functional programming languages (e.g. typeclasses, monads, monad transformers...);
know the limits of the functional programming paradigm;
be able to evaluate and use FP-based concepts in modern mainstream (non-FP) languages
Osnova
  • History of functional programming languages.
  • Untyped lambda calculus.
  • Simply typed lambda calculus.
  • Polymorphism add type inference (Hindley-Milner, System F)
  • Type classes.
  • Functors, Applicatives.
  • Monads.
  • Monad tranformers.
  • GADTs - Generalized Algebraic Data Types
  • Dependent types.
  • IO and Concurrency.
Literatura
  • BARENDREGT, Henk. The lambda calculus, its syntax and semantics. Online. London: College Publications, 2012. xv, 621. ISBN 9781848900660. [citováno 2024-04-24] info
  • MICHAELSON, Greg. An introduction to functional programming through Lambda calculus. Online. Wokingham: Addison-Wesley Publishing Company, 1989. 320 s. ISBN 0-201-17812-5. [citováno 2024-04-24] info
  • PIERCE, Benjamin C. Types and programming languages. Online. Cambridge, Massachusetts: The MIT Press, 2002. xxi, 623. ISBN 9780262162098. [citováno 2024-04-24] info
  • O'SULLIVAN, Bryan, John GOERZEN a Don STEWART. Real World Haskell. Online. First Edition. O'Reilly Media, Inc., 2009. 670 s. ISBN 978-0-596-51498-3. [citováno 2024-04-24] URL info
  • LIPOVAČA, Miran. Learn You a Haskell for Great Good!: A Beginner's Guide. Online. First Edition. San Francisco, CA, USA: No Starch Press, 2011. 400 s. ISBN 978-1-59327-283-8. [citováno 2024-04-24] URL info
Záložky
https://is.muni.cz/ln/tag/FI:IA014!
Výukové metody
The course is organized as a series of lectures.
Metody hodnocení
Evaluation: midterm exam (20%), final written exam (80%).
>50% of points required to pass.
Optional oral exam if you get at least "C" for the written part.
Vyučovací jazyk
Angličtina
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 2003, jaro 2004, jaro 2005, jaro 2006, jaro 2007, jaro 2008, jaro 2009, jaro 2010, jaro 2011, jaro 2012, jaro 2013, podzim 2014, podzim 2015, jaro 2017, jaro 2018, jaro 2019, jaro 2021, jaro 2022, jaro 2023, jaro 2024.