Declaratieve talen (B-KUL-G0Q45B)
Doelstellingen
De studenten maken grondig kennis met declaratieve programmeertalen.
Hierbij ligt de nadruk op het praktisch gebruik van een tweetal representanten van declaratieve talen, namelijk een logische en een functionele programmeertaal.
De belangrijkste doelstellingen van dit vak kunnen als volgt worden samengevat:
- De student kent de onderliggende principes van logische en functionele programmeertalen.
- De student kent de programmeertechnieken eigen aan logische en functionele programmeertalen.
- De studenten kent de basisprincipes van de uitvoeringsmechanismen van declaratieve talen.
- De student kan programma's schrijven en debuggen in een logische en in een functionele programmeertaal waarbij hij de handleiding van de taal mag gebruiken.
- De student kan de aangeleerde programmeertechnieken toepassen bij het schrijven van een uitgebreid programma.
- De student kan de aangeleerde talen plaatsen t.o.v. andere representanten van hetzelfde paradigma.
- De student kan vertrekkende van zijn verworven inzichten en vaardigheden zelf nieuwe gerelateerde ontwikkelingen in programmeertalen aanleren.
Begintermen
De student kent een programmeertaal en kan programmeren.
De student kan recursieve programma's schrijven.
Identieke opleidingsonderdelen
Dit opleidingsonderdeel is identiek aan de volgende opleidingsonderdelen:
X0C99A : Declaratieve talen
Plaats in het onderwijsaanbod
- Schakelprogramma: Master in de toegepaste informatica (Leuven) 61 sp.
- Bachelor in de informatica (Leuven) 180 sp.
- Bachelor in de wiskunde (Leuven) (Minor informatica) 180 sp.
Onderwijsleeractiviteiten
3 sp. Declaratieve talen (B-KUL-G0Q45a)
Inhoud
De volgende materie wordt behandeld:
- een logische programmeertaal, bv. Prolog
- basisconcepten: predicaten, unificatie, backtracking, selectiestrategie, specificatie met behulp van Hornclauses, procedurale en declaratieve lezing van logisch programma's, multidirectionaliteit
- Prolog: zuivere Prolog, negatie, (recursieve) datastructuren, ingebouwde predicaten, metapredicaten
- programmeertechnieken: data (feiten, termen), accumulatoren, memoizatie, door falen aangedreven iteratie, zoekproblemen in eindige toestandsruimten, metavertolkers, datastructuren met variabelen
- een functionele programmeertaal, bv. Haskell
- basisconcepten: functie, reductiestrategieën, call-by-need, lui/ strikt
- Haskell: algebraische datatypes, hogere-ordefuncties, mono- en polymorfe types, type classes, currying
- programmeertechnieken: structurele recursie, oneindige processen, list comprehension, pure functies en monadische input/output
- type-inferentie
- inzicht in de geschiedenis van, het onderzoek rond, en het landschap van declaratieve talen
- uitvoeringsmechanismen voor declaratieve talen en ontwikkelingen daaromtrent
Studiemateriaal
Handboek: Soar with Haskell, T. Schrijvers, Packt Publishing, 978-1805128458.
Eigen cursusmateriaal.
Toelichting werkvorm
Flipped classroom.
3 sp. Declaratieve talen: oefeningen & practica (B-KUL-G0Q46a)
Inhoud
De oefeningen worden afgestemd op het programmeren in de aangeleerde declaratieve talen.
Toelichting werkvorm
Een tiental oefenzittingen waarin de studenten onder begeleiding van een assistent de aangeleerde stof verder verwerken door zelf programma's te schrijven in de aangeleerde talen. De oefeningen worden gemaakt op computer.
Evaluatieactiviteiten
Evaluatie: Declaratieve talen (B-KUL-G2Q45b)
Toelichting
Het examen is open boek en wordt op computer gemaakt.
Indien de evaluatie aantoont dat de student één of meerdere doelstellingen van het opleidingsonderdeel onvoldoende heeft bereikt, kan het globale resultaat afwijken van het gewogen gemiddelde van de onderdelen.