Functional Programming (FP) is a powerful programming paradigm based on a very simple notion: the central unit of computation is the function, whose outputs are uniquely determined by its inputs.
What makes Functional Programming unique is that its ideas have steadily matured over many decades. Its compact notation, powerful abstraction mechanisms and ease of reasoning have systematically convinced programming language researchers and designers. As a consequence, its influences can be seen in most present-day programming languages and libraries. Indeed, it is hard to find a language that does not support higher-order programming and anonymous functions.
This two-day course provides a basic introduction to the core concepts of Functional Programming by means of the Haskell programming language. Because Haskell is a purely functional programming language, it is one of the best settings to study functional concepts in their most essential form, before identifying and applying them in other language settings.
This course is aimed at industry participants who want to better understand the basic concepts of Functional Programming.
We assume a working knowledge of programming in some (not necessarily functional) programming language (Java, C#, Python, ...).
The contents of this course is based on that of the master of engineering - computer science curriculum.
Lectures that introduce a concept alternate with hands-on programming to actively take in the new ideas.
Lunch and coffee breaks will be provided.
|February 7||February 8|
|Haskell basics||Higher-order functions and recursion schemes|
|Algebraic datatypes and pattern matching||Domain specific languages|
The course takes place at the Department of Computer Science, Celestijnenlaan 200A, 3001 Heverlee.
About the instructor
Prof. dr. ir. Tom Schrijvers heads the Functional Programming team at the KU Leuven Department of Computer Science.
He has eight years of experience teaching Functional Programming in Haskell to students in the master of engineering - computer science and bachelor of informatics curricula, both at KU Leuven and UGent. (He received the VTK student union award for funniest computer science lecturer 2016-2017.) Moreover, he and his team have previously organised 10 industry training days on functional programming in mainstream languages as part of the vLambda technology transfer project.
On the research side, Tom Schrijvers and his team are well recognized for their many contributions to the field of Functional Programming, such as the design of Haskell type system extensions, handling and reasoning about side-effects, and the design of embedded domain-specific languages.