Python in de Klas

Onze samenleving wordt steeds meer beïnvloed en gestuurd door computersystemen, apps en algoritmes. Talloze problemen, nu en in de toekomst, worden opgelost via die krachtige computers. Ook op school en in de klas voelen we die digitalisering. Maar als jij wil meedenken en -werken aan die digitale toekomst, leer je best computationeel denken! Zelf algoritmes leren ontwerpen en die vertalen naar programmeertalen zoals Python! Maar hoe breng je dat nu in de klas? Daar kan ik jou bij helpen! Meer dan 80 oefeningen, autocorrecties, 20 uitgewerkte lesvideo’s … allemaal samengevat in één overzichtelijke lessenreeks publiceerde ik op het open source platform Dodona (UGent). Free to use via www.pythonindeklas.be!

Bestond dit niet al?

Correct! Of toch ongeveer, want dit lesmateriaal gebruik ik nu twee schooljaren. Doorheen die periode merkte ik welke zaken niet vlot verliepen en waar het product beter kon. Zo geschiedde! Dit bouwt verder op dat lesmateriaal en het materiaal dat ik reeds maakte voor mijn klassen uit de eerste graad. Een overzichtje van die materialen en waar je ze kan vinden op KlasCement:

Waarom Python?

Python is een relatief gebruiksvriendelijke en goed gedocumenteerde programmeertaal. Het is een taal die gebruikt kan worden in combinatie met diverse andere lesmaterialen en -inhouden, zoals een Micro:Bit, MakeCode Arcade van Microsoft, binnen wiskunde, statistiek … maar ook voor het aansturen van AI-modellen! Wanneer je je verdiept in andere lesmaterialen op deze onderwijsblog zoals ‘ontwerpen met AI-modellen’, ‘restauratie van Oudgriekse inscriptie’, taalanalyse … zal je merken dat deze gebruikmaken van, jawel, Python! Op deze manier kies je dus voor een programmeertaal die je kan verwerken in verticale en horizontale leerlijnen. Dus leerstof die opbouwend werkt over verschillende jaren heen (=verticaal) én met mogelijkheden binnen vakoverschrijdende projecten (=horizontaal).

Bijkomend werken we via dit lesmateriaal in de Dodona-omgeving van de UGent. Door deze keuze bereiden we leerlingen voor op de sprong naar het hoger onderwijs waar dit soort lesmateriaal ook op deze wijze wordt aangeboden.

Wat is er nieuw?

Herziene Volgorde Programmeerconcepten

Na twee scholenjaren werken met eigen lesmateriaal en materiaal van uitgeverijen, merkte ik dat de volgorde van de leerstof niet altijd even goed ineen stak. Bepaalde programmeer- en wiskundeconcepten worden duidelijk uitgelegd, met nadien oefeningen. Andere concepten doken plotseling op en had je nodig om de oefening op te lossen. Dit maakte dat het lesgeven met duidelijk afgebakende instructiefase en oefenfase stroever verliep.

In de nieuwe versie van deze lessenreeks verdelen we de oefeningen nog steeds overheen vijf primaire programmeerconcepten, namelijk:

  • sequentie

  • selectie

  • begrensde herhaling

  • voorwaardelijke herhaling

  • grafieken

Binnen die primaire programmeerconcepten geven de namen van de oefeningen en de lesvideo’s duidelijker aan wanneer er nieuwe wiskunde- en programmeerconcepten worden geïntroduceerd. Dit vergroot de duidelijkheid voor zowel leerling als docent.

Geïntegreerde Lesvideo’s

Binnen de cursus vind je oefeningen en ‘leesopdrachten’ terug. Die laatste bevatten de geïntegreerde lesvideo’s. Deze zijn korter in speelduur dan de voorgaande video’s en focussen specifiek op één bepaald concept. Elke video volgt dezelfde opbouw:

  • Uitleg van het concept

  • Voorbeeldoefeningen die we ontleden

  • Schematiseren

  • Schema omzetten in Python-code

  • Oefening maken op Dodona


De video’s zijn ook los te vinden op YouTube en kunnen gebruikt worden door zowel de docent als de leerling. Bijvoorbeeld om een les voor te bereiden, bij leerlingen die wat differentiatie in de tijd nodig hebben (=lees: voorop lopen), in een ‘Flipped Classroom’ aanpak, als remediëring, bij het instuderen …

Geïntegreerde Autocorrectie

Op vraag van collega’s en leerlingen werken de oefeningen nu met een vorm van autocorrectie. Deze zal, indien de structuur van de oefening dat toelaat, het algoritme van de leerling controleren op twee niveau’s:

  • Syntaxis: klopt de code volgens de spelregels van Python?

  • Inhoudelijk: klopt de invoer en uitvoer?

Die laatste feature is volledig nieuw en te vinden bij het meerendeel van de 80+ oefeningen in de lessenreeks. Het stelt ons in staat om de leerling te voorzien van feedback en de leerkracht kan via het dashboard sneller zien of een leerling een inhoudelijk correcte oplossing heeft ingevoerd. Vroeger kon een leerling een algoritme schrijven zoals:

print(‘Ik voer dit lekker in bij elke oefening. Hihi!”)

Dit is syntax-gewijs volledig correct. Hier staat een print-statement en het zal de string naar het scherm schrijven. Maar inhoudelijk slaat dit natuurlijk nergens op. In de vorige versie van deze lessenreeks werd er dus slechts één controle uitgevoerd. Nu zal Dodona opmerken dat die ene string niet past in ons vraagstuk. Eureka!

Evaluatie, Overzicht en Feedback

Door te werken binnen Dodona, in tegenstelling tot bijvoorbeeld de Notebooks die we gebruiken voor de losstaande AI-projecten, bekom je enkele voordelen als docent en student. Deze zijn:

Docent

  • Dodona is een open-source leeromgeving ontworpen door onderzoekers aan de UGent;

  • Het is gratis te gebruiken;

  • Je kan een bestaande lessenreeks (zoals deze) integraal kopiëren en gebruiken in de eigen klassen;

  • Je kan een volledig eigen lessenreeks samenstellen op basis van de oefeningen van tal van andere docenten;

  • Het platform is bereikbaar via de browser (dus geen installatie vereist);

  • De Python-code kan je uitvoeren via de browser en er is dus geen gegoochel nodig met ‘opslaan als’ en ‘run scripts’. Dit werkt drempelverlagend voor de leerlingen;

  • Je krijgt een handig overzicht van de vooruitgang van elke leerling, zowel op vlak van oefeningen als dagen van de week waarop de leerling werkt. Dit soort lesmateriaal krijg je enkel onder de knie (lees: werken aan automatisering) door geregeld te oefenen. Uiterst handig bij concrete feedback aan de leerling en diens ouder(s);

  • Er is mogelijkheid tot plagiaatcontrole;

  • Je kan als docent per oefening geschreven feedback toevoegen.

Student

  • Alle oefeningen staan op één enkele plaats;

  • Je krijgt feedback op vlak van syntax en inhoud;

  • Tussendoor kan de docent via leesopdrachten en video’s theorie aanbrengen;

  • Je hoeft niets te installeren;

  • Je kan aanmelden via Smartschool, Microsoft 365 …

Les- en Leerplandoelen

Lesdoelen

  • Leerlingen kunnen de stappen van het computationeel denken doorlopen en toepassen:

    • decompositie, patroonherkenning, abstraheren, algoritme maken, debuggen

  • Leerlingen kunnen algemene programmeerconcepten toepassen. Concepten zoals:

    • verschillende datatypes (string, integers, float)

    • sequentie

    • selectie

    • begrensde herhaling

    • voorwaardelijke herhaling

  • Leerlingen kunnen specifieke (verdiepende) programmeerconcepten toepassen. Concepten zoals:

    • afronden tot X decimalen

    • importeren van bibliotheken

    • vierkantswortel nemen van Y

    • voorwaarden opstellen met diverse operatoren (<, >, >=, <=, ==, !=, and, or)

    • opstellen van grafieken

    • manipuleren van lijsten

    • manipuleren van strings

  • Leerlingen kunnen wiskundeconcepten toepassen. Concepten zoals:

    • eenvoudige bewerkingen

    • bewerkingen met percentages

    • verheffen tot een macht

    • formules van omtrek en oppervlakte

    • toepassen stelling van Pythagoras

    • vermoeden van Collatz

Leerplannen

Deze lessenreeks werd ontwikkeld met oog op de leerplandoelstellingen en tabellen van het Katholiek Onderwijs Vlaanderen. Gegeven de moderniseringen (meervoud, herhaaldelijk) en de late herziening van de leerplannen, vind je hieronder de doelstellingen zoals geformuleerd in o.a. Wiskunde C 2de graad D-finaliteit II-WisS-d. en Gemeenschappelijk leerplan ICT 2de graad D-, D/A- en A-finaliteit II-GLI-ddaa, waar het leerplan wiskunde expliciet naar verwijst (bouwstenen van digitale systemen. Dit stuk van het lesmateriaal is dus onderheving aan verandering.

LPD 60 De leerlingen ontwerpen algoritmes om problemen digitaal op te lossen.

  • Concepten van computationeel denken: decompositie, patroonherkenning, abstractie, algoritme

  • Controlestructuren: opeenvolging, herhalingsstructuur, keuzestructuur

  • Elementen van programmeertalen: variabelen, datatypes, eenvoudige gegevensstructuren, operatoren, parameters, condities, procedures of functies, ingebouwde functies

  • Debuggen

  • Je voorziet volgens het leerplan hier best 10 lestijden voor. Uit ervaring reserveer ik, zeker voor de verdiepende onderdelen, tijd voor formatieve en summatieve evaluaties, hier 12 lestijden voor.

Eindtermen

De leerlingen ontwerpen algoritmen om problemen digitaal op te lossen.

Conceptuele kennis

  • Concepten van computationeel denken: decompositie, patroonherkenning, abstractie, algoritme

  • Organisatie, modellering, simulatie en digitale representatie van informatie

  • Debuggen: testen en bijsturen

  • Principes van programmeren: sequentie, herhalingsstructuur, keuzestructuur

  • Ingebouwde functies

  • Elementen van programmeertalen: variabelen, datatypes, operatoren, parameters, condities, procedures of functies

Procedurele kennis

  • Toepassen van principes van computationeel denken: decompositie, patroonherkenning, abstractie, algoritme

  • Toepassen van principes van organisatie, modellering, simulatie en digitale representatie van informatie

  • Toepassen van principes om te debuggen

  • Toepassen van principes van programmeren: sequentie, herhalingsstructuur, keuzestructuur

  • Toepassen van controlestructuren en eenvoudige gegevensstructuren bij het formuleren van algoritmen

 

Ik wil dit in mijn klas! Wat moet ik doen?

Wil je hier zelf mee aan de slag in jouw klaslokaal? Super! Jongeren laten kennismaken met computationeel denken, programmeer- en wiskundeconcepten is belangrijk in een steeds meer digitale samenleving. Daar hoort het verkennen van- en verdiepen in Python zeker bij. Ik wil jou daar gerust bij helpen! De oefeningen vind je via onderstaande knop of via www.pythonindeklas.be!

Vorige
Vorige

Op Avontuur met een AI!

Volgende
Volgende

Breng Griekse mythes tot leven met AI!