Home/Vakken/Functional programming
INFOFP7.5 ECTSQ1DutchBachelor

Functional programming

FaculteitFaculty of Science
NiveauBachelor
Studiejaar2026-2027

Beschrijving

Course goals

Learning Goals

By the end of the course you will be able to

  • solve problems using a ‘functional approach’. That is, define what needs to be computed using techniques and concepts such as
    • recursion,
    • pattern matching,
    • composition,
    • higher order functions,
    • algebraic data types,
    • monads,
    • immutable and persistent data structures, and
    • laziness.
  • reason about the correctness and the types of functions.
  • develop a small, real world game in the functional language Haskell

Tests
    - there is a midterm M which counts for 30% of the grade,
   - there is a final exam F which counts for the remaining 70% of the grade.

   Additionally,

   - there is one large pass/fail assignment that you have to do in pairs, and that can gain you at most 0.4 bonus points P for the process and at most 0.4 bonus points R for the result (see below for details).

   - there are 3 small pass/fail lab-assignments, out of which you need to pass at least 2.

  Your final grade will be computed as min(0.3*M + 0.7*F + P + R, 10).


  To pass the course

   - the weighted average of the midterm and the final needs to be at least a 5,
   - you need to pass the large practical assignment, and
   - you need to pass at least 2 small assignments.

  To qualify for the retake exam:

  - your weighted average of the midterm and the final needs to be at least a 4,
  - you need to pass the large assignment, and
  - you need to pass at least one small assignment.

You cannot retake the large assignment.
 

Test matrix
The learning goals are tested in the following manner:

Learning goal Midterm Final Game Small practicals
Solve problems using a functional approach, using techniques and concepts such as:        
  • recursion,
X X   X
  • pattern matching,
X X X X
  • composition,
X X X  
  • higher order functions,
X X X  
  • algebraic data types,
X X X X
  • monads,
  X X  
  • immutable and persistent data structures, and
X X    
  • laziness.
  X    
Reason about the correctness    X    
                                                       and the types of functions. X      
develop a small, real world program in the functional language Haskell.     X  

 

Content


Additional information

NB Het Nederlands wordt als voertaal gebruikt in de colleges, de communicatie en de toetsing van deze cursus, tenzij betrokken docenten deze taal onvoldoende beheersen. Het gebruikte cursusmateriaal zal typisch Engelstalig zijn.

Reviews0 reviews

Nog geen reviews voor dit vak. Wees de eerste!

Heb jij dit vak gevolgd?

Deel je ervaring met toekomstige studenten. Inloggen met je Universiteit Utrecht mailadres duurt één minuut.

Schrijf een review