Zoek
English
  Studiegidsen 2008-2009
Radboud UniversiteitStudiegidsenFaculteit der Natuurwetenschappen, Wiskunde en Informatica > Bachelor Informatica en Informatiekunde

Functioneel Programmeren 

Vakcode
IBC006
Studiepunten
6
Periode
eerste semester
Inleiding
Functioneel programmeren is een stijl van programmeren die gebaseerd is op het wiskundige concept “functie”. Door gebruik te maken van (hogere orde) “pure” functies, algebraïsche datastructuren en een sterk maar tevens flexibel typeringssysteem ontstaat een krachtige programmeertaal waarin op compacte en inzichtelijke wijze berekeningen kunnen worden uitgedrukt. Het goed doordachte onderliggende wiskundige berekeningsmodel maakt het mogelijk over programma’s te redeneren met behulp van eenvoudige wiskundige technieken zoals substitutie en volledige inductie.

Functionele talen spelen al jarenlang een vooraanstaande rol in het informaticaonderzoek naar nieuwe (programmeertaal)concepten. Vanwege hun grote uitdrukkingskracht worden ze in toenemende mate gebuikt voor het ontwikkelen van complexe software systemen.

Leerdoelen
Aan het eind van de cursus kunnen studenten:
  • Een gegeven probleem oplossen door middel van programma geschreven in een moderne functionele taal zoals Haskell of Clean.
  • Voor een gegeven probleem een qua tijd- en ruimtegedrag geschikte datastructuur kiezen.
  • Redeneren over functionele programma’s.
  • Correctheidsbewijzen geven over eenvoudige functionele programma’s.

Doel van het vak is tevens dat studenten kunnen omgaan met moderne programmeertaalconcepten (zoals hogere orde functies, polymorfie, overloading, recursieve algebraïsche datastructuren zoals lijsten en bomen, recursieve functies).

Onderwerpen
Recursieve functies, recursieve (oneindige) datastructuren, (zoek)bomen, gebalanceerde bomen, typering, overloading, object-abstractie, algebraische data types, hogere-orde functies, currying, polymorfie, correctheidsbewijzen, statische vs dynamische typering, universeel en existentieel gequantificeerde types, luie evaluatie, normaal vormen, monads, uniciteitstypering.
Studielastverdeling
  • 60 uur computerpracticum
  • 24 uur hoorcollege
  • 12 uur werkcollege
  • 72 uur zelfstudie
Toelichting werkvormen
In het hoorcolleges wordt de stof behandeld en besproken.
Er is een practicum waarin de student zelf actief aan de slag gaat met de stof.  Dit kan zowel individueel als in koppels van twee.
Bij het practicum is een begeleidend werkcollege waarin opdrachten behandeld worden, en vragen over de stof gesteld kunnen worden.
We maken gebruik van de state-of-the-art functionele programmeertaal Clean.
Toetsvorm
Schriftelijk eindtentamen. Gesloten boek.
Vereiste voorkennis
De programmeerlijn zoals die in de bachelor door informatica aangeboden wordt, of equivalente voorkennis.
Literatuur