Declaratieve talen (B-KUL-G0Q45B)

6.0 studiepunten Nederlands 52.0 Eerste semesterEerste semester Inleidend Uitgesloten voor examencontract
POC Informatica

De studenten maken grondig kennis maken met declaratieve talen.  Hierbij ligt de nadruk op het praktisch gebruik van een drietal representanten van declaratieve talen.  De studenten verwerven tevens inzichten in de basisprincipes van de uitvoeringsmechanismen van declaratieve talen.

- Logica, in het bijzonder eerste-ordepredicatenlogica.
- Kunnen programmeren.

Presentatiesoftware
Handleiding
Handboek
Toledo

Onderwijsleeractiviteiten

1.0 sp. Declaratieve talen: verdieping (B-KUL-G0K93a)

1.0 studiepunten Nederlands Werkvorm: College 0.0 Eerste semesterEerste semester
POC Informatica

Deze ola hoort samen met de ola van de hoorcolleges.  In dit deel komt de derde declaratieve taal aan bod.
- Studie van een recente puur declaratieve programmeertaal die logische en functionele aspecten integreert, bv. Mercury
- Basisconcepten: modes, instantiaties, types, determinisme, parametrisch polymorphisme, declaratieve input / output, existentiële types
- Exploitatie van eigenschappen van Mercury voor het ontwerp van stabiele en betrouwbare software
- Implicaties voor een meer efficiente uitvoering
- Inzicht in de geschiedenis en de evolutie van declaratieve talen
 

Verdiepend inzicht in declaratieve talen.

3.25 sp. Declaratieve talen (B-KUL-G0Q45a)

3.25 studiepunten Nederlands Werkvorm: College 26.0 Eerste semesterEerste semester
POC Informatica

Er komen een 3-tal representanten van declaratieve programmeertalen aan bod in deze cursus.  De eerste 2 worden beschreven in deze ola en de derde in de verdiepende ola.
1. een logische programmeertaal
- basisconcepten: unificatie, procedurale en declaratieve lezing van een logisch programma, backtracking, selectiestrategie, negatie
- specificatie met behulp van Hornclauses
- Prolog: zuivere Prolog, ingebouwde predicaten, exceptions, modules
- programmeertechnieken: structuren met open einde, door falen aangedreven iteratie, continuaties, metavertolkers, definite clause grammars, cyclische datastructuren, delay, memoizatie
- bespreking van andere LPtalen: logische programma's met constraints zoals bijvoorbeeld beperkingen op eindige domeinen, optimalisatietechnieken in de context van CLP, constraint handling rules, Guarded Horn Clauses, Mercury, ...
 
2. een functionele programmeertaal, b.v. Haskell
- basisconcepten: functie, reductiestrategieën, call-by-need, lui/strikt
- Haskell: hogere-ordefuncties, mono- en polymorfe types, type classes, (un)currying
- programmeertechnieken: oneindige processen, closure, list comprehension, monaden, metavertolkers
- type-inferentie
- andere functionele talen: LISP, Scheme, ML ...
 
3. het schrijven van een uitgebreid programma in die talen
 
4. het plaatsen van de aangeleerde talen t.o.v. andere representanten van hetzelfde paradigma

Tijdens de lessen wordt gewerkt aan de hand van voorbeelden en worden de studenten aangezet om de inhoud van dit vak actief te verwerken onder andere door zelf kleine oefeningen op te lossen.

Als aanvulling op de slides van de cursus kan bijkomend studiemateriaal geraadpleegd worden:
In de campusblibliotheek (didactische cluster van de CBA) kunnen de volgende handboeken geraadpleegd worden: 

  • PROLOG Programming for Artificial Intelligence, Ivan Bratko Addison Wesley, third edition 2001.
  • Programming in Haskell, Graham Hutton, University of Nottingham, Cambridge University Press, January 2007.

Op Toledo worden links gegeven naar de officiele sites van de programmeertalen met inbegrip van links naar online-tutorials.

1.25 sp. Declaratieve talen: oefeningen & practica (B-KUL-G0Q46a)

1.25 studiepunten Nederlands Werkvorm: Practicum 19.5 Eerste semesterEerste semester
POC Informatica

De oefeningen worden afgestemd op het programmeren in de aangeleerde declaratieve talen.

Een tiental oefenzittingen waarin de studenten de aangeleerde stof verder verwerken door zelf programma's te schrijven in de aangeleerde talen.  Ze doen dat in PC-labo's en onder begeiding van een assistent.

0.5 sp. Declaratieve talen: project (B-KUL-G0Q47a)

0.5 studiepunten Nederlands Werkvorm: Opdracht 6.5 Eerste semesterEerste semester
POC Informatica

De practica worden afgestemd op het programmeren in de aangeleerde declaratieve talen.

De student maakt na elke oefenzitting individueel een oefening die hij binnen de 24 uur indient.  Eenmalig wordt de oefening vervangen door een practicum (in te dienen na 2 weken).  Omvang: 12 u voor de oefeningen en 12 u voor het practicum.
Er worden vanaf de tweede week van het semester 10 oefenzittingen gepland.  Bij de opgave van een Prolog practicum kan de opgave normaal gezien uitgedeeld worden in week 5 of 6 (in te dienen na  2 weken). Bij de opgave van een Haskell practicum kan de opgave normaal gezien uitgedeeld worden in week 8 of 9 (in te dienen na  2 weken).

Evaluatieactiviteiten

Evaluatie : Declaratieve talen (B-KUL-G2Q45b)

Modaliteit van de evaluatie : Schriftelijk
Tijdstip : partiële evaluatie met afrondend examen tijdens de examenperiode
Soort evaluatie : Gesloten boek, Oefening met beoordeling

De evaluatie bestaat uit 2 delen:

  • Na elke oefenzitting krijgen de studenten een oefening die ze individueel maken en binnen de 24u indienen.  Eenmalig wordt de oefening vervangen door een practicum.  Dit deel telt mee voor 5  van de 20 punten.
  • Schriftelijk examen van 4 uur tijdens de zittijd: gesloten boek, schrijven van programma's op een PC.  Dit deel telt mee voor 15 van de 20 punten. 

Niet tolereerbare tekorten: het schriftelijk examen tijdens de zittijd.
Voor de tweede zit telt het eerste deel van de evaluatie enkel mee als het voordelig is voor de student.