1) Basic data types, functions, expressions and pattern matching.
2) Functional data structures - lists, trees, sequences and others.
3) Imperative programming - references and arrays.
4) User defined data structures.
5) Exceptions.
6) Objects.
7) Modules and signatures.
8) Operator overloading.
9) Continuation passing style.
10) Sequence expressions and monads.
11) Lazy evaluation and infinite data structures.
12) Asynchronous programming.
13) Parallel programming using STM monad.
Basic programming in ML-like languages (types, functions, modules, strict and functional evaluation, imperative and functional constructs, exceptions), F# language extensions (operator overloading, sequences, computation expressions, asynchronous workflows) and functional programming concepts (pattern matching, function as values, abstract and infinite data structures, monads, continuation passing style).