FI:IA014 Advanced Functional Prog. - Course Information
IA014 Advanced Functional ProgrammingFaculty of Informatics
- 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).
- 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
- Thu 12:00–13:50 D2
- 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 (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
- Theoretical foundations of functional programming (lambda calculus).
- Type system, type classes.
- Type system extensions.
- Monads, monad transformers.
- Generic programming.
- Purely functional data structures.
- DSL - Domain specific languages.
- Quickcheck - type based property testing.
- Dependent types: Agda and Coq
- 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
- Teaching methods
- The course is organized as a series of lectures.
- Assessment methods
- Evaluation: final written exam.
- Language of instruction
- Further Comments
- Study Materials
The course is taught annually.