Skip to main content.

Wat

Structuur van Computerprogramma's 2 is een cursus op bachelor-niveau die in het eerste semester ingericht wordt. Gelieve de cursusfiches te raadplegen over de corresponderende studiegidsnummers 1002198BNR (faculteit wetenschappen) of 1002196BNR (faculteit ingenieurswetenschappen).

In de hoorcolleges worden bewezen programmeerconcepten en paradigma's in de diepte bestudeerd, zoals geïncorporeerd in de C++ programmeertaal: programmeren met abstract data types, exception handling, expliciet geheugenbeheer, generisch programmeren, en objectgericht programmeren.

In de werkcolleges wordt praktische ervaring opgedaan met het ontwikkelen van software gebruikmakende van de compilers, debuggers, en version control systems die beschikbaar zijn op traditionele Unix-gebaseerde omgevingen.

Wie

Hoorcolleges
De hoorcolleges worden verzorgd door Prof. dr. Coen De Roover.
Werkcolleges
De werkcolleges worden verzorgd door Dries Harnie.
Aarzel niet om ons te contacteren bij problemen.

Wanneer

Hoorcolleges: woensdag 16u00 - 18u00
Lokaal G.6.308
Geen les op 1 oktober (week 3, ICSMe conferentie), noch op 22 oktober (week 6, SPLASH conferentie).
Werkcollege 1: dinsdag 15u00 - 17u00 (voor studenten WE en IR)
Week 2,3, 5-8, 10-14: lokaal E.1.2
Week 4: lokaal E.1.5
Werkcollege 2: vrijdag 10u00 - 12u00 (voor studenten WE)
Week 3, 5, 7-14: lokaal E.1.3
Week 2, 6: lokaal E.1.4

Cursusmateriaal

De inhoud van de cursus komt grotendeels overeen met die van het boek Multi-paradigm programming using C++ door Dirk Vermeir. Dit boek maakt dan ook deel uit van het verplichte studiemateriaal, naast de hieronder vermelde slides. Deze slides zijn van de hand van Dirk De Ridder, gebaseerd op de originelen van Dirk Vermeir.

Basisconcepten
Programma-organisatie; compilatie en linken; adressen, variabelen, types, data-objecten, construeren van data-objecten; namespaces en scopes.
Functionele decompositie
Declaratie en definitie van functies, overloaden van functies.
Gebruikergedefinieerde types
Definitie van types en programmeren met abstracte datastructuren gebruikmakende van het class construct.
Ingebouwde typeconstructoren
Constante types, reference types, pointers en arrays; expliciet geheugenbeheer, encapsulatie van pointers in gebruikergedefinieerde types, intelligente pointers.
Gebruikergedefinieerde typeconstructoren
Templates voor functies en klassen; automatische afleiding van template-argumenten, overloaden en specializeren van templates.
Generisch programmeren
Basisconcepten en diens toepassing in de Standard Template Library van C++.
Objectgericht programmeren
Enkelvoudige, meervoudige en virtuele overerving; polymorphisme en late binding; type-hiërarchiën en het run-time inspecteren en converteren van types.
Optioneel
Afwegen van alternatieve implementaties, nieuwigheden in C++11.

Examinering

Het eindcijfer wordt als volgt bepaald:

Programmeertaken (20%)
Taak 1 (5%), taak 2 (5%), taak 3 (10%).
Deze taken moeten, verspreid over het semester, ingediend worden. Elk van deze taken bouwt verder op de vorige. Samen vormen zij de basis voor het programmeerproject. Zie de website van de werkcolleges voor de eigenlijke opdrachten en deadlines voor het indienden.
Programmeerproject (40%)
Het uiteindelijke programmeerproject zal mondeling verdedigd moeten worden. Op deze verdediging zullen vragen gesteld worden over de kwaliteit van het ontwerp (bv. leent het ontwerp zich tot het toevoegen van extra functionaliteit) en de implementatie (bv. welke alternatieve programmeerconcepten uit de hoorcolleges waren van toepassing) van het ingediende project. Zie de website van de werkcolleges voor de eigenlijke opdracht en deadline voor het indienen.
Schriftelijk examen (40%)
Het schriftelijk examen toetst de kennis van de student over de tijdens de hoorcolleges aangereikte programmeerconcepten (bv. bespreek en illustreer een concept aan de hand van een voorbeeldprogramma, voorspel de uitvoer van een gegeven programma, implementeer een klasse die aan de gegeven vereisten voldoet). Ter illustratie wordt een voorbeeldexamen [PDF] ter beschikking gesteld.

Aanvullend materiaal

Boeken
De vrij verkrijgbare hoofdstukken 2 (A Tour of C++) en 3 (A Tour of the Standard Library) uit Bjarne Stroustrup's "The C++ programming language (3rd edition)" worden ten zeerste aangeraden.
Referentiewebsites
Technische tutorials voor werkcolleges