Aim and context
Learning outcomes: (see also the lecture 14
overview from 2012)
- 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
The AFP course requires a BSc in Computer Science or equivalent,
mathematical maturity, a basic course on Functional
Programming (like our version
and a course on Programming Lanuages
Other recommended courses are
Logic in CS
Finite automata theory and formal languages
For the purpose of course evaluation each course has student
representatives. Their role includes giving the teachers
feedback on the course. Notes from the meeting(s).
AFP student representatives 2014: K. Bristav (CID=karlbr), D. Eddeland (danedd), A. Gufler (gufler), F. Levenstam (lfilip), D. Oom (lalti). They can be reached by CID@student.chalmers.se.
Chalmers central instructions on course evaluation.
The final evaluation 2013 recommended a lower pace, fewer invited lectures and more exercise sessions. As a response to this we have spread out the first few lectures' material (from five to six lectures), removed one invited lecture and added one exercise session (Monday study week 7 from 15.15).
Official schedule (TimeEdit)
. Most of the course weeks have two lectures (always in EL43):
||13.15 - 15.00
||10.00 - 11.45
Detailed information on the lectures are here.