SluitenHelpPrint
Switch to English
Cursus: NWI-IBC029
NWI-IBC029
Functioneel programmeren 1
Cursus informatieRooster
CursusNWI-IBC029
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
KW2  (13-11-2017 t/m 04-02-2018)
Aanvangsblok
KW2
Onderwijsvorm
voltijd
OpmerkingStudenten Kunstmatige Intelligentie doen de cursus NWI-IBC015 in KW3.
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, type classes, recursieve algebraïsche datastructuren zoals lijsten en bomen.
  • Redeneren over functionele programma’s.
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.
Bijzonderheden
Deze cursus wordt in het Engels gegeven.

N.B. Deze cursus is NIET bedoeld voor studenten Articifiele Intelligentie. Deze doen de cursus NWI-IBC015 Functioneel Programmeren voor AI. Door curriculumwijzigingen bij AI maakt deze laatste cursus in 2017 geen deel uit van het reguliere aanbod, maar wordt deze alleen in aangepaste vorm aangeboden voor studenten die deze in 2016 al gedaan hebben maar het tentamen nog niet hebben behaald.
Onderwerpen
expressies; functies; typering; polymorfie; recursie; herschrijven; basis types; eenvoudige algebraïsche types; tuples; records; type classes; lijsten; lijst-comprehensions; lambda-abstractie; hogere-orde functies; evaluatie-strategieën; recursieve data structuren; correctheidsbewijzen.
Toetsinformatie
Verplicht practicum. Schriftelijk eindtentamen is gesloten boek.
Voorkennis
De programmeerlijn zoals die in de bachelor door informatica aangeboden wordt, of equivalente voorkennis.
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

Werkcollege

Zelfstudie

Toetsen
Tentamen
Weging1
ToetsvormTentamen
GelegenhedenBlok KW2, Blok KW4

SluitenHelpPrint
Switch to English