- To introduce the functional programming paradigm, and to compare and contrast it with the imperative programming paradigm.
- To explore the common techniques that are employed to solve problems in a functional way.
- An overview of modern programming paradigms. Imperative and functional programming (3 lectures)
- Functional programming: introduction, compiling programs, using the interpreter (2 lectures)
- Types in functional programming: tuples, lists, type inference, pattern matching (3 lectures)
- Recursion: Using recursion to solve problems in a functional way (8 lectures)
- Models of execution: eager and lazy evaluation (2 lect ures)
- Higher-order functions: currying, lambda functions, function composition (3 lectures)
- Common functional programming idioms: map, filter, reduce, fold, etc. (6 lectures)
- Non-pure aspects of functional programming: I/O, manipulating files (3 lectures)
- Describe the imperative and functional programming paradigms including the differences between them.
- Apply recursion to solve algorithmic tasks.
- Apply common functional programming idioms such as map, filter, reduce and fold.
- Write programs using a functional programming language.