Beginselen van programmeren (B-KUL-G0N28A)

6 studiepuntenNederlands51 urenEerste semesterUitgesloten voor examencontract
Holvoet Tom (coördinator) |  Holvoet Tom |  Vanhoef Mathy
Facultaire POC Wetenschappen

Dit opleidingsonderdeel reikt concepten en technieken aan om kleine problemen op te lossen en te implementeren met behulp van een hogere programmeertaal. Het introduceert studenten daarenboven in de paradigma's van het objectgericht programmeren en van het functioneel programmeren, die gehanteerd worden in de ontwikkeling van grotere programma's. De nadruk in de studie ligt op de concepten en technieken zelf, niet zozeer op de programmeertaal.

Leerresultaten:
• Oplossen van algoritmische problemen door functionele decompositie ("verdeel en heers").
• Implementeren van algoritmen op een iteratieve en recursieve manier.
* Inzicht in de werking van gegevenssstructuren zoals lijsten, verzamelingen en mappen.
• Inzicht in diverse algoritmen om gegevens te sorteren.
* Redeneren over de correctheid en de eindigheid van eenvoudige algoritmen.
* Inschatten van de tijdscomplexiteit en van de geheugencomplexiteit van eenvoudige algoritmen.

Geen specifieke voorkennis vereist.


Dit opleidingsonderdeel is een voorwaarde voor het opnemen van volgende opleidingsonderdelen:
H01O9A : Gegevensbanken
G0P36B : Computergesteund probleemoplossen in de natuurkunde
H01P5B : Computerarchitectuur en systeemsoftware

Dit opleidingsonderdeel is identiek aan de volgende opleidingsonderdelen:
H01B6B : Methodiek van de informatica
X0A06A : Beginselen van programmeren
X0A06B : Beginselen van programmeren

Onderwijsleeractiviteiten

3 sp. Beginselen van programmeren: college (B-KUL-G0N28a)

3 studiepuntenNederlandsWerkvorm: College26 urenEerste semester
Facultaire POC Wetenschappen

1. Elementaire programma’s
   • Ontwikkelen van eenvoudige programma’s die zich beperken tot toekenningen, conditionele opdrachten, invoer/uitvoer en oproepen van voorgedefinieerde functies.
   • Inleiding tot de architectuur van computers en de uitvoering van programma’s.
   • Concepten: variabelen, uitdrukkingen (numeriek en tekstueel), toekenning, conditionele opdrachten, invoer/uitvoer, functie-oproepen.
2. Iteratieve programma’s (algoritmiek)
   • Beredeneerde ontwikkeling van iteratieve programma’s volgens de paradigma’s van het gestructureerd programmeren en van functionele decompositie.
   • Correctheidsbewijzen en eindigheidsbewijzen voor eenvoudige algoritmes (o.a. door inductie over de lusinvariant).
   • Inschatten van de complexiteit van eenvoudige algoritmes, met nadruk op de tijdscompleixiteit.
   • Afhandeling van fouten die zich voordoen tijdens de uitvoering.
   • Concepten: iteratieve opdrachten, samengestelde gegevensstructuren (lijsten, mappen, tuppels, verzamelingen, matrices), lusinvariant en lusvariant, uitzonderingen.
3. Recursieve programma’s
   • Recursieve ontwikkeling van algoritmes volgens het paradigma van verdeel-en-heers.
   • Inzicht in de uitvoering van recursieve programma’s.
   • Concepten: definitie van functies, parameterbinding, lokale en gobale scope, documentatie, programmastapel.
4. Inleiding tot het objectgericht programmeren
   • Inleiding tot de structurerende concepten van het objectgericht programmeren.
   • Functies: parameterbinding, terugkeerwaarden, scope, hergebruik van functies, stapsgewijze verfijning
   • Concepten: klassen, objecten, constructoren, overerving.
5. Toepassingen
   • Sorteren en zoeken: inzicht in diverse strategieën voor het sorteren van data (selection sort, bubble sort, insertion sort, counting sort, quick sort, heap sort, merge sort) en voor het opzoeken van data (linear search, binary search).
   • Reële getallen: inzicht in afrondingsfouten die ontstaan bij het rekenen met getallen in vlottende komma-voorstelling.
   • Eenvoudige simulatie- en optimalisatieproblemen.

Alle programma's worden geschreven in de programmeertaal Python

In dit opleidingsonderdeel maakt de student ook kennis met de relevantie en hedendaagse uitdagingen van de informatica.

Handboek; presentatieslides. 

Hoorcolleges in grote groep in auditorium

3 sp. Beginselen van programmeren: oefeningen (B-KUL-G0N78a)

3 studiepuntenNederlandsWerkvorm: Practicum25 urenEerste semester
Facultaire POC Wetenschappen

Opdrachten en oplossingen

Oefensessie - PC-sessie

Interactief oplossen van oefeningen in kleinere groepen onder sterke begeleiding. De opdrachten worden gemaakt op computer.

Evaluatieactiviteiten

Evaluatie: Beginselen van programmeren (B-KUL-G2N28a)

Type : Examen tijdens de examenperiode
Evaluatievorm : Schriftelijk
Leermateriaal : Formularium, Cursusmateriaal


   Deel I: theorie & kleine vraagjes
   Deel II: programmeer-oefeningen

   Deel I: theorie & kleine vraagjes
   Deel II: programmeer-oefeningen