Skip to content

Exam

  • To be admitted to the exam, you should have to fulfill the conditions for passing the homework requirements.

  • The programming exam:

    • You have to solve one Racket assignment (15 points) and one Haskell assignment (15 points), which you have to finish in 3 hours.
    • You have to reach at least 16 points in the programming exam to pass the exam.
    • You have access to all course materials on this webpage, to the racket documentation, to Hoogle, but of course no internet.

Important

Please make sure you know your lab computer password. You can change it here.

Course material

Make use of the search (Ctrl+K / ⌘+K) on the course webpage!

  • The (optional) oral exam:
    • You can take this part of the exam only if you passed the programming exam.
    • Approximately 15 minuates. No materials. Just pen and paper.
    • We will ask you about the theoretical underpinnings of functional programming, Racket, and Haskell.
    • You can earn an extra 20 points, but you cannot loose any points not matter what you say in this part of the exam.

Programming exam details

The programming exam will consist of solving two of the tasks listed on this webpage - without access to their solutions. We suggest not looking at the text of the assignments before you have time to attempt to solve it. Most of the tasks have a Racket and a Haskell version. During the exam you have to solve one task in one language and another task in another language. So an exam could look like:

  • Solve -Knights in Racket (for 15 points)
  • Solve Filetree in Haskell (for 15 points)

You will have 3 hours for the whole exam, so you should be able to solve each of them in roughly 90 minutes to get a perfect score.

You will upload your exam solutions to BRUTE like you are used to from the homework, and get immediate feedback on how many points you achieved. You can upload your solution as many times as you want.

We offer the following exam dates for the summer semester of 2024:

ExamDateTime
1Tuesday, 28th of May10am
2Monday, 3rd of June10am
3Monday, 10th of June10am
4Monday, 17th of June10am
5Thursday, 27th of June10am
6Monday, 2nd of September10am