Advanced functional programming

INFOAFP

Over deze cursus

This course builds upon knowledge gained in the introductory courses on functional programming and languages and compilers.
Using Haskell as our language of choice, several advanced functional programming techniques, patterns, libraries and tools are treated.
One goal of this course is to equip you with sufficient knowledge in order to participate in research projects in this field.
Some of the topics that the course covers are: development tools, data structures, monads, type families, existential types and higher rank polymorphism.

Course form
Lectures, tutorials.

Literature
To be announced.

Leerresultaten

At the end of the course, the student will

  • be able to use a wide range of Haskell tools and libraries
  • know how to structure and write large programs
  • be proficient in the theoretical underpinnings of FP such as lambda calculus and type systems
  • be able to understand formal texts and research papers on FP language concepts
  • be familiar with current FP research

Assessment

To qualify for a repair of the final result the mark needs to be at least a 4, or “AANV”.

Prerequisites
Basic experience with a functional programming language, such as Haskell.

Voorkennis

Je moet voldoen aan de volgende eisen

  • Toelatingsbeschikking voor de master toegekend

Aanvullende informatie

cursus
7.5 ECTS • broadening
  • Niveau
    master
Als er nog iets onduidelijk is, kijk even naar de FAQ van Utrecht University.

Startdata

  • 2 feb 2026

    tot 10 apr 2026

    LocatieUtrecht
    VoertaalEngels
    Periode *Blok 3
    Monday 09:00 - 09:45, Monday 09:00 - 10:45, Monday 09:00 - 11:45, Monday 09:00 - 12:45, Monday 10:00 - 10:45, Monday 10:00 - 11:45, Monday 10:00 - 12:45, Monday 11:00 - 11:45, Monday 11:00 - 12:45, Monday 12:00 - 12:45, Tuesday 16:15 - 17:00, Tuesday 17:15 - 18:00, Tuesday 17:15 - 19:00, Tuesday 18:15 - 19:00, Wednesday 09:00 - 09:45, Wednesday 09:00 - 10:45, Wednesday 09:00 - 11:45, Wednesday 09:00 - 12:45, Wednesday 10:00 - 10:45, Wednesday 10:00 - 11:45, Wednesday 10:00 - 12:45, Wednesday 11:00 - 11:45, Wednesday 11:00 - 12:45, Wednesday 12:00 - 12:45