1) Základní datové typy, funkce, výrazy a pattern matching.
2) Funkcionální datové struktury - seznamy, stromy, sekvence a další.
3) Imperativní programování - odkazy a pole.
4) Vlastní datové struktury.
5) Výjimky.
6) Objekty.
7) Moduly a signatury.
8) Přetěžování operátorů.
9) Continuation passing style.
10) Sequence expressions a monády.
11) Líné vyhodnocování a nekonečné datové struktury.
12) Asynchronní programování.
13) Paralelní programování v STM monádě.
Základy programování v jazycích typu ML (typy, funkce, moduly, striktní a líné vyhodnocování, imperativní i funkcionální konstrukce, výjimky), rozšíření jazyka F# (přetěžování operátorů, sekvence, computation expressions, asynchronní programování) a koncepty funkcionálního programování (pattern matching, funkce jako hodnoty, abstraktní a nekonečné datové struktury, monády, continuation passing style).