Equational Programming

2018-2019
Dit vak wordt in het Engels aangeboden. Omschrijvingen kunnen daardoor mogelijk alleen in het Engels worden weergegeven.

Doel vak

To obtain basic knowledge of functional programming (using Haskell)
and its foundations via lambda calculus and equational reasoning.

Inhoud vak

In the practical work we use the functional programming language
Haskell.
We practice with the basics such as lists, recursion, data-types,
and a bit of monads.

The theoretical part is concerned with the foundations of functional
programming in the form of lambda calculus and equational reasoning.
We study in untyped lambda calculus beta reduction, reduction
strategies, confluence,
encoding of data-types, fixed point combinators and recursive functions.
In addition we study the lambda-calculus with simple types, its typing
system and a type inference algorithm, and possibly strong normalization
of simply typed lambda-calculus.
In equational reasoning we work towards the results that all initial
models are equal up to isomorphism, and that the term model is an
initial model.

Onderwijsvorm

The theoretical part is taught in the lectures and exercise classes.
In addition, there is a programming lab for programming in Haskell.

Toetsvorm

Written examination,
programming assignments in Haskell,
and (possibly obligatory) hand-in theory exercises.

Literatuur

Course notes.

Doelgroep

3CS, 3LI, 3IMM, 3W

Overige informatie

This course is part of the minor Deep Programming.

Afwijkende intekenprocedure

The registration procedure is the standard one.

Aanbevolen voorkennis

It helps to be familiar with formal reasoning as for example taught in
the course Logic and Modeling.

Algemene informatie

Vakcode X_401011
Studiepunten 6 EC
Periode P2
Vakniveau 300
Onderwijstaal Engels
Faculteit Faculteit der Bètawetenschappen
Vakcoördinator dr. F. van Raamsdonk
Examinator dr. F. van Raamsdonk
Docenten dr. F. van Raamsdonk

Praktische informatie

Voor dit vak moet je zelf intekenen.

Voor dit vak kun je last-minute intekenen.

Werkvormen Werkcollege, Hoorcollege, Practicum
Doelgroepen

Dit vak is ook toegankelijk als: