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:
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 languageHaskell.
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, 3WOverige 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 inthe course Logic and Modeling.