This course introduces students into the techniques of functional programming, the advantages and disadvantages of this programming paradigm, and its use in practice. This approach is declarative in the sense that the programmer symbolically describes the problem to be solved, rather than specifying the exact sequence of operations required to solve it. It allows focusing on the essence of the solved problem and implementing even more complex algorithms compactly. Functional programming has notable advantages for parallelization and automated verification of algorithms, and the most useful functional programming concepts are increasingly often introduced to standard programming languages. Because of the focus of functional programming on symbols, rather than numbers, functional programming has been heavily used in in artificial intelligence fields, such as agent systems or symbolic machine learning.
Homework assignments every 2 weeks worth 50% of the grade.
At least 1 point from each assignment is necessary to pass.
Final programming exam for 30%.
Final test for 20%.
|Viliam Lisý||appointment by firstname.lastname@example.org||KN:E-407||Lecturer|
|Karel Ha||appointment by Doodleemail@example.com||KN:E-316||Instructor|
|Jan Jakubův||appointment by firstname.lastname@example.org||CIIRC:A-614a||Instructor|
|Lasse Blaauwbroek||appointment by email@example.com||CIIRC:A-615||Instructor|