The course is an introduction to Functional Programming for students who know how to program. The students come mainly from the masters program at Chalmers and the University of Göteborg. Please note that you cannot include this course as part of a degree which already contains TDA555 (Introduction to Functional Programming). The contents are too similar (although the exam for this course is more demanding). If you took TDA555 or similar please consider TDA342 Advanced Functional Programming
These are from TDA452 2014. Content will be similar for this year. The timing needs to be adjusted for the new study schedule. Minor updates will be made as we go along.
Reordered lectures in 2015:
The lectures were reordered in 2015. The older slides accompanying the Videos are in the Vid subdirectory
-(Code 2015: CSVexample.hs)
Relevant older slides:
Exercises 5: Recursive Datatypes
This week we continue with Monads
(2014 we had a Guest lecture by Anton Ekblad, who told us about Haste, Haskell for Web Applications. Haste may be a reasonable approach to build simple GUIs for your project, and is suggested for the standard lab. It is also a cool research project in its own right. Anton will give us a tutorial on getting simple stuff done with Haste, and give us some insights into why it exists and where the project is going.)
No lectures (Project work!)
Revision: coding of last year's exam will be made available online in early January.
In the table below you will find links to lab assignments which have to be handed in. For each assignment have a submission deadline at which you must submit your solutions. Your first submission is expected to be a serious attempt to complete the lab. If your submission does not pass (incorrect or simply badly coded) then you must resubmit. You have until the final deadline. The final deadline is absolute: it is the last possible date to hand in your solutions. If your solutions are not passed you get no further chances this term.
Note that the deadlines are firm and are controlled strictly by the lab reporting system. Therefore you must submit by the deadlines.
|Submission deadline||Final deadline (parts A & B)|
|Lab 1||Wednesday 2015-11-04||Friday 2015-11-12|
|Lab 2A||Wednesday 2015-11-11|
|Lab 2B||Wednesday 2015-11-18||Friday 2015-11-28|
|Lab 3A||Wednesday 2015-11-25|
|Lab 3B||Wednesday 2015-12-02||Friday 2015-12-13|
|Lab 4 Proposal||Monday 2015-12-07|
|Lab 4 Project||Wednesday 2015-12-16|
Lab 4 is a mini project, to be presented to the graders around 16-18 December. A project proposal (a brief description of the plan) is to be submitted latest Monday 7 Dec for feedback (if necessary). In 2014 about 50% of the projects were required to make some small changes for later submission. See the lab description for more information.
2015: If you are presenting your lab on 16 December, you must submit the lab before your presentation. Everyone else has to submit by 23:59 on 16th.
Please read this link about how to get help!
Evgeny, Gregoire, and Fabian have open office hours listed below when you can drop in and ask questions about the lab assignments.
These drop-in times are valid from Monday of week 3.
We recommend installing the Haskell Platform. Quote: The Haskell Platform is the easiest way to get started with programming Haskell. It comes with all you need to get up and running. Think of it as "Haskell: batteries included".
Even older exams. These are a bit different from the current style, but there are some useful examples to be found.
The examination of the course has two parts: the weekly assignments and a written exam in the end of the course. To pass the course it is necessary to pass all home assignments and the exam. The exam dates are announced on the student portal http://www.student.chalmers.se/ .
Length: 4 hours
Some advice which you shouldn't really need: