6 ECTS credits
150 u studietijd
Aanbieding 1 met studiegidsnummer 4021362FNW voor werkstudenten in het 2e semester met een gespecialiseerd master niveau.
AANBEVOLEN VOORKENNIS
Naast kunnen programmeren op voldoende hoog niveau is er voor deze cursus in principe geen voorkennis vereist. Basiskennis over hogere orde programmeren zoals dat gebeurt met first-class functies in Scheme, Ruby, Clojure, Python, Prolog, Erlang, Scala of Lisp is echter een groot pluspunt. Bovendien wordt een basiskennis "theorie van programmeertalen" verondersteld zoals die in een standaard cursus “Logica en Formele Systemen” en “Automaten en Berekenbaarheid” aangeboden wordt.
INHOUD
Alle transparanten en besproken code zijn via het Canvas systeem beschikbaar gesteld voor de studenten. Er zijn verschillende standaardwerken voorhanden. Grote stukken van de cursus zijn echter gebaseerd op "Introduction to Functional Programming using Haskell" van Miran Lipovaca.
Kennis en inzicht: In deze cursus wordt een voortgezette studie van functioneel programmeren behandeld. Functionele programmeertalen zijn programmeertalen zonder toekenningen (t.t.z. = of set!), zonder sequentie (t.t.z. begin of { }) en zonder standaard I/O faciliteiten aangezien deze laatste niets anders zijn dan toekenningen op globale invoer- en uitvoertoestandsvariabelen. Door deze beperkingen hebben functionele programmeertalen een aantal wetenschappelijke voordelen t.o.v. imperatieve talen. Langs de andere kant eisen deze beperkingen een radicaal verschillende manier van programmeren. Het doel van de cursus bestaat er enerzijds in van een overzicht te geven over de programmeertechnieken die gebruikt worden om in zulke "pure" talen toch realistische software te schrijven. Anderzijds is het de bedoeling een inzicht te verschaffen in de wetenschappelijke voordelen die voortvloeien uit de restricties van deze talen.
Toepassing van kennis en inzicht: Studenten moeten de opgedane kennis concreet kunnen toepassen bij het schrijven van software in een functionele programmeertaal. Het vak toetst dit a.d.h.v. een programmeerproject.
Oordeelvorming: Studenten dienen een correct oordeel te kunnen vormen over de toepasbaarheid van functioneel programmeren in een concrete situatie. Eenmaal toepasbaar, moet de rol van (de afwezigheid van) sterke typering in de keuze van hun programmeertaal kunnen verantwoord worden.
Communicatie: Studenten dienen de keuzes die ze gemaakt hebben tijdens de uitvoering van een project mondeling te kunnen verdedigen en toelichten op een beredeneerde wijze.
Leervaardigheden: Bedoeling is om de student vertrouwd te maken met twee functionele programmeertalen die voldoende representatief zijn opdat hij/zij gewapend is om andere talen te kunnen classificeren en opdat hij/zij voldoende programmeerervaring heeft om geavanceerde topics in FP te kunnen begrijpen.
De beoordeling bestaat uit volgende opdrachtcategorieën:
Examen Mondeling bepaalt 50% van het eindcijfer
Examen Schriftelijk bepaalt 50% van het eindcijfer
Binnen de categorie Examen Mondeling dient men volgende opdrachten af te werken:
Binnen de categorie Examen Schriftelijk dient men volgende opdrachten af te werken:
Het examen bestaat uit een theoretisch en een praktisch gedeelte. Het theoretische gedeelte omvat een mondelinge overhoring van de behandelde onderwerpen. Het praktische gedeelte bestaat uit het uitvoeren van een programmeerproject waarin de student zijn programmeervaardigheid Haskell moet aantonen. Beide delen zijn even belangrijk in de eindbeoordeling. Afwezigheid bij 1 van de delen impliceert afwezigheid op het vak.
Deze aanbieding maakt deel uit van de volgende studieplannen:
Master in de ingenieurswetenschappen: computerwetenschappen: afstudeerrichting Artificiële Intelligentie
Master in de ingenieurswetenschappen: computerwetenschappen: afstudeerrichting Multimedia
Master in de ingenieurswetenschappen: computerwetenschappen: afstudeerrichting Software Languages and Software Engineering
Master in de ingenieurswetenschappen: computerwetenschappen: afstudeerrichting Data Management en Analytics
Educatieve master in de wetenschappen en technologie: computerwetenschappen (120 ECTS, Etterbeek)