Skip to content

patrikja/AFPcourse

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Advanced Functional Programming

Some material connected to the Chalmers and Univ. of Gothenburg course.

Main course homepage:

This github repository aims at collecting all the relevant open source code associated with the AFP course. It is currently (Jan-Mar 2015) under construction with material being migrated from the main course home page step by step.

Grading

The final grade of the course is a based on a weighted average of the lab grade and the exam grade (provided that both are at least "Pass"). The weights are the number of credits: 4.5cr (60%) for the labs and 3cr (40%) for the exam. Among the labs, number 2 has a higher weight.

In March 2015 the final result is

  • 68 did the lab (50 passed, 18 failed)
  • 57 did the exam (27 passed, 30 failed) and 26 passed both the exam and the labs.

In August there will be a written re-exam and also a "re-lab" opportunity.

Lecture plan:

  • L1: Course intro, Haskell recap, first DSL example
  • L2: EDSLs and the Shapes example
  • L3: Monads: how to build your own monad from scratch
  • L4: Monads and Parsing: a case-study in program transformation
  • L5: Parsing and Monad Transformers, part 1: how to build your monad from transformers.
  • L6: Monad Transformers, part 2: more transformers and the extensible interpreter
  • L7: Exercise session based on exams from earlier years
  • L8: Specification, verification and testing (QuickCheck)
  • L9: EDSL guest lecture by Emil Axelsson
  • L10: More QuickCheck: Generating, shrinking, etc.
  • L11: Type based modelling in Haskell, part 1: GADTs
  • L12: Agda tutorial
  • L13: Type based modelling in Haskell, part 2: Type families
  • L14: Program derivation: Maximum segment sum (guest lecture by Cezar Ionescu)
  • L15: Exercise session based on exams from earlier years
  • L16: A choice of topics: in 2015 we did RWmonad + Newtype deriving + Cont monad.

Schedule

TimeEdit schedule:

Week Monday 13-15 Room Thursday 10-12 Room
1 2015-01-19 EL43 2015-01-22 EL43
2 2015-01-26 EF 2015-01-29 VK
3 2015-02-02 EF 2015-02-05 ED
4 2015-02-09 VK 2015-02-12 EE
5 2015-02-16 EF 2015-02-19 EA
6 2015-02-23 EF 2015-02-26 EA
7 2015-03-02 EF 2015-03-05 HA2
8 2015-03-09 EL41+42 2015-03-12 HA2

Evaluation times:

  • Mid-course evaluation meeting: Fr 2015-02-20 15:15 - 16:00 in EDIT-5128
  • Final evaluation meeting: Tu 2015-04-28 11:00-12:00 in "Fysikhuset, bottenplan"
  • More course evaluation details