navigation

Laatste aanpassingen voor academiejaar 2020 - 2021.

Cursus notities

De hoorcolleges en labo’s lopen door elkaar. De theorie die aangeraakt wordt in de slides van de hoorcolleges vindt zijn weg in de tekst van de verschillende labo’s.

Hoorcolleges

Index pagina met videos van opgenomen colleges.

  1. Introductie in C/C++: context, ecosysteem
  2. Pointers in C, dynamisch geheugen in C++
  3. Introductie in Object-Georiënteerd denken in C++
  4. Een introductie in GUI ontwerp met Qt, Samenvatting, examen info

Labo noties

  1. Introductie in C
  2. Pointers in C en C++
  3. GBA Programming in C: een introductie
  4. GBA Programming in C: tilesets, een simpel spel
  5. Introductie in C++
  6. C++ Class Inheritance, operators en templates
  7. Software ontwerpen: denken en testen voor coderen
  8. GBA Programming in C++: een abstractielaag
  9. GBA Programming in C++: scrolling backgrounds

Optioneel

  1. GUI ontwerp met C++ in Qt: een introductie
  2. GUI ontwerp met C++ in Qt: een GBA spel porten naar Qt

Extra informatie

Syllabus

Cursusbeschrijving

C is oorspronkelijk ontwikkeld om hardware heel gericht te kunnen aansturen. Later, en zeker met de toevoeging van C++, is C/C++ ook gebruikt voor gewone software. Tegenwoordig wordt die rol eerder overgenomen door Java en .NET en is het belang van C en C++ (terug) verschoven naar de ingebedde systemen.

Vanuit die optiek is het niet meer dan logisch om studenten elektronica/ict vaardigheden in C/C++ te laten verwerven. Vanuit dezelfde verbredende visie doen we dit met Linux als (cross-platform) ontwikkelplatform en met embedded systemen als doelplatform.

C++ wordt aangebracht vanuit de kennis van Java, zoals verworven in eerdere opleidingsonderdelen. Er wordt dan ook geregeld gewezen op de verschillen en gelijkenissen tussen C++ en Java. Een aantal concepten zijn gelijkaardig met (lichtjes) andere syntax, maar er zijn ook fundamenteel andere dingen, zoals pointers, friends, virtuele functies, operator overloading, destructors, STL, … Voor de GUI wordt gewerkt met QT.

In een latere faze van de oefeningen maakt de student kennis met crosscompilatie zodat de oefening kan draaien op een single board “computer” zoals een Gameboy Advance.

  • Imperatief programmeren in C
    • Controlestructuren, functies, arrays
    • Pointers en reference variabelen.
  • Object-Georiënteerd programmeren C++
    • Operatoren, virtuele functie, abstracte klasse, uitzonderingen, sjablonen, containers.
    • De STL bibliotheek
    • C++ 11 lambda’s
  • Het gehele C/C++ Ecosysteem: makefiles, builden, linken.
  • Software ontwerpen met domein modellen.
  • Vergelijking tussen C/C++ en Java.
  • Cross-platform-ontwikkeling voor Single Board Computers.
  • Kennismaking met het Qt framework voor GUI ontwerp in C++.

Vereiste voorkennis

  • Basiskennis van een Object-Geörienteerde programmeertaal als Java of C#
  • Basiskennis van het UNIX systeem, werken met commandline

Doelstellingen

Zie ook Studiegids UHasselt

De context en het overzicht worden aangereikt in het hoorcollege.

Als practicum wordt een grotere probleemstelling als project uitgewerkt. Alle aan te leren aspecten van C++ komen in dit project aan bod. Studenten kunnen facultatief buiten het practicum extra thematische oefeningen oplossen.

Beoordeling en evaluatie

Zowel in de eerste als de tweede examenkans is er een project (thuiswerk) en een schriftelijk examen. De verdeling tussen beide is afhankelijk van de omvang van de taak en wordt meegedeeld wanneer de taak wordt opgegeven.

Overdracht van het punt op de taak naar de tweede examenkans en een volgend academiejaar vanaf 12/20.

Overdracht van het punt op het examen naar de tweede examenkans vanaf 10/20. Er is geen overdracht naar een volgend academiejaar.

Meer leermiddelen

Een interessante vergelijkende cursus met nadruk op computer architectuur: Computer Systems and Architecture aan de Universiteit Mary Washington.

C in-depth
Embedded GBA Programming in C
C++ in-depth
Qt GUI Programming
Build Tools

Kalender

Zie collegeroosters UHasselt.