This repository contains presentation PDFs and general information about the course.
A more formal description about the course contents and learning outcomes are available here: Course description and formal requirements.
Please read the following with care. Failure to do so may prevent you from completing the course.
Exclusively web resources:
- Virtual CPU: virtual-cpu.md
- Elm: http://elm-lang.org/
- Lisp: https://common-lisp.net/
- Haskell: Learn you a Haskell for great good!. Please read chapter 1-3
- 01 Introduction, Stacks, and Lists
- 02 Recursion and Tail Recursion
- 02 Virtual CPU specification
- 03 Lisp
- 04 Higher-order functions
- 05 Elm introduction
- 06 Elm architecture
- 07 App
- 08 Haskell introduction
- 09 Haskell features
- 10 Haskell Applications
- 11 Haskell Web Server
- 12 Haskell parallelism
- 13 Full Stack Functional - Elm
- 14 Full Stack Functional - Haskell
All classes are from 8:30 - 12:00.
Week | Date | Class | Teacher |
---|---|---|---|
5 | 29/1 | Linked lists and stacks | Anders |
5 | 2/2 | (All day 08:30-16:00) Recursion and tail recursion |
Anders |
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 REST and commands | Jens |
13 | 19/3 | Elm subscriptions | Jens |
12 | 23/3 | Exercise session on Elm | Anders |
14 | 6/4 | (All day 8:30 - 16:00) Introduction to Haskell and IO monads |
Anders |
16 | 16/4 | Haskell features | Anders |
16 | 20/4 | Haskell Assignment | Anders |
17 | 23/4 | Haskell web servers | Anders |
18 | 30/4 | Functional concurrency and parallelism | Anders |
19 | 4/5 | Full-stack functional, Elm part }:-) | Anders and Jens |
20 | 7/5 | Full-stack functional, Haskell part }:-) | Jens and Anders |
21 | 14/5 | Full-stack functional and tail recursion exercise | Anders |
21 | 18/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 | RPN Calculator |
2 | -> Tail recursion and the virtual CPU |
3 | -> Map and flatmap in Lisp (description found in slides 04) |
4 | Elm Subscriptions (description in slides 07) |
5 | -> REST client in Elm (description found in slides 06) |
6 | Haskell application |
7 | -> Full stack functional done in class (description in slides 13 and 14 |
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.
Questions within the four subjects would include: Exam subjects