4 ECTS credits
120 u studietijd

Aanbieding 1 met studiegidsnummer 1024073ANR voor alle studenten in het 2e semester met een inleidend bachelor niveau.

Semester
2e semester
Inschrijving onder examencontract
Niet mogelijk
Beoordelingsvoet
Beoordeling (0 tot 20)
2e zittijd mogelijk
Ja
Onderwijstaal
Nederlands
Faculteit
Faculteit Ingenieurswetenschappen
Verantwoordelijke vakgroep
Elektronica en Informatica
Onderwijsteam
Jan Lemeire (titularis)
Onderdelen en contacturen
20 contacturen Hoorcollege
24 contacturen Werkcolleges, practica en oefeningen
27 contacturen Zelfstudie en externe werkvormen
Inhoud

In deze cursus bespreken we de basis van softwareontwikkeling: algoritmes (Newton, Dijkstra, ...), datastructuren (trees, hashtabellen), object-georiënteerd programmeren (klassen, gebruik, encapsulatie, overerving en abstractie) en bibliotheken. Dit zal gebeuren in de programmeertaal Python. Het doel van dit deel van de cursus is het aanleren van de basiselementen van objectgeoriënteerde programmeertalen. Er wordt verwacht dat de studenten complexere concepten zoals inheritance, polymorphism en encapsulation begrijpen en kunnen toepassen in een beperkte context (schrijven van programma's met beperkte complexiteit, gebruik maken van een API, functionaliteit toevoegen aan een bestaand OO design). Het is niet de bedoeling om de studenten een volledige objectgeoriënteerde ontwerpmethodologie bij te brengen.

We gaan dieper in op de basisalgoritmes gebruikt in machine learning en artificiële intelligentie: zoekalgoritmes van backtracking tot A-star, alsook non-zero sum games (prisoner’s dilemma), supervised versus unsupervised learning, reinforcement learning, classificatie-algoritmes en neurale netwerken. Met ook beschouwingen over de stand van zaken in AI (Turing test, data-driven aanpakken, symbolic reasoning).

Verder bespreken we de technologische, historische en economische aspecten van computertechnologie. Het is de bedoeling om zonder al te zeer in detail te gaan, inzicht te geven in de aspecten die het verschil maken en hebben geleid tot de digitale revolutie. Dit hoort tot de algemene vorming van ingenieur zodat hij de belangrijkste aspecten in het juiste perspectief kan plaatsen. Deze aspecten omvatten transistoren, de soorten geheugens, besturingssystemen, compilers, software versus hardware, chips, internet, AI.

Werkcollege:
Tijdens het Werkcollege worden oefeningen aan de PC uitgewerkt ter ondersteuning van de theorie.

Project:
De studenten verdelen zich in groepjes en werken zelfstandig aan een programmeerproject waarbij ze een opdracht kiezen gerelateerd aan de theorie.

Studiemateriaal
Cursustekst (Vereist) : Softwareontwikkeling en AI-algoritmes, Jan Lemeire
Digitaal cursusmateriaal (Vereist) : Slides, lesopnames
Praktisch cursusmateriaal (Vereist) : Programmeerdocumentatie
Bijkomende info

nvt

Leerresultaten

Algemene leerresultaten

Kennis en inzicht:
* De student kent de basiselementen van een moderne computer en kan ze duiden in het kader van de computer als informatieverwerkend medium.
* De student kan de basiselementen, de combinatietechnieken en de abstractietechnieken uitleggen die in de programmeertalen Java en Python beschikbaar zijn om computerprogramma's te bouwen.
* De student kan de opbouw van de algoritmen en datastructuren die in de cursus werden behandeld schetsen en de toepassing en schaalbaarheid ervan toelichten.
* De student weet dat er een breed scala van bibliotheken bestaan voor algemene en specifieke taken.
* De student ziet het belang van de opgedane programmeerkennis in voor de vakgebieden van de ingenieurswetenschappen (bouwkunde, mechanica, fysica, chemie, ...). Hij weet zijn creativiteit en inventiviteit in te zetten voor het bedenken van nuttige programma’s in het kader van deze ingenieursdisciplines.

Toepassing van kennis en inzicht:
* De student kan een rekenkundig probleem vertalen naar een algoritme.
* De student beheerst een moderne programmeertaal. Hij kan algoritmen van een gemiddelde complexiteit vertalen naar een python of java programma. Hij kan zijn programma debuggen en testen.
* De student kan een programma van een zekere omvang construeren dat voldoet aan de kwaliteitseisen van gestructureerd programmeren.
* De student kan bestaande bibliotheken gebruiken die instaan voor basisfunctionaliteiten.
* De student kan zijn kennis uit de verscheidene ingenieursdisciplines inzetten voor het implementeren van programma’s.

Oordeelvorming:
* De student kan voor een gegeven opdracht oordelen over de bruikbaarheid van een gegeven programmeertechniek, datastructuur of algoritme en de voor- en nadelen van bepaalde keuzes inschatten.

Communicatie:
* De student kan zowel met informatici als niet-informatici reflecteren over programma’s van een gemiddelde complexiteit. Hij kan de werking van algoritmes duidelijk maken alsook de programmatorische keuzes.
* De student kan in een beperkt team samenwerken aan een programma van een zekere omvang.
* De student kan ervoor zorgen dat de broncode van zijn programma begrijpbaar is door het te structureren, van een goede naamgeving te voorzien en niet-triviale aspecten van commentaar te voorzien.

Leervaardigheden:
* De student kan snel een nieuwe programmeertaal aanleren doordat hij de brug kan slaan met de taalelementen aangeleerd in deze cursus.
* De student kan het gebruik van nieuwe bibliotheken aanleren op basis van de beschikbare documentatie.

Beoordelingsinformatie

De beoordeling bestaat uit volgende opdrachtcategorieën:
Examen Mondeling bepaalt 33% van het eindcijfer

Examen Schriftelijk bepaalt 34% van het eindcijfer

Examen Praktijk bepaalt 33% van het eindcijfer

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

  • Mondeling examen met een wegingsfactor 1 en aldus 33% van het totale eindcijfer.

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

  • Schriftelijk examen met een wegingsfactor 1 en aldus 34% van het totale eindcijfer.

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

  • Praktijk examen met een wegingsfactor 1 en aldus 33% van het totale eindcijfer.

Aanvullende info mbt evaluatie

Evaluatie van dit OO bestaat voor uit projectwerk met bijhorende mondelinge verdediging, een praktisch oefeningenexamen en een schriftelijke/mondeling examen over de inhoud van de hoorcolleges.

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 ingenieurswetenschappen: werktuigkunde-elektrotechniek
Bachelor in de ingenieurswetenschappen: bouwkunde
Bachelor in de ingenieurswetenschappen: chemie en materialen
Bachelor in de ingenieurswetenschappen: elektronica en informatietechnologie
Bachelor in de ingenieurswetenschappen: elektronica en informatietechnologie Profiel profiel computerwetenschappen
Bachelor in de ingenieurswetenschappen: Startplan
Bachelor in de ingenieurswetenschappen: biomedische ingenieurstechnieken