Contents:
Introduction to Functional Programming (Haskell):
-
Syntax (Backus-Naur Form)
- primitive data types, lists, tuples, strings
- expressions, function definitions, recursion and iteration
evaluation strategies of functional programs
- higher-order functions
- polymorphism
- type system and verification
- Algebraic and abstract data types
- input, output and Monads
- searching and sorting algorithms
Introduction of computability:
-
Lambda calculus
- Primitive Recursion
- µ-Recursion
Proofs of program properties:
-
Term Rewriting
- Structural induction
- Termination
Implementation and programming technique: