3 ECTS credits
75 u studietijd

Aanbieding 1 met studiegidsnummer 1021129BNR voor alle studenten in het 1e semester met een verdiepend bachelor niveau.

Semester
1e semester
Inschrijving onder examencontract
Niet mogelijk
Beoordelingsvoet
Beoordeling (0 tot 20)
2e zittijd mogelijk
Ja
Inschrijvingsvereisten
Studenten bachelor computerwetenschappen hebben ‘Structuur van computerprogramma's 1’ gevolgd, alvorens ‘Objectgericht programmeren’ op te nemen. Studenten bachelor wiskunde en Data Science hebben ‘Higher-Order Programming’ gevolgd, alvorens ‘Objectgericht programmeren’ op te nemen. Voor studenten in het voorbereidingsprogramma: 'Objectgericht programmeren’ opnemen houdt in dat je gelijktijdig ‘Structuur van computerprogramma's 1’ / Higher-Order Programming' volgt of reeds geslaagd bent voor ‘Structuur van computerprogramma's 1’/ Higher-Order Programming'.
Onderwijstaal
Nederlands
Faculteit
Faculteit Wetenschappen en Bio-ingenieurswetensch.
Verantwoordelijke vakgroep
Computerwetenschappen
Onderwijsteam
Wolfgang De Meuter (titularis)
Onderdelen en contacturen
18 contacturen Hoorcollege
18 contacturen Werkcolleges, practica en oefeningen
Inhoud

Dit opleidingsonderdeel introduceert de concepten van objectgericht programmeren en de basisprincipes achter de manier waarop objectgerichte talen uitgevoerd worden. De programmeertaal Scala (en Scheme) wordt gebruikt om deze concepten te concretiseren. De volgende onderwerpen komen aan bod:

-       Objectgerichte talen: definitie, late binding, geschiedenis, taxonomie, types.

-       Basiswaarden in Scala, controlestructuren, de type hiërarchie, hogere-orde programmeren in Scala, partiële applicaties, scoping regels en staartrecursie.

-       Objecten, berichten, klassen, overerving, overloading, companion objecten, universeel polymorfisme, gebonden polymorfisme, functies als objecten

-        Eenvoudige klassehiërarchieën: Liskov substitutie, abstracte klassen, semantiek van this en super, inheritance vs. overloading.

-       Complexe klassehiërarchieën: multiple inheritance, traits, het mixin-linearisatie-algoritme

-       Geavanceerd multi-paradigmatisch programmeren: pattern matching, het expression problem, case classes

-       Types en type systemen: variantie, covariantie, contravariatie, variantie bij hogere orde methods.

-       Contextuele Abstracties: exceptions, givens, extension methods

-       Basisprincipes achter OOP: Method-selectie, v-tables en garbage collection.

Studiemateriaal
Digitaal cursusmateriaal (Vereist) : Programming in Scala, Martin Odersky, Artima
Bijkomende info

Het materiaal dat tijdens de hoorcolleges gebruikt wordt is beschikbaar via het leerplatform. 

 

Leerresultaten

Algemene competenties

Kennis en het inzicht:

- De student kent de belangrijkste OO programmeerconcepten en kan deze uitleggen en illustreren

- De student kan de realisatie van de belangrijkste OO programmeerconcepten in de programmeertaal Scala uitleggen en illustreren

- De student begrijpt hoe deze concepten uitgevoerd worden door een digitale computer.

 

Toepassing van de kennis en het inzicht:

- De student kan met de hierboven vermelde technieken en principes in de praktijk goede programma’s schrijven.

Oordeelvorming:

- De student kan de meest geschikte implementatie voor een welbepaalde toepassing kiezen.

- De student kan de gebruikte keuzes verantwoorden en kritisch beoordelen.

Communicatie:

- De student kan zich duidelijk schriftelijk uitdrukken over de hierboven opgesomde onderwerpen en zelf ontwikkelde programma’s.

Leervaardigheden:

- De student kan vertrekkend van de opgedane basiskennis, andere  object georiënteerde programmeertalen zelfstandig leren, begrijpen en toepassen.

Beoordelingsinformatie

De beoordeling bestaat uit volgende opdrachtcategorieën:
Examen Schriftelijk bepaalt 60% van het eindcijfer

ZELF Praktijkopdracht bepaalt 40% van het eindcijfer

Binnen de categorie Examen Schriftelijk dient men volgende opdrachten af te werken:

  • Examen met een wegingsfactor 60 en aldus 60% van het totale eindcijfer.

Binnen de categorie ZELF Praktijkopdracht dient men volgende opdrachten af te werken:

  • Project met een wegingsfactor 40 en aldus 40% van het totale eindcijfer.

Aanvullende info mbt evaluatie

Het eindcijfer wordt bepaald door volgende onderdelen:
(1)    Een programmeeropdracht, inclusief verslag, dient opgeleverd te worden tijdens het semester. Deze opdracht is verplicht en telt voor 40% van het eindcijfer.
(2)    Een schriftelijk examen telt voor 60% van het eindcijfer. Dit examen omvat zowel oefeningen als theoretische vragen.

Er is een examen en een project. De student moet beide onderdelen van het examen afleggen en op elk onderdeel minstens 7/20 halen alvorens als eindcijfer het gewogen gemiddelde wordt toegekend. Indien beide onderdelen worden afgelegd maar op minstens één onderdeel wordt minder dan 7/20 gehaald is het eindcijfer het minimum van beide onderdelen. Er worden geen partiële vrijstellingen gegeven.

Toegestane onvoldoende
Kijk in het aanvullend OER van je faculteit na of een toegestane onvoldoende mogelijk is voor dit opleidingsonderdeel.

Academische context

Deze aanbieding maakt deel uit van de volgende studieplannen:
Bachelor in de computerwetenschappen: Standaard traject
Bachelor in de wiskunde en Data Science: Standaard traject
Bachelor in de artificiële intelligentie: Standaard traject
Educatieve master in de wetenschappen en technologie: biologie (120 ECTS, Etterbeek)
Educatieve master in de wetenschappen en technologie: geografie (120 ECTS, Etterbeek)
Educatieve master in de wetenschappen en technologie: fysica (120 ECTS, Etterbeek)
Educatieve master in de wetenschappen en technologie: wiskunde (120 ECTS, Etterbeek)
Educatieve master in de wetenschappen en technologie: ingenieurswetenschappen (120 ECTS, Etterbeek)
Educatieve master in de economie: standaard traject (90 ECTS, Etterbeek)
Voorbereidingsprogramma Master of Science in de ingenieurswetenschappen: computerwetenschappen: Traject C (Ind Ing, 61 ECTS)
Voorbereidingsprogramma Master of Science in de ingenieurswetenschappen: computerwetenschappen: Traject A (76 ECTS)
Voorbereidingsprogramma Master of Science in de ingenieurswetenschappen: computerwetenschappen: Traject B (65 ECTS)
Voorbereidingsprogramma Master of Science in de toegepaste informatica: Traject C (Ind Ing, 58 ECTS)
Voorbereidingsprogramma Master of Science in de toegepaste informatica: Traject A (58 ECTS)
Voorbereidingsprogramma Master of Science in de toegepaste informatica: Traject B (52 ECTS)