Exam
The final exam consists of a Programming Exam followed by an optional Oral Exam.
To be eligible for the exam, your homework solutions must meet at least the minimum requirements.
Exam dates will be published on KOS before the start of the examination period.
Programming Exam (30 points total)
Important
Please make sure you know your lab computer password. You can change it here.
The programming exam starts with a simple task in either Racket or Haskell which will serve as an entry requirement for the main part. After the simple task, You must solve one Racket assignment (15 points) and one Haskell assignment (15 points).
An example exam (example A, example B) could look like:
- Entry requirement: Check if a word from the standard input is a palindrome in Haskell,
- Racket main task: Check if an
-Knights board is valid, - Haskell main task: Pretty-print Binary Numbers.
You will have 3 hours for the whole exam, so you should be able to solve each main task in roughly 90 minutes to get a perfect score. You have to solve the entry requirement task and reach at least 16 points in total to pass the programming exam. You will have access to all course materials on this webpage, as well as the Racket documentation and Hoogle, but you will not have access to the internet.
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.
The two main tasks will be variations of the assignments in our task list. The entry requirement task will always be unique.
Oral Exam (20 points total)
You can take an optional 15-minute oral exam after you pass the programming exam. We will ask you about the theoretical underpinnings of functional programming, Racket, and Haskell. You can earn up to 20 extra points, and you cannot lose any points.