Skip to content

Latest commit

 

History

History
70 lines (55 loc) · 3.11 KB

README.md

File metadata and controls

70 lines (55 loc) · 3.11 KB

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