AFP 2012: Annotated learning outcomes

Relating course parts to learning outcomes

Notation: Lnn = Lecture #nn, Amm = Assignment #mm.

DSL: design embedded domain specific languages

DSL.Concepts: (abstract) syntax, semantics, ...

DSL.Implement: implement EDSLs in Haskell (as combinator libraries)

Types: read, understand and extend Haskell programs which use advanced type system features

Types.Class: type classes, newtypes, deriving, ...

Types.GADT: (generalised) algebraic datatypes & type families

Types.HOT: functors, monads and monad transformers

Spec: use specification based development techniques

Spec.Test: formulate and test properties about the program

Spec.Prove: reason about correctness of functional programs

Spec.Trans: transform programs on the basis of reasoning

Expl: explain and discuss the above topics