SluitenHelpPrint
Switch to English
Cursus: NWI-IBC030
NWI-IBC030
Functioneel Programmeren 2
Cursus informatieRooster
CursusNWI-IBC030
Studiepunten (ECTS)3
CategorieBA (Bachelor)
VoertaalEngels
Aangeboden doorRadboud Universiteit; Faculteit der Natuurwetenschappen, Wiskunde en Informatica; Informatica en Informatiekunde;
Docenten
Docent
dr. P.M. Achten
Overige cursussen docent
Contactpersoon van de cursus
prof. dr. R.T.W. Hinze
Overige cursussen docent
Docent
prof. dr. R.T.W. Hinze
Overige cursussen docent
Coördinator
prof. dr. R.T.W. Hinze
Overige cursussen docent
Docent
prof. dr. ir. M.J. Plasmeijer
Overige cursussen docent
Collegejaar2017
Periode
KW3  (05-02-2018 t/m 15-04-2018)
Aanvangsblok
KW3
Onderwijsvorm
voltijd
Opmerking-
Inschrijven via OSIRISJa
Inschrijven voor bijvakkersJa
VoorinschrijvingNee
WachtlijstNee
Plaatsingsprocedure-
Cursusdoelen
Aan het eind van de cursus kunnen studenten:
  • Een gegeven probleem oplossen door middel van programma geschreven in een moderne functionele taal zoals Clean of Haskell.
  • Voor een gegeven probleem een qua tijd- en ruimtegedrag geschikte datastructuur kiezen.
  • Moderne programmeertaalconcepten kennen en inzetten, zoals hogere-orde functies, polymorfie, overloading, recursieve algebraïsche datastructuren zoals lijsten en bomen, alsmede applicative functors en monads.
Inhoud

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 (lambda-calculus, term-herschrijven) maakt het mogelijk over programma’s te redeneren met behulp van eenvoudige wiskundige technieken zoals substitutie en volledige inductie.

Functionele talen spelen al decennia 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.

In deze vervolgcursus worden technieken bestudeerd die in bovenstaande context relevant zijn: het construeren van programma's met zij-effecten middels uniqueness typering en monads; het mengen van statische en dynamische typering middels dynamics, de relatie met lambda-calculus en combinatorische logica, en de constructie van interactieve grafische programma's.

Onderwerpen
file I/O; uniqueness typering; monads; state monad; type constructor classes; dynamic typing; lambda-calculus; combinatorische logica; persistente datastructuren.
Toetsinformatie
Verplicht practicum. Schriftelijk eindtentamen is gesloten boek.
Voorkennis
De programmeerlijn zoals die in de bachelor door informatica aangeboden wordt, of equivalente voorkennis, alsmede Functioneel Programmeren 1.
Literatuur
• Slides hoorcollege;
• Online boek: ftp://ftp.cs.kun.nl/pub/Clean/papers/cleanbook/CleanBookI.pdf;
• Clean language report: ftp://ftp.cs.kun.nl/pub/Clean/Clean20/doc/CleanRep2.0.pdf;
• Haskell language report: www.haskell.org/onlinereport/haskell2010
Werkvormen
• 32 uur computerpracticum
• 16 uur hoorcollege
• 8 uur werkcollege
• 28 uur zelfstudie

Toelichting werkvormen: In het hoorcollege wordt de stof behandeld en besproken.
Er is een practicum waarin de student zelf actief aan de slag gaat met de stof.
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 programmeertalen Clean en Haskell.Deelname aan het practicum is verplicht. Opdrachten moeten serieus worden ingeleverd. Studenten krijgen feedback van student-assistenten over de kwaliteit van een deel van hun uitwerkingen. Deze beoordeling is niet in de vorm van een cijfer.
Verplicht materiaal
Handouts
Slides van het hoorcollege
Handleiding
Haskell language report: www.haskell.org/onlinereport/haskell2010
Aanbevolen materiaal
Boek
Online boek: ftp://ftp.cs.kun.nl/pub/Clean/papers/cleanbook/CleanBookI.pdf
Handleiding
Clean language report: ftp://ftp.cs.kun.nl/pub/Clean/Clean20/doc/CleanRep2.0.pdf
Werkvormen
Computerpracticum
AanwezigheidsplichtJa

Cursus
AanwezigheidsplichtJa

Hoorcollege
AanwezigheidsplichtJa

Werkcollege
AanwezigheidsplichtJa

Zelfstudie

Toetsen
Tentamen
Weging1
ToetsvormTentamen
GelegenhedenBlok KW3, Blok KW4

SluitenHelpPrint
Switch to English