FI:IA014 Advanced Functional Prog. - Course Information
IA014 Advanced Functional Programming
Faculty of InformaticsSpring 2019
- Extent and Intensity
- 2/0. 2 credit(s) (plus extra credits for completion). Recommended Type of Completion: zk (examination). Other types of completion: k (colloquium), z (credit).
- Teacher(s)
- doc. Mgr. Jan Obdržálek, PhD. (lecturer)
- Guaranteed by
- prof. RNDr. Mojmír Křetínský, CSc.
Department of Computer Science – Faculty of Informatics
Supplier department: Department of Computer Science – Faculty of Informatics - Timetable
- Mon 12:00–13:50 A217
- Prerequisites
- Previous experience with functional programming, at least to the extent covered by the course IB015 - Non-imperative programming.
- Course Enrolment Limitations
- The course is also offered to the students of the fields other than those the course is directly associated with.
- fields of study / plans the course is directly associated with
- Applied Informatics (programme FI, N-AP)
- Information Technology Security (eng.) (programme FI, N-IN)
- Information Technology Security (programme FI, N-IN)
- Bioinformatics (programme FI, N-AP)
- Information Systems (programme FI, N-IN)
- Parallel and Distributed Systems (programme FI, N-IN)
- Computer Graphics (programme FI, N-IN)
- Computer Networks and Communication (programme FI, N-IN)
- Computer Systems (programme FI, N-IN)
- Embedded Systems (eng.) (programme FI, N-IN)
- Embedded Systems (programme FI, N-IN)
- Theoretical Informatics (programme FI, N-IN)
- Upper Secondary School Teacher Training in Informatics (programme FI, N-SS) (2)
- Artificial Intelligence and Natural Language Processing (programme FI, N-IN)
- Image Processing (programme FI, N-AP)
- Course objectives
- by the end of the course, students will:
understand the theoretical foundations of functional programming;
understand and be able to efficiently use modern/advanced concepts of functional programming languages (e.g. monads);
know the limits of the functional programming paradigm;
know some of the applications suited to the FP approach;
be able to evaluate and use FP-based concepts in modern mainstream (non-FP) languages - Syllabus
- Theoretical foundations of functional programming (lambda calculus).
- Type system, type classes.
- Type system extensions.
- Monads, monad transformers.
- Generic programming.
- Purely functional data structures.
- Concurrency.
- DSL - Domain specific languages.
- Quickcheck - type based property testing.
- Dependent types: Agda and Coq
- Literature
- O'SULLIVAN, Bryan, John GOERZEN and Don STEWART. Real World Haskell. First Edition. O'Reilly Media, Inc., 2009, 670 pp. ISBN 978-0-596-51498-3. URL info
- OKASAKI, Chris. Purely functional data structures. Cambridge: Cambridge University Press, 1998, x, 220. ISBN 0521631246. info
- MICHAELSON, Greg. An introduction to functional programming through Lambda calculus. Wokingham: Addison-Wesley Publishing Company, 1989, 320 s. ISBN 0-201-17812-5. info
- JONES, Simon L. Peyton. The implementation of functional programming languages. New York: Prentice Hall, 1987, xvi, 445 s. ISBN 0-13-453325-9. info
- Bookmarks
- https://is.muni.cz/ln/tag/FI:IA014!
- Teaching methods
- The course is organized as a series of lectures.
- Assessment methods
- Evaluation: final written exam.
- Language of instruction
- English
- Further Comments
- Study Materials
The course is taught annually.
- Enrolment Statistics (Spring 2019, recent)
- Permalink: https://is.muni.cz/course/fi/spring2019/IA014