Course syllabus
Welcome to the course homepage of TDA555/DIT441 Introduction to Functional Programming! The course is given by the Department of Computer Science and Engineering during Study Period 1, 2024. This is an introductory course in programming, using the functional language Haskell as the medium of instruction. The primary goal is to enable students to write realistic (small) programs for real world applications, while introducing some of the fundamental concepts of computer science.
We use Discord as our tool for communication. You can join our Discord server via this link, do it as soon as possible!
You find additional information about the course on this syllabus page and via the following pointers:
Teachers
- Examiner & lecturer: Alex Gerdes (alexg@chalmers.se)
- Teaching assistants: Daniël Apol, Samuel Hammersberg, Melvin Larsson, Ida Vranvuk, Filip Nordmark, Samuel Kyletoft, Sebastian Selander, Jonathan Widén, Edvin Lundqvist Stenvik, Ondřej Kubánek, Paul Soukup, Karl Fälth, Jonatan Lindh
- Student representatives:
- Chalmers:
-
Charlotte Sophie Albrecht, charlotte.albrecht.04@gmail.com
- Nils Carlsson, nils.linnarp@gmail.com
- Erik Dahlkvist, erikdahlqvist@protonmail.com
- Filip Hjelte Zinders, filip.hjeltezinders@gmail.com
- Rasmus Persson, Rasmus.f.persson@gmail.com
-
- GU:
- Mafalda Batalha de Aguiar, gusbatalma@student.gu.se
- Vanja Utberg, gusutbva@student.gu.se
- Chalmers:
Course literature
In this course we use the course book 'Programming in Haskell' by Graham Hutton. It is an excellent book for learning Haskell written in a clear and compact style. The book is available in the Chalmers Store and in many other book shops. For each of the lectures with provide pointers to the relevant parts of the course book.
An excellent alternative book about Haskell is 'The Craft of Functional Programming' by Simon Thompson. This book has recently been made freely available online. If you want to buy a book, we recommend the book by Hutton, otherwise you can use Thompson's book online.
In addition, we also use the following material, which is freely available (online):
- Slides and other material from the lectures
- Another online book (more like a tutorial): Learn You a Haskell for Great Good!
Course design
The course is organized as follows:
- 8 weeks in total.
- Two lectures per week (on average).
- One exercise session per week, where you get help with the exercises.
- Four lab assignments, spread out over 7 submission deadlines (so one each week except for the last week). All lab assignments need to be completed in order to complete the course.
- One written 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
Learning outcomes:
- describe the basic concepts of modern functional programming languages, such as: data types, first- and higher-order functions, lazy evaluation, infinite data structures
- describe a basic repertoire of functional programming techniques, such as: recursion, testing, the role of data types in modelling and problem solving
- write small functional programs for various applications
- structure programs in a way that makes them easy to understand and modify, by appropriate application of data types, abstraction, and code reuse
- implement effective tests for functional programs with help of suitable tools
- show the ability, in various contexts, to judge which programming techniques are most appropriate for solving the problem at hand
Examination form
The contents of the exam is:
- Everything we have talked about in the course
- The contents of each lecture
- QuickCheck properties and simple generators
The course is examined by:
- a number of compulsory assignments during the course, typically carried out in groups of 3 students (3.0 hp)
- an individual written exam at the end of the course (4.5 hp)
This year the exam is on the 29th of October in the afternoon. 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 January and one in August; the time and place of the exams can be seen on the Chalmers syllabus page for the course.
Course summary:
Date | Details | Due |
---|---|---|