Course syllabus

Lectures  |  Exercises  |  Lab 1  |  Lab 2  |  Lab 3  |  Lab 4  |  GitLab  |  Schedule

⚠️ Note: we are still updating the Canvas page ⚠️

In this course, you will learn the principles of functional programming using Haskell as the main programming language. The primary goal is to equip you with the skills to develop small but realistic programs that solve real-world problems. Along the way, you will also explore fundamental concepts in computer science and gain a deeper understanding of programming.

We use Discord as our main communication platform throughout the course. You can join the course Discord server using this link. Please join as soon as possible so you don't miss important announcements, discussions, and updates! The link expires on 24 November.

You can find more information about the course through the following links:


Teachers

  • Examiner & lecturer: Alex Gerdes (alexg@chalmers.se)
  • Teaching assistants: Chaitanya Subramaniam, Janek Stoppkotte, Daniël Apol, Freek Geerligs, Albin Jonzon, Alexander Appelin, Daniell Cole, David Bohman, Elias Wennberg, Erik Dahlkvist, Gustav Mogren, Jonathan Otten, Karl Fälth, Noak Fredholm.
  • Student representatives:
    • Chalmers: 
      • TBA
    • GU:
      • TBA

 

Course literature

There is no mandatory textbook for this course. However, we recommend the following books:

  • The Craft of Functional Programming by Simon Thompson is an excellent online book, which is freely available.

  • Programming in Haskell by Graham Hutton is our recommended printed textbook. It provides a clear and concise introduction to Haskell and is available from the Chalmers Store and other booksellers.

If you wish to buy a textbook, we recommend Hutton's book. Otherwise, Thompson's book is a good free alternative. Throughout the course, we provide references to relevant sections of both books.

Additional free course materials:

 

Course design

The course is organised as follows:

  • 7 weeks in total.
  • Two lectures per week (on average).
  • One exercise session per week, where we interactively together work on exercises.
  • Four lab assignments, spread out over 7 submissions deadlines, so one every week. All lab assignments need to be completed in order to complete the course.
  • One written (digital) exam at the end of the course; this is done individually.
  • Your final grade will be determined by your grade on the written exam only.

 

Learning objectives and syllabus

Link to the syllabus Chalmers
Link to the syllabus GU

 

Examination form

The course is examined by:

  • a number of compulsory assignments during the course, typically carried out in groups of 2 to 3 students (3.0 hp)
  • an individual (digital) written exam at the end of the course (4.5 hp)

The the exam is on the 12th of January 2027 in the morning. Make sure you register for the exam in time, the following pages lists the last day to register: The academic year - dates and times. There will be a re-exam in April and one in August; the time and place of the exams can be seen on the Chalmers syllabus page for the course.


Course summary:

Course Summary
Date Details Due