Home
• Education Page
• Schedule
• Literature
Errata
• Example Code
• Practical Exercises
• Haskell Tutor
• Q & A
• Regulations
• Marks
• Oude Tentamens

All about Haskell – links to tutorials, API documentation, tools, libraries, etc.

Miscellaneous

• Getting Help
• Haskell chat
• Advies Van Eerdere Studenten

Web Home

FP

Bachelor Course on Functional Programming

News

Jan 22, 2012 Grades after third test available.

Dec 2 Practical 4 is available.

Nov 11 Grades for second test available.

Nov 10 The grades for the second practical are finally out. See the practical page for the weights assigned to the exercises.

Nov 3 If you have difficulties with some topic, feel free to come by at BBL-570 (Jan) or BBL-565 (Alex). We will gladly do our best to help you comprehend.

Nov 3 Uploaded the solutions to the state monad tutorial presented on the last werkcollege.

Nov 1 If you want to learn more about Haskell and its use you may take the Talen en Compilers bachelor course.

Oct 31 If monads are still unclear to you, please work through the latest tutorial on monads. On Wednesday in BBL-109 there will be a session about monads based on this tutorial followed by a quick discussion of parser combinators.

Oct 26 Nieuwe versie van uu-parsinglib op hackage.

Oct 26 Just nice to see: diagrams.

Oct 24 John McCarthy dies on Oct 23.

Oct 24, 15:44 The deadline for practical 3 has been moved to November 13.

Oct 24, 12:33 Added new instructions for practical 3.

Oct 24, 11:01 Added a new tutorial about defining your own state monad.

Oct 19, 14:15 Check out the blog posts about folds written by one of the student assistants: part1 part 2.

Oct 19, 14:13 If you have trouble installing the NanoProlog package, please send me the compiler output along with the version of GHC you use.

Oct 19, 00:44 Practical 3 is available.

Oct 17, 14:48 Marks for first test available. Plaese also check whether the mark for your first test has been correctly entered.

Oct 15 12:50 The deadline vor practical 2 has been extended by one day.

Oct 13 16:32 Not a clue about data types? In the next practical session on Monday we will have a small session to help you to understand data types. We had the impression that some are having trouble with it. If you were able to do the poker practical this is probably not for you. If you'd like to join please come to BBL-106 (front rows).

Oct 6, 22:08 How about this?

Oct 5, 10:53 Practical 2 has been updated.

Oct 4, 21:38 Test (onder voorbehoud)

Sept 28, 16:56 Practical 2 is available. Try to apply on the practice just received knowledge of data types.

Sept 26, 12:42 Added old exams

Sept 23, 21:07 (Tokyo) Correcties in dictaat op pagina 48.

Sept 19, 2:41 Added additional hints for Practical 1.

Sept 20, 2:02 Fixed formatting problems in lecture notes, resulting from translation of exercises into English

Sept 19, 2:41 Added a small example on how to apply QuickCheck? to a function with multiple parameters.

Sept 19, 2:41 small changes and typos fixed in Chapter 4; exercises in English

Sept 17, 14:19 Support for 5.7 (myconcat) en 5.10 (encode) has been added to the tutoring system

Sept 16, 11:51 Practical 1 is available. Start soon, since you have only two werkcolleges to ask questions.

Sept 15, 14:52 typo fixed in Chapter 4; one exercise a bit extended

Sept 14, 22:27 All references to now obsolete n+k patterns removed from lecture notes

Sept 14, 15:02 Typos fixed in exercise 2.14

Sept 13, 11:42 More typos fixed; slight renaming in chapter 4

Sept 12, 16:13 New version of lecture notes uploaded

Sept 12, 9.00 First lecture

Upcoming Events

Where applicable I have removed your exam from the pile.

I got a question about how to study so you may pass in January.

As many of you will have noticed when doing the exam for this course it is not sufficient that you can understand an Haskell program, but we also require that you can write small programs without compiler assistance. The good news is that my imagination is limited, and that thus most questions come from/are inspired by:

  • the lecture notes
  • the exercises in the lecture notes
  • the extra exercises placed on the website
  • previous exams

So most of you just have to practice, and this will take time and effort. I think it is not wise to postpone this process until say the Christmas break. Make a plan for yourself which exercises you want to make in the coming weeks. You may make one or two of the old exams by yourself every week, until you know all the exercises by hearth. Just realise: how many functions you had to differentiate in high school before it went fluently.

For most exercises it holds that after you have made them and if you understand them well, you should be able to explain to yourself while sitting on your bicycle or in a train/bus how to proceed when you are again confronted with the same or a similar exercise. usually there are one or two key points, and once you recognise or remember them the rest of the code should follow automatically.

Some more things you might do:

  • find a partner which is in the same situation as you and make an agreement that you will make old exams together. This will enforce some discipline in case you are lacking some.
  • play a role game where one of you is me and the other one (him/her)elf, and ask questions about the material and check whether the answers given are correct
  • make a list-of-tricks which you can apply, like "accumulating parameter", "handle the simple case first", "tupling", "recognise the recursive structure", "use lazy evaluation to refer to a value you do not know yet", etc.
  • earn to see whether you have covered all cases in a function definition and whether patterns do not overlap unintentionally
  • make sure that you understand the underlying principles.

In the exam I try not to test whether you know the algorithms, but whether you know ad understand the underlying principles of programming in a lazily evaluated, strongly typed functional language.

If you cannot find a partner I am prepared to form the role of match-maker,

Students with an F number will be allowed to take part in the reseat anyway.

There will be be an extra opportunity to do the FP exam for HBO students, who are doing their course as part of a minor program. Please let me know if you plan to participate.

The course this year

The audience of this year's course instance will be mixed: regular CS bachelor students, students from the CKi bachelor program, students from the HBO, various interested individuals, and finally some students who start with the COSC master program, but do not have a background in functional programming. As a result of this mixed audience we had to make some choices of which we hope they will work out as expected. If you have any questions or suggestions for improvement please let us now immediately, and do not wait until after the final exam.

Lecture Notes

The lecture notes are in continuous transit, since in recent years there have been quite a large number of larger and smaller changes to Haskell and its libraries; we have started to rewrite the notes in English and to make them up to date with the current main Haskell implementation and the more advanced level of the course as much as possible; this is however a large endeavour. Please let us know when you see inconsistencies, typos, mistakes and material left over from the past which does not apply anymore. Getting the notes perfect is a joint effort of lecturers and students. All suggestions are more than welcome.

Last year some people have indicated that they should like to have a printed version. At the beginning of the course we will pass a list if you want to "order" a copy, which we will then have printed. In this way we avoid that a fairly large number of copies is destroyed each year.

We will make available a version in the B5-format; we are interested to learn about your experience on e-readers.

Multiple Choice Questions

In the past we have used multiple choice questions at the exams. From this year on we will ask more programming exercises, and may ask you to explain things. We have incorporated many of the old questions in the lecture notes, which you can use to test your own Haskell knowledge. I discovered that formulating such questions is actually fun, so if you invent new exercises which are instructive please send them to me, so I can put hem on the website and include them in the notes.

Software

In the course we will be using the latest version of the Glasgow haskell compiler and related tools. This software has been packaged in the so-called Haskell platform:
button-100.png

Calendar entries

By subscribing your calendar program to the url FP events block 1 and FP events block 2 you will automatically be informed about room updates, etc.

Dutch Haskell User Group

Last year a group of students and Software Technology alumni have started a Dutch Haskell User Group. Click on the logo below. Students are welcomed at the monthly meetings (which sometimes are just drinking beer together). Here you can talk with people working in Haskell oriented startups, people working on or with Haskell, ask for opinions, etc.

Dhug.png


Topic attachments
I Attachment Action Size Date Who Comment
pdfpdf 20101108-EindToets.pdf manage 132.5 K 09 Nov 2010 - 15:17 DoaitseSwierstra