Aim and context
Learning outcomes: (see also the lecture 12
overview from 2010)
- 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
Context
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 (like
ProgLangTech
or
ProgPara).
Other recommended courses are
Logic
in CS,
Algorithms
and
Finite automata theory and formal languages.
Course Evaluation
For the purpose of course evaluation each course has student
representatives. Their role includes giving the teachers
feedback on the course.
AFP student representatives 2011: Shayan Najd Javadipour, Tobias Raski and Gabriel Rizopulos.
Chalmers central instructions on course evaluation
Notes from the meeting(s).
Lectures
Most of the course weeks have two lectures:
| Mon |
|
13.15 - 15.00 |
|
ED |
| Thu |
|
10.00 - 11.45 |
|
EF |
TimeEdit schedule for AFP
Detailed information on the lectures will appear here (being migrated from 2010 version step by step).
Course material
 | The course book (nick-named "The World" or "RWH" below) is "Real World Haskell" by Bryan O'Sullivan, Don Stewart, and John Goerzen. Some related papers to read and other material will be provided with the lectures. |
The following books are all good but presented in order of decreasing relevance for the AFP course. |
- "The Haskell School of Expression" by Paul Hudak ("The School")
- "The Fun of Programming" edited by Jeremy Gibbons and Oege de
Moor ("The Fun")
- "Programming in Haskell" by Graham Hutton ("The Prog.")
- "Haskell -- The Craft of Functional Programming" by Simon
Thompson ("The Craft")
|
 |