Ai en programmeren

Hoe begeleiden jullie AI-gebruik bij instaponderwijs programmeren, zonder het leerproces te ondermijnen?

Ik merk dat leerlingen die al voor de komst van generatieve Ai hebben leren programmeren, het redelijk functioneel inzetten, als hulp, om code te verbeteren. Dat doe ik ook!
Nieuwe leerlingen echter grijpen vanaf les 1 direct naar Ai om complete code te laten genereren. Ze kunnen die code vaak niet uitleggen en hebben nauwelijks een mentaal model van wat er gebeurt.

Zijn er al oplossingen? Ik vind het moeilijk leerlingen daarin te begeleiden. Ik heb jarenlang aan leerlingen geleerd om te programmeren en ik ben erg gecharmeerd van de hulp van Ai, maar de havo-leerling, die informatica kiest uit “nood”, krijg ik niet in beweging.

Welkom op het forum!

Geen idee welke regio je werkt, maar wij komen morgen bij elkaar in Tilburg, en als onderstaande nu geen onderwerp is, dan ga ik er graag een demo van maken voor een volgende bijeenkomst en dan laat ik het zien in Eindhoven.

  • Belangrijkste is toch communicatie erover. Een HAVO leerling is zich vaak erg bewust van toekomstperspectief. Ik vertel ze gewoon dat AI startersbanen kost, maar dat als je het kunt inzetten om eigen leerproces te versnellen, en eigen ideëen sneller concreet te maken, dan heb je een voorsprong, en ben jij juist degene die de nieuwe niche ondernemer wordt, waar de VWOer die er aan het eind van een klassieke IT studie mogelijk achterkomt dat er geen werk is. Daar gaat een Havist op aan. Ook de luie die het als moetje kiezen. Ik vind het opvallend dat op HAVO vaak een flink deel helemaal niet wil studeren, maar gewoon wil beginnen met werken. Samenwerking met een leerlijn als Havo-P is hierbij een plus.
  • Maak de prompts onderdeel van beoordelingsmodel, en dan vooral de volgende 2 zaken: laat AI de code stap voor stap uitleggen, en beoordeel door-vraag-vragen als essentieëel voor een goed proces. Wat ik supertof vind aan AI is dat je klassiek copy-paste gedrag van code, gewoon een engels voorbeeld 1 op 1 namaken, kunt veranderen in: maak de code begrijpbaar in het Nederlands. Dat hoef je niet eens te vragen, dat gaat al als je in het Nederlands praat met een chatbot: dus krijgen leerlingen veel meer comments in de eigen taal dan ze bij copy-paste code zouden hebben, en zelfs variabelen kunnen in eigen taal. Maar laat je ze in hun eerste prompt een zin toevoegen als “Geef me code voor --probleem X–, en leg me steeds in blokjes van ongeveer 5 regels uit wat ieder stuk doet”, dan wordt het heel leerzaam. Ook daar kun je in een beoordelingsmodel op aansturen. Heel groot voordeel, ze begrijpen de code beter.
  • Maak AI soort van verplicht door dingen te laten programeren die nog niet als kant en klaar voorbeeld bestaan. Ik heb in de klas een klein mini-museum werkende 8-bit computers, die overigens prima ook allemaal virtueel in de browser draaien, maar als ik ze daar opdrachten op geef die niet bestaan, wordt het een samenspel AI en de leerling, en dat trekt ze uit de luie modus. Ik koppel dit aan keuzedeel K, de computers gaan eerst open, en worden onderzocht zoals in een teardown van iFixit, stuk geschiedenis erbij, en als het weer dicht zit code schrijven op de oude bak. Dus bijvoorbeeld: maak met AI een Mandelbrot op de P2000T in BASIC voor Teletekst-graphics. Dat bestaat niet, dus voor beide lastig. Of maak iets wat al 100 x is gedaan nu, in QuickBASIC uit 1988 op een virtuele Mac IIcx op infinitemac.org. Gegarandeerde uitdaging voor zowel leerling als AI. De fysieke bakken hebben als bijkomend voordeel dat de code handmatig ingetikt moet worden, en ze merken dat als de stroom eraf wordt gehaald alles weg is. Hoe houd je je werk dan netjes opgeslagen! Nuttige lessen helaas.
  • Het helpt als school een AI omgeving heeft waar je conversaties kunt teruglezen en naast elkaar kunt hebben, wij doen dat nu met AI School. Dan heb je meer grip op wat ze doen, en zij kunnen het per les gescheiden houden, een chat over Geschiedenis naast een van Informatica project X en een van project Y. Ook qua AVG aan te bevelen. En ik kan makkelijker een keer meekijken in hun chatgeschiedenis en daarop feedback geven. En ze kunnen zelfs lokaal LAMA en beeldmodellen draaien, worden ze ook nog systeembeheerder van een eigen AI model. Ik laat een groep in H5 nu een model op een Pi draaien waarmee ze nummerplaten van brommers moeten herkennen en moeten vaststellen hoeveel fout gebruik er van het fietspad wordt gemaakt. Dit vinden de brommerfans helemaal gaaf. Nog een voordeel van AI School, is dat je hun prompt-ruimte kunt kaderen: als leerlingen om code vragen, heb jij dat al een script voor kaders meegegeven, zodat ie met ze een heen en weer gesprek in delen gaat doen, en nooit alles in een keer geeft. Al is het ook goed om ze ook te leren zelf regie te nemen over het sturen van een conversatie.

Dag @Eskrid!
Dit is een veelbesproken onderwerp waar denk ik veel docenten, waaronder ikzelf, nog mee worstelen. Ik ben zelf redelijk skeptisch over het gebruik van AI in het programmeeronderwijs, zeker wanneer leerlingen/studenten beginnen met programmeren.
Ik zou vooral focussen op het begrijpen van bestaande code, voordat je begint met leerlingen zelf te laten programmeren. Hier zou je wellicht AI voor kunnen gebruiken, maar ik raad dat ten zeerste af voor echte beginners. Net als bij een natuurlijke taal laat je leerlingen niet gelijk spreken en schrijven, maar ga je eerst eens een aantal woordjes behandelen in een bestaande context. AI heeft naar mijn mening de drang om al gelijk behoorlijk ingewikkelde concepten erbij te pakken, waar de leerling geen bast van gaat snappen.
Ik moet wel toevoegen dat ik een grote AI-scepticus ben. In tegenstelling tot @A58 merk ik juist een afkeer van het hele idee dat we entry-level programmeurs maar kunnen vervangen met AI. We zitten in een lastige tijd als het over AI gaat, maar veel bedrijven merken dat er nog steeds veel mensen met een kritisch denkvermogen nodig zijn om kwalitatieve code te schrijven.
Dit neemt niet weg dat AI niet heel gaaf is om te behandelen! AI (en natuurlijk in het bijzonder de LLMs die leerlingen in veelvoud gebruiken) is een machtig interessant onderwerp die veel toepassingen biedt. Ikzelf ben er geen voorstander voor om het in één klap te behandelen met het programmeren, omdat ik denk dat je leerlingen eerst kritisch moet laten redeneren over code. Echter, het goed prompten en nuttig inzetten van AI voor onderwijstaken (feedback vergaren, opdrachten verzinnen, hulp vragen, etc.) is ontzettend belangrijk om te behandelen.

TL;DR: moedig leerlingen aan om zelf kritisch naar code te kijken, betrek AI er pas bij op een later stadium én maak leerlingen niet bang dat er geen werk is na een IT studie, er is werk zat :wink: Die miljarden regels aan COBOL die veel van onze kritieke infrastructuur overeind houdt, wordt ook met AI niet binnen een dag omgezet naar leesbare code.

Dat is precies het heikele punt! De VWO leerling is nog wel geïnteresseerd, maar de gemiddelde havoleerling ziet “er het nut niet van in…” En hoe geef je opdrachten die niet ook gemakkelijk met bv ChatGPT te ondervangen zijn?