Applied Functional Programming
Code | Completion | Credits | Range | Language |
---|---|---|---|---|
MI-AFP | KZ | 5 | 2P+1C | Czech |
- Garant předmětu:
- Lecturer:
- Tutor:
- Supervisor:
- Department of Software Engineering
- Synopsis:
-
This course is prezented 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:
- Syllabus of lectures:
-
1. Introduction to the subject and functional programming and tools
2. Functions and data types basics
3. Branching and structuring of code
4. Other important data types; dealing with errors; lazy evaluation
5. More advanced constructs of functions and operators
6. Type classes 1
7. Type classes 2
8. Type classes 3
9. Documentation and testing
10. Web frameworks
11. GUI applications
12. Discussion and consultations.
- Syllabus of tutorials:
-
1. Introduction to the subject and functional programming and tools
2. Functions and data types basics
3. Branching and structuring of code
4. Other important data types; dealing with errors; lazy evaluation
5. More advanced constructs of functions and operators
6. Type classes 1
7. Type classes 2
8. Type classes 3
9. Documentation and testing
10. Web frameworks
11. GUI applications
12. Discussion and consultations.
- 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.
- 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:
-
- Master branch Knowledge Engineering, in Czech, 2016-2017 (elective course)
- Master branch Computer Security, in Czech, 2016-2019 (elective course)
- Master branch Computer Systems and Networks, in Czech, 2016-2019 (elective course)
- Master branch Design and Programming of Embedded Systems, in Czech, 2016-2019 (elective course)
- Master branch Web and Software Engineering, spec. Info. Systems and Management, in Czech, 2016-2019 (elective course)
- Master branch Web and Software Engineering, spec. Software Engineering, in Czech, 2016-2019 (elective course)
- Master branch Web and Software Engineering, spec. Web Engineering, in Czech, 2016-2019 (elective course)
- Master program Informatics, unspecified branch, in Czech, version 2016-2019 (elective course)
- Master branch System Programming, spec. System Programming, in Czech, 2016-2019 (elective course)
- Master branch System Programming, spec. Computer Science, in Czech, 2016-2017 (elective course)
- Master specialization Computer Science, in Czech, 2018-2019 (elective course)
- Master branch Knowledge Engineering, in Czech, 2018-2019 (elective course)