Course manual 2025/2026

Course content

This course starts with a fast introduction to Haskell and then focuses on how it can be used as a research tool. Examples include explicit and symbolic model checking for modal logics. The course finishes with a group project for which a list of topics will be provided, but students may also choose their own topic in consultation with the lecturer.

Study materials

Literature

Software

Objectives

  • Students will understand the basics of Haskell: types, functions, lists and recursion.
  • Students can write concise and well-structured Haskell programs using type classes and abstractions such as applicatives and monads.
  • Students will be able to implement model checking, theorem proving or other logic algorithms.
  • Students will be able to use formal specification and property-based testing to test programs and to refute conjectures.
  • Students will be able to use functional programming to investigate a research question.
  • Students will be able to document their own programs and present their work.

Teaching methods

  • Lecture
  • Laptop seminar
  • Presentation/symposium
  • Working independently on e.g. a project or thesis
  • Self-study

Learning activities

Activity

Hours

 

Hoorcollege

28

 

Laptopcollege

26

 
Deeltoets

2

 

Presentatie

4

 

Self study

108

including 5 homeworks and the group project

Total

168

(6 EC x 28 uur)

 

Attendance

This programme does not have requirements concerning attendance (TER-B).

Additional requirements for this course:

Attendance of all components is strongly recommended, but not tracked.

Attendance is mandatory for some of the Laptopcolleges (feedback sessions during the group project) and for the final session with group presentations.

Assessment

Item and weight Details

Final grade

35%

Midterm exam

Must be ≥ 5.5

35%

Homeworks

1 (20%)

FP Homework 1

1 (20%)

FP Homework 2

1 (20%)

FP Homework 3

1 (20%)

FP Homework 4

1 (20%)

FP Homework 5

30%

Group project

Topic

Must be ≥ pass

Beta version

Must be ≥ pass

1 (50%)

Presentation

1 (50%)

Final report and code

The midterm exam is closed book pen-and-paper, without any computer use.

Old midterm exams that can serve as examples are available on Canvas.

To pass the course the midterm exam grade must be at least 5.5.

The resit only replaces the midterm grade. There is no resit or other retry for the homeworks and the group project.

Inspection of assessed work

See Canvas.

Assignments

Homework must be submitted individually. Discussing homework with others is allowed and recommended, but you must never share any text or code with others.

Homework will mostly be graded using automated testing, but you will also receive individual written feedback.

The final course projects will be done in groups. You will have to submit a "beta" version for which you will receive feedback during the project.

Fraud and plagiarism

The 'Regulations governing fraud and plagiarism for UvA students' applies to this course. This will be monitored carefully. Upon suspicion of fraud or plagiarism the Examinations Board of the programme will be informed. For the 'Regulations governing fraud and plagiarism for UvA students' see: www.student.uva.nl

Course structure

See Canvas.

Honours information

Not applicable.

Contact information

Coordinator

  • Malvin Gattinger

Besides the lecturer there will be two teaching assistants for this course. See Canvas for how to contact us.