Applied Functional Programming
Code | Completion | Credits | Range | Language |
---|---|---|---|---|
NI-AFP | KZ | 5 | 2P+1C | Czech |
- Garant předmětu:
- Lecturer:
- Tutor:
- Supervisor:
- Department of Software Engineering
- Synopsis:
-
This course is presented in Czech.
Functional programming represents one of the traditional programming paradigms. Traditional and novel functional programming languages are on the rise nowadays and the functional paradigm becomes an important construct of traditionally imperative languages (C++, C#, Java). As such, mastering this paradigm becomes a necessary competence of a software engineer: the theory and especially the practice.
- Requirements:
-
BI-PPA is a suitable, not a necessary prerequisite.
- Syllabus of lectures:
-
1. Introduction to the subject, functional programming and tools.
2. Functions and data types
3. Code structuring, evaluation and text types
4. Containers (data types), advanced functions and operators
5. Type classes
6. IO, exceptions and other type classes
7. Testing, documentation, performance
8. Web applications in Haskell
9. Introduction to Elm
10. The Elm Architecture
11. Web applications in Elm
12. Examples from practice, discussion and consultation
- Syllabus of tutorials:
-
1. Introduction to the subject, functional programming and tools.
2. Functions and data types
3. Code structuring, evaluation and text types
4. Containers (data types), advanced functions and operators
5. Type classes
6. IO, exceptions and other type classes
7. Testing, documentation, performance
8. Web applications in Haskell
9. Introduction to Elm
10. The Elm Architecture
11. Web applications in Elm
12. Examples from practice, discussion and consultation
- Study Objective:
-
We demonstrate the concepts using the pure functional language Haskell, however students will be able to apply the knowledge in other languages, as well; an overview of contemporary functional languages and their characteristics will be provided. In the second half of the semester, students will also learn the Elm language.
- Study materials:
-
Textbooks:
The Haskelll Book
Learn you a Haskell for Great Good
Papers:
Why functional programming matters
How functional programming mattered
Additional materials:
https://wiki.ccmi.fit.cvut.cz/doku.php?id=programming:haskell
- Note:
- Further information:
- https://courses.fit.cvut.cz/MI-AFP/
- No time-table has been prepared for this course
- The course is a part of the following study plans:
-
- Bachelor program Informatics, unspecified branch, in Czech, 2015-2020 (elective course)
- Bachelor branch Security and Information Technology, in Czech, 2015-2020 (elective course)
- Bachelor branch Computer Science, in Czech, 2015-2020 (elective course)
- Bachelor branch Computer Engineering, in Czech, 2015-2020 (elective course)
- Bachelor branch Information Systems and Management, in Czech, 2015-2020 (elective course)
- Bachelor branch Web and Software Engineering, spec. Software Engineering, in Czech, 2015-2020 (elective course)
- Bachelor branch Web and Software Engineering, spec. Web Engineering, in Czech, 2015-2020 (elective course)
- Bachelor branch Web and Software Engineering, spec. Computer Graphics, in Czech, 2015-2020 (elective course)
- Bachelor branch Knowledge Engineering, in Czech, 2018-2020 (elective course)
- Master specialization Computer Security, in Czech, 2020 (elective course)
- Master specialization Design and Programming of Embedded Systems, in Czech, 2020 (elective course)
- Master specialization Computer Systems and Networks, in Czech, 202 (elective course)
- Master specialization Management Informatics, in Czech, 2020 (elective course)
- Master specialization Software Engineering, in Czech, 2020 (elective course)
- Master specialization System Programming, in Czech, version from 2020 (elective course)
- Master specialization Web Engineering, in Czech, 2020 (elective course)
- Master specialization Knowledge Engineering, in Czech, 2020 (elective course)
- Master specialization Computer Science, in Czech, 2020 (elective course)
- Mgr. programme, for the phase of study without specialisation, ver. for 2020 and higher (elective course)
- Bachelor Specialization Information Security, in Czech, 2021 (elective course)
- Bachelor Specialization Management Informatics, in Czech, 2021 (elective course)
- Bachelor Specialization Computer Graphics, in Czech, 2021 (elective course)
- Bachelor Specialization Computer Engineering, in Czech, 2021 (elective course)
- Bachelor program, unspecified specialization, in Czech, 2021 (elective course)
- Bachelor Specialization Web Engineering, in Czech, 2021 (elective course)
- Bachelor Specialization Artificial Intelligence, in Czech, 2021 (elective course)
- Bachelor Specialization Computer Science, in Czech, 2021 (elective course)
- Bachelor Specialization Software Engineering, in Czech, 2021 (elective course)
- Bachelor Specialization Computer Systems and Virtualization, in Czech, 2021 (elective course)
- Bachelor Specialization Computer Networks and Internet, in Czech, 2021 (elective course)
- Study plan for Ukrainian refugees (elective course)
- Master specialization System Programming, in Czech, version from 2023 (elective course)
- Master specialization Computer Science, in Czech, 2023 (elective course)
- Bachelor Specialization Information Security, in Czech, 2024 (elective course)
- Bachelor program, unspecified specialization, in Czech, 2024 (elective course)
- Bachelor Specialization Management Informatics, in Czech, 2024 (elective course)
- Bachelor Specialization Computer Graphics, in Czech, 2024 (elective course)
- Bachelor Specialization Software Engineering, in Czech, 2024 (elective course)
- Bachelor Specialization Web Engineering, in Czech, 2024 (elective course)
- Bachelor Specialization Computer Networks and Internet, in Czech, 2024 (elective course)
- Bachelor Specialization Computer Engineering, in Czech, 2024 (elective course)
- Bachelor Specialization Computer Systems and Virtualization, in Czech, 2024 (elective course)
- Bachelor Specialization Artificial Intelligence, in Czech, 2024 (elective course)
- Bachelor Specialization Computer Science, in Czech, 20214 (elective course)