Programmeren in Python: de Arcade-methode (9702) |
| Studiepunten: 4,0 | | Studiebelastingsuren: 108 | Periode: kwartiel 2 (4sp)  |
| Onderwijstaal: Nederlands |
|
|
De student moet vaardig zijn met de computer zoals aangebracht in de module Essentiële computervaardigheden van het opleidingsonderdeel Basic Engineering Skills. Studenten die dat opleidingsonderdeel niet volgen of gevolgd hebben, kunnen dit ook in zelfstudie leren.
De vaardigheden omvatten onder andere het kunnen in- en uitpakken van bestanden met programma's zoals 7-zip of rar (o.a. https://www.7-zip.org voor Windows, http://sourceforge.net/proj ects/p7zip/files/ voor Linux of http://www.kekaosx.com/rar voor Mac.
Daarnaast wordt een basiskennis van Python en pandas verondersteld zoals aangebracht in de module Python als Ingenieurstool van het opleidingsonderdeel Basic Engineering Skills.
|
|
|
|
|
De focus van dit opleidingsonderdeel ligt op het ontwerpen van kwalitatieve software. Dit proces loopt vanaf de initiële probleemanalyse en de indeling in klassen tot de effectieve implementatie in Python. Er is hierbij zowel aandacht voor de juiste software-architectuur als voor computationeel en algoritmisch denken.
Dit wordt aangebracht via de Arcade-methode: een didactische aanpak die focust op snelle visuele feedback en project-gebaseerde evaluatie, en werkt met de Arcade-bibliotheek. Aan de hand van een uitgebreid project waarin studenten een eenvoudig game ontwikkelen, worden ze geprikkeld om hun grenzen te verleggen.
Voor de architectuur vertrekken we van het principe van Model-View-Controller (MVC) met een duidelijke scheiding tussen de logica van het systeem (het model), de grafische weergave (de view) en de interactie en (spel-)besturing (de controller). In de concrete uitwerking leunt dit door het gebruik van de Arcade-bibliotheek eerder dicht aan tegen het Model-View-Presenter (MVP) patroon, maar het volgt rigoureus de filosofie van MVC.
Opgelet: De meeste online voorbeeldprojecten van de Arcade-bibliotheek gebruiken géén MVC-structuur en dienen dus nadrukkelijk niet als referentie voor de doelstellingen van dit opleidingsonderdeel.
Bij het algoritmisch denken moet de student zowel een laag-niveau- als een hoog-niveau-begrip hebben van de code.
-
Hoog-niveau: De student kan de logische stappen, datastructuren en architecturale keuzes uitleggen los van de code.
-
Laag-niveau: De student begrijpt de exacte werking van elke afzonderlijke regel code.
Het is in deze cursus toegestaan om generatieve AI als hulpmiddel te gebruiken, met de strikte beperking dat enkel codeerstructuren gebruikt mogen worden die in de lessen of in het voorgaande vak (PIT) zijn behandeld. Code door AI laten genereren zonder zelf te redeneren ("vibe coding") is niet toegestaan. De student moet alle opgeleverde code te allen tijde zelfstandig kunnen verantwoorden en uitleggen binnen het gekozen ontwerp.
Volgende onderwerpen komen aan bod:
- GIT als tool om aan versiebeheer te doen en vlotte samenwerking binnen teams mogelijk te maken
- Algoritmisch en computationeel denken m.i.v. controlestructuren, zoals for, while, list-comprehension
- Object-geörienteerd modelleren, m.i.v. compositie en erving
- Kritisch omgaan met generatieve AI
- Interactieve, grafische toepassingen met de game loop en de grafische primitieven van Arcade
Voor studenten die meer dan 17/20 willen halen, zijn er facultatieve modules. Voorbeelden zijn state management, data logging met Pandas of exceptions, maar aangezien dit de eerste versie van dit opleidingsonderdeel is, kan dit nog verschuiven afhankelijk van de behoeften.
|
|
| Verplichte cursussen (gedrukt door boekhandel) |
| |
Cursus "Programmeren in Python: de Arcade-methode", verkocht bij XOD. |
|
 
|
| Verplicht studiemateriaal |
| |
Voorbeeldtoepassingen en modeloplossingen worden verspreid via het elektronisch leerplatform. |
|
 
|
| Verplichte software |
| |
- Python officiële versie (NIET die van Windows)
- Arcade-bibliotheek
- Best versie 3.33. Versie 4.0 nog niet.
- Gratis
- Te installeren in de powershell via "pip install arcade"
- Te installeren op eigen laptop en beschikbaar in UHasselt Computerlokalen
- PyCharm Professional
|
|
|
|
|
|
|
|
|
|
Hoorcollege ✔
|
|
|
|
Individueel begeleidingsmoment ✔
|
|
|
|
Werkzittingen ✔
|
|
|
|
|
|
|
|
Casestudy ✔
|
|
|
|
Groepswerk ✔
|
|
|
|
Huiswerktaken ✔
|
|
|
|
Oefeningen ✔
|
|
|
|
Kwartiel 2 (4,00sp)
| Evaluatievorm | |
|
| Schriftelijke evaluatie tijdens onderwijsperiode | 33 % |
|
| Behoud van deelcijfer in academiejaar | Ja, met voorwaarde |
|
| Voorwaarde behoud van deelcijfer in academiejaar | Vanaf 12,0/20 |
|
|
|
|
|
|
|
|
|
| Schriftelijk examen | 67 % |
|
| Behoud van deelcijfer in academiejaar | Ja, met voorwaarde |
|
| Voorwaarde behoud van deelcijfer in academiejaar | Vanaf 10,0/20 |
|
|
|
|
|
|
|
|
|
|
| Gebruik studiemateriaal tijdens evaluatie | ✔ |
|
| Toelichting | Alle extra studiemateriaal op papier is toegelaten, maar op elk papier waarop iets met de hand geschreven is, moet de naam van de student op staan. Handbeschreven papier zonder naam of met de foute naam wordt als examenfraude beschouwd. |
|
|
|
| Evaluatievoorwaarden (deelname en/of slagen) | ✔ |
|
| Voorwaarden |
- De student moet de verplichte huiswerktaak indienen om een numeriek resultaat te krijgen op het gehele opleidingsonderdeel.
- Een student moet zowel op het schriftelijk examen als op de schriftelijke evaluatie (huiswerktaak) tijdens onderwijsperiode een tolereerbaar resultaat (>= 8,0/20) behalen om te kunnen slagen voor het opleidingsonderdeel.
|
|
|
|
| Gevolg |
- Indien de student de verplichte huiswerktaak niet indient, krijgt de student de code N als eindresultaat op gehele opleidingsonderdeel.
- Een student die op het schriftelijk examen of op de schriftelijke evaluatie tijdens de onderwijsperiode (huiswerktaak) een niet-tolereerbaar cijfer (<8,0/20) behaalt en een rekenkundig gewogen gemiddeld behaalt ≥ 9/20, krijgt als eindresultaat in zijn studentendossier een 9/20, ongeacht het rekenkundig gewogen gemiddelde.
|
|
|
|
| Extra info | Voor de evaluatie tijdens de onderwijsperiode is er een verplichte huiswerktaak in Arcade met MVC met vrij onderwerp. Daarnaast kunnen de studenten ook vrijwillig een meer inleidende huiswerktaak maken die onder bepaalde voorwaarden een bonus oplevert voor de verplichte huiswerktaak. Daarnaast is er een systeem om excellentie aan te moedigen zonder dat de lat voor de gemiddelde student hoger wordt gelegd en zonder basis te verwaarlozen. De concrete uitwerking van beide bonussystemen wordt toegelicht in de lessen. Fraude bij de huiswerktaken, zoals het uitwisselen van code van elkaar zonder dat je vermeldt in je broncode, of door het overnemen van code van andere bronnen zonder verwijzing naar die bronnen wordt streng bestraft. |
|
Tweede examenkans
| Evaluatievorm tweede examenkans verschillend van eerste examenkans | |
|
| Toelichting evaluatievorm | De verdeling tussen evaluatie tijdens de lesperiode en tijdens de examenperiode verandert niet. Ook het concept van het examen wijzigt niet, maar voor studenten die de huiswerktaak in Arcade opnieuw moeten maken, telt het punt van de vrijwillige huiswerktaak niet meer mee.
Overdracht van het cijfer van de schriftelijke evaluatie tijdens onderwijsperiode (huiswerktaak) of van het schriftelijk examen naar een volgend academiejaar gebeurt automatisch indien de student minimaal 12 ,0/20 behaalde. De student kan ervoor kiezen om toch de evaluatie te hernemen, maar hij moet dit dan expliciet melden aan coördinerend verantwoordelijke bij de start van de onderwijsperiode. Het is de verantwoordelijkheid van de student om bij de start van het academiejaar navraag te doen naar de behaalde deelpunten in het vorig academiejaar. |
|
|
|
|
Eindcompetenties | EC = eindcompetenties DC = deelcompetenties BC = beoordelingscriteria |
Educatieve master in de wetenschappen en technologie
|
- EC
| 5.1 De educatieve master wetenschappen en technologie is een domeinexpert: de educatieve master kan in eigen professioneel denken en handelen - met een gepaste attitude en met continue aandacht voor de eigen vorming - adequaat communiceren naar alle actoren, effectief samenwerken in een (multidisciplinair) STEM-team, kan hierbij gebruik maken van moderne (digitale) hulpmiddelen en rekening houden met de economische, ethische, maatschappelijke en/of internationale context en is zich hierbij bewust van de impact op de omgeving. | - EC
| 5.2 De educatieve master wetenschappen en technologie is een domeinexpert: de educatieve master heeft een gespecialiseerde kennis van en inzicht in de verworven vakdidactieken en kan deze creatief concipiëren, plannen en uitvoeren in een educatieve context en in het bijzonder als geïntegreerd deel van een methodologisch en projectmatig geordende reeks van handelingen binnen een multidisciplinair STEM project met een belangrijke onderzoeks en/of innovatiecomponent. | - EC
| 5.3 De educatieve master wetenschappen en technologie is een domeinexpert: de educatieve master heeft gevorderde of gespecialiseerde kennis van en inzicht in de principes, opbouw en gebruikte technologieën van diverse industriële processen en technieken relevant voor de specifieke vakdidactieken en kan hierin complexe, multidisciplinaire, niet-vertrouwde, praktijkgerichte ontwerp- of optimalisatieproblemen autonoom herkennen, kritisch analyseren en methodisch en gefundeerd oplossen met oog voor de toepassing, selectie van materialen, automatisatie, veiligheid, milieu en duurzaamheid, bewust van praktische beperkingen en met aandacht voor de actuele technologische ontwikkelingen. |
|
|
|
bachelor in de industriële wetenschappen
|
- EC
| EC1 - De Bachelor in de industriële wetenschappen bezit algemeen wetenschappelijke en technologisch toepassingsgerichte kennis van de basisbegrippen, structuur en samenhang van het specifieke domein. (kennis bezitten) | | | - DC
| 1.3 De student kent basisprincipes en bijhorende syntax van programmeertalen. | | | | - BC
| kent de voorgestelde concepten en de bijhorende syntax in Python en de Arcade bibliotheek. | - EC
| EC2 - De Bachelor in de industriële wetenschappen bezit algemeen wetenschappelijk en ingenieurstechnisch disciplinegebonden inzicht in de basisbegrippen, methodes, denkkaders en onderlinge relaties van het specifieke domein. (begrijpen) | | | - DC
| 2.3 De student heeft inzicht in methodologieën om onderhoudbare software te bouwen. | | | | - BC
|
- kiest de juiste soort variabelen (klasse-, object- en lokale variabelen), afhankelijk van het bereik.
- kan het verschil tussen klassen en objecten verklaren en uitleggen.
- kan uitleggen welke voordelen object-oriëntatie heeft t.o.v. gewoon procedureel programmeren
| - EC
| EC4 - De Bachelor in de industriële wetenschappen kan doelgericht relevante wetenschappelijke en/of technische informatie opzoeken en verzamelen of efficiënt en nauwgezet de benodigde informatie meten en correct refereren. (data verwerven) | | | - DC
| 4.1 De student kan doelgericht wetenschappelijke en/of technische informatie opzoeken. | | | | - BC
| kan de API lezen en toepassen van zowel Arcade als van andere bibliotheken, bijvoorbeeld in de context van de taak. | | | - DC
| 4.3 De student kan correct refereren. | | | | - BC
| verwijst eerlijk en precies naar de originele auteur wanneer hij code van een externe bron gebruikt, of wanneer (generatieve) AI gebruikt wordt | - EC
| EC5 - De Bachelor in de industriële wetenschappen kan niet-vertrouwde, domeinspecifieke problemen analyseren, opsplitsen in deelproblemen, logisch structureren, de randvoorwaarden bepalen en de gegevens op een wetenschappelijke manier interpreteren. (analyseren) | | | - DC
| EA-INF 5.1 De student kan voor een specifieke probleemstelling of toepassing analyseren op welke manieren de software ontworpen en gebouwd kan worden en alternatieven afwegen op basis van relevante criteria. | | | | - BC
| kan de keuzes van het zelfontwikkeld project verklaren | | | - DC
| 5.3 De student kan een gegeven probleemstelling symbolisch/parametrisch correct (her)formuleren. | | | | - BC
| kan de juiste parameters kiezen voor zijn methodes. | | | - DC
| 5.4 De student kan problemen opsplitsen in deelproblemen. | | | | - BC
| deelt het probleem op in klassen en methodes met heel specifieke verantwoordelijkheden. | | | - DC
| 5.7 De student kan bij de analyse van nieuw te bouwen software aanduiden waar welke herbruikbare en beheersbare softwarecomponenten gebruikt moeten worden. | | | | - BC
| zorgt voor een correcte scheiding van de verantwoordelijkheden met behulp van Model-View-Controller of Model-View-Presenter. | | | - DC
| 5.12 De student kan de noden voor een beoogd product analyseren en een eisenpakket opstellen. | | | | - BC
| kan uit een doorlopende tekst afleiden welke functionaliteit de software moet aanbieden. | - EC
| EC6 - De Bachelor in de industriële wetenschappen kan adequate oplossingsmethodes selecteren om niet-vertrouwde, domeinspecifieke problemen op te lossen en kan methodologisch te werk gaan in ontwerp en hierin gefundeerde keuzes maken. (oplossen en ontwerpen) | | | - DC
| 6.7 De student kan een modulair en onderhoudbaar ontwerp van software maken. | | | | - BC
| definieert nauwgezet de verantwoordelijkheden van en de samenwerking tussen de verschillende klassen, objecten en methodes. | - EC
| EC7 - De Bachelor in de industriële wetenschappen kan de geselecteerde methodes en hulpmiddelen innovatief aanwenden om domeinspecifieke oplossingen en ontwerpen planmatig te implementeren met aandacht voor de praktische en economische randvoorwaarden en bedrijfsgebonden implicaties. (implementeren en operationaliseren) | | | - DC
| 7.2 De student kan technische hulpmiddelen zoals rekentoestellen, meettoestellen en software gebruiken. | | | | - BC
|
- gebruikt de hulpmiddelen die de IDE aanbiedt om op een efficiënte manier code te schrijven en bij te werken.
- gebruikt GIT als tool voor versiebeheer en samenwerking
- is kritisch over de opgeleverde resultaten indien generatieve AI (zoals chatGTP of copilot) gebruikt wordt om code te genereren en zorgt er voor dat alleen code gebruikt wordt die volledig begrepen wordt.
| - EC
| EC8 - De Bachelor in de industriële wetenschappen kan (onvolledige) resultaten interpreteren, kan omgaan met onzekerheden en beperkingen en kan kennis en vaardigheden kritisch evalueren om op basis hiervan eigen denken en handelen bij te sturen. (kritisch reflecteren) | | | - DC
| 8.2 De student kan kritisch reflecteren met betrekking tot een technisch-wetenschappelijk project. | | | | - BC
| kan sterktes en zwaktes in een gegeven ontwerp benoemen en, indien van toepassing, verbeteren. | | | - DC
| 8.3 De student kan door kritische reflectie eigen denken en handelen bijsturen. | | | | - BC
|
- gebruikt genAI om feedback te krijgen en daaruit bij te leren (formatief)
- kan voor zichzelf uitmaken of hij zich beperkt tot de basis van dit opleidingsonderdeel of wil excelleren door ook de gevorderde aspecten te leren
| - EC
| EC10 - De Bachelor in de industriële wetenschappen kan op een constructieve en verantwoordelijke wijze functioneren als lid van een (multidisciplinair) team. (samenwerken) | | | - DC
| 10.3 De student heeft oog voor en draagt bij tot een constructieve sfeer en samenwerking (proces). | | | | - BC
| gebruikt GIT op een manier die laat zien wat de eigen bijdrage is en die openheid creëert voor anderen om op verder te werken. | - EC
| EC12 - De Bachelor in de industriële wetenschappen kan toepassings- en oplossingsgericht, met het vereiste doorzettingsvermogen, professioneel en academisch handelen met oog voor realisme en efficiëntie en geeft blijk van een onderzoekende houding tot levenslang leren. (ingenieursattitude) | | | - DC
| 12.1 De student heeft een open houding om te leren uit ervaring, feedback en fouten. | | | | - BC
| kan bugs wegwerken door foutmeldingen te interpreteren en de debugger te gebruiken. | | | - DC
| 12.3 De student eigent zich een gepaste ingenieursattitude toe (nauwkeurig, efficiënt, veilig, resultaatgericht,...). | | | | - BC
| werkt nauwkeurig en zelfstandig zijn taak uit en zoekt waar nodig extra features van Arcade op op om extra functionaliteit gemakkelijk toe te kunnen voegen. |
|
|
|
|
| Plaats in het onderwijsaanbod | Tolerantie3 |
|
1ste bachelorjaar in de industriële wetenschappen
|
J
|
|
Educatieve master in de wetenschappen en technologie - keuze voor vakdidactiek engineering & technology
|
J
|
|
|
1 Onderwijs-, examen- en rechtspositieregeling art. 12.2, lid 2. |
| 2 Onderwijs-, examen- en rechtspositieregeling art. 15.1, lid 3. |
3 Onderwijs-, examen- en rechtspositieregeling art. 16.9, lid 2.
|
|
|