SluitenHelpPrint
Switch to English
Cursus: NWI-IBC015
NWI-IBC015
Functional Programming for Artificial Intelligence Students
Cursus informatieRooster
CursusNWI-IBC015
Studiepunten (ECTS)3
CategorieBA (Bachelor)
VoertaalEngels
Aangeboden doorRadboud Universiteit; Faculteit der Natuurwetenschappen, Wiskunde en Informatica; Informatica en Informatiekunde;
Docenten
Cursuscoördinator
dr. P.M. Achten
Overige cursussen docent
Docent
dr. P.M. Achten
Overige cursussen docent
Contactpersoon van de cursus
dr. P.M. Achten
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.
  • Redeneren over functionele programma’s.
Inhoud

Functioneel programmeren is een programmeerdiscipline 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. Ze spelen ook een belangrijke rol binnen de kunstmatige intelligentie. Vanwege hun grote uitdrukkingskracht worden ze in toenemende mate gebruikt voor het ontwikkelen van complexe software systemen.

Bijzonderheden
Deze cursus is in 2017 geen regulier onderdeel van het AI-curriculum. Er wordt alleen een aangepaste versie van de cursus aangeboden als bezemkans voor studenten die deze in 2016 niet hebben behaald. Deze cursus betreft dus geen volledige op zichzelf staande cursus, en is in 2017 niet bedoeld voor studenten die deze nog niet eerder hebben gedaan. Zie onder Werkvormen voor nadere informatie.
Onderwerpen
expressies; functies; typering; polymorfie; recursie; herschrijven; basis types; eenvoudige algebraïsche types; tuples; records; overloading; lijsten; lijst-comprehensions; ZF-expressions; lambda-abstractie; hogere-orde functies; evaluatie-strategieën; recursieve data structuren; correctheidsbewijzen.
Toetsinformatie
schriftelijke eindtoets, gesloten boek
Voorkennis
Programmeerervaring op het niveau van de informatica-cursussen Imperatief Programmeren 1 en 2 zijn nodig. Met name systematisch programmeren, functies, en recursie worden als zijnde bekend verondersteld.
Contact informatie
Peter Achten
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.
Werkvormen
Vanwege verplaatsing in het curriculum wordt deze cursus in studiejaar 2017/2018 op een andere manier aangeboden. Er is een kick-off bijeenkomst waarin de opzet wordt uitgelegd. Er zijn 4 meet-ups die in een Collaborative Learning Room gehouden worden, onder begeleiding van student-assistenten. Voorafgaand bestudeer je de stof die bij de desbetreffende meet-up hoort en je werkt aan opdrachten. Tijdens de meet-up kun je vragen stellen aan de student-assistenten, in groepjes van maximaal 6 studenten werken aan problemen. Je neemt zelf een laptop mee. Het vak wordt afgesloten met een schriftelijk tentamen.
Verplicht materiaal
Blackboard
Slides hoorcolege
Aanbevolen materiaal
Boek
Online boek: ftp://ftp.cs.kun.nl/pub/Clean/papers/cleanbook/CleanBookI.pdf
Artikelen
Clean language report: ftp://ftp.cs.kun.nl/pub/Clean/Clean20/doc/CleanRep2.0.pdf.
Werkvormen
Computerpracticum
AanwezigheidsplichtJa

Cursus

Hoorcollege

Werkcollege

Algemeen
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 programmeertaal Clean.Deelname aan het practicum is verplicht. Opdrachten moeten serieus worden ingeleverd. Studenten krijgen feedback van student-assistenten. (Niet als cijfer)

Toetsen
Tentamen
Weging1
GelegenhedenBlok KW3

SluitenHelpPrint
Switch to English