Intro Functional Programming De cursus gaat van start met een bespreking van op de achtergronden van functioneel programmeren in de lambda calculus. In het functioneel programmeer paradigma wordt een programma opgebouwd uit functies die operaties uitvoeren op de argumenten. Functional Characteristics Moderne talen zoals Java, Python, Scala en JavaScript zijn uitgerust met functionele kenmerken maar zijn er niet geheel op gebaseerd. Pure Functional Languages Programmeertalen die in zijn geheel op dit paradigma zijn gebaseerd zijn Erlang, F♯, Haskell, Lisp en ML. Side Effects Aan de orde komt hoe in puur functionele programmeertalen functies geen neveneffecten veroorzaken. Dit zijn effecten die invloed hebben op meer dan het resultaat van de functie, zoals het veranderen van een globale variabele. Variabelen die dienen als accumulator, counter of controle variabele horen niet thuis in een functionele taal. Map en Reduce Voorts wordt aandacht besteed aan kenmerkende functionele begrippen zoals immutable data, clojures en map en reduce algoritmes.