This repository contains presentation PDFs and general information about the course.
Please read the following with care. Failure to do so may prevent you from completing the course.
Exclusively web resources:
- Elm: http://elm-lang.org/
- Lisp: https://common-lisp.net/
- Haskell: Learn you a Haskell for great good!. Please read chapter 1-3
All classes are from 8:30 - 12:00.
Week | Date | Class | Teacher |
---|---|---|---|
5 | 29/1 | Linked lists and stacks | Anders |
6 | 5/2 | Recursion and tail recursion | Anders (tentative) |
6 | 9/2 | Exercise session | - |
8 | 19/2 | Introduction to Lisp | Jens |
8 | 23/2 | Exercise session on Lisp | Jens |
9 | 26/2 | Higher-order functions | Jens |
10 | 5/3 | Introduction to the Elm architecture | Jens |
10 | 9/3 | Exercise session on Elm | Jens |
11 | 12/3 | Elm commands | Jens |
12 | 19/3 | Elm REST | Jens |
12 | 23/3 | Exercise session on Elm | Anders |
13 | 26/3 | Elm subscriptions | Anders |
14 | 6/4 | Introduction to Haskell | Anders |
15 | 9/4 | IO and monads in Haskell | Anders |
16 | 16/4 | Concurrency in Haskell | Jens |
16 | 20/4 | Exercise session on Haskell | Jens |
17 | 23/4 | Haskell webservers | Anders |
18 | 30/4 | Full-stack functional }:-) | Anders |
19 | 7/5 | -- reserved -- | Anders and Jens |
20 | 14/5 | Recap and exam questions | Anders and Jens |
These are the assignments you will have to hand in during the course:
Assignment number | Theme |
---|---|
1 | Linked lists and stacks |
2 | Virtual CPU instructions with tail recursion |
3 | Map and flatmap in Lisp |
4 | Elm REST |
5 | Elm Websocket chat client |
6 | Haskell application |
7 | Parallel Haskell webserver |
8 | Full stack with support for the chat protocol in assignment 6 |
The assignments in bold are mandatory and is required to attend the exam.
Assignments will be elaborated as the course progresses. Assignments from previous classes can be found at GitHub, but do not assume that they will be the same in this course.
To attend the exam, you need at least 80% of total number of study points. Study points are given for your hand-ins and not for class attendance.
Remember that the assignments above in bold are mandatory and is required to attend the exam.
You will be examinated orally. You will have to present one of the four major assignments (marked in bold above). So out of the four assignments, you have to pick one. From there we will have a discussion about the course content. You have 10 minutes to present your assignment. Then we will ask you questions for around 7-10 minutes. We will naturally ask into other topics, but the presentation will be the starting point.
The questions for the exams are published and can be found here: https://github.com/cphbus-functional-programming/general/blob/master/exam.md