In dit artikel legt Christian Kästner uit hoe hij de aanpak van zijn cursus Machine Learning in Production heeft aangepast vanwege de opkomst van krachtige AI-agents. Omdat traditionele huiswerkopdrachten en schriftelijke reflecties nu eenvoudig door AI kunnen worden opgelost, is de focus verschoven van thuiswerk naar interactie en verificatie.
De belangrijkste wijzigingen zijn:
- Mondelinge verificatie: Schriftelijke reflecties zijn vervangen door persoonlijke gesprekken van 15 minuten met een student-assistent (TA).
- Nieuwe toetsingsvormen: Er is meer nadruk komen te liggen op videodemo's, debriefing-sessies en een verhoogd gewicht van de examens (van 15% naar 25%).
- AI-gestuurd nakijken: De auteur gebruikt 'LLM-as-a-judge' om grote hoeveelheden code en tekst voor te filteren, waarbij TA's alleen de problematische gevallen handmatig controleren.
- Verhoging van complexiteit: Om AI-agents uit te dagen, zijn projecten verplaatst naar veel grotere codebases (zoals Zulip), waardoor actieve menselijke sturing noodzakelijk blijft.
- Educatie over AI-fouten: Studenten worden bewust geconfronteerd met 'zelfverzekerde fouten' van AI om automation bias te herkennen.
Kästner concludeert dat hoewel AI bewezen pedagogische methoden (zoals low-stakes toetsing) ondermijnt, het een kans biedt om studenten te leren hoe ze AI verantwoord en kritisch kunnen inzetten als baseline-tool.
Hoe ik mijn onderwijs aanpaste nadat AI al mijn huiswerkopdrachten kon maken
Rond 2021, ver voor de lancering van ChatGPT, suggereerde Vincent Hellendoorn dat ik GPT-3 zou testen op de leesquizzes van mijn cursus. Het produceerde overtuigende antwoorden die voldeden aan ons beoordelingskader, zonder dat het model de toegewezen tekst daadwerkelijk had gezien. Destijds veranderde ik niets. Vijf jaar later kunnen AI-agents al mijn opdrachten uitvoeren en heb ik de meeste toetsingen in die cursus herontworpen, ook al zijn de leerdoelen nauwelijks veranderd. De strategie is altijd hetzelfde: het testen van begrip gebeurt niet langer via opdrachten die thuis worden uitgevoerd, maar via interacties met een student-assistent (TA), tijdens examens en via videodemo's. Sommige van deze wijzigingen strijden met wetenschappelijk onderbouwde pedagogische praktijken, maar ik heb ze toch doorgevoerd.
De afgelopen jaren heb ik voornamelijk de cursus Machine Learning in Production gegeven, een gevorderde cursus over het bouwen van productie-waardige software rondom ML-modellen met een sterke focus op MLOps, meestal met 100 tot 170 studenten. In gesprekken met andere docenten is een veelvoorkomende vraag hoe we het onderwijs hebben aangepast in het tijdperk van generatieve AI en coding agents. Hieronder zet ik uiteen wat we hebben gedaan.
Hoewel we de behandelde onderwerpen hebben aangepast aan de AI-innovaties en tools, heb ik de algemene leerdoelen nauwelijks gewijzigd. Gelukkig gaat het hier niet om een introductiecursus; de leerdoelen gaan niet over het schrijven van code of het gebruik van specifieke tools, maar over engineering-trade-offs, het voorzien en beperken van risico's en teamwork. Ik geloof dat dit vaardigheden zijn die nog steeds de moeite waard zijn om te verwerven, zelfs als sommige aspecten gesimuleerd of uitbesteed kunnen worden aan een model.
Belangrijk om te vermelden: we geven studenten toestemming om AI in alle settings en in elke vorm te gebruiken, zonder bronvermelding, behalve tijdens schriftelijke en mondelinge examens. We moedigen het gebruik van AI-tools op veel plekken zelfs aan. Ik denk niet dat het handhaven van AI-verboden haalbaar is, en belangrijker is dat studenten sowieso moeten leren hoe ze deze technologieën verantwoord kunnen gebruiken.
AI dwingt mij om bewezen best practices los te laten
AI ondermijnt actief verschillende wetenschappelijk onderbouwde onderwijsmethoden. Onderzoek wijst bijvoorbeeld uit dat frequente 'low-stakes' toetsingen met feedback (zoals huiswerk en quizzes) effectiever zijn dan een paar 'high-stakes' toetsingen (zoals examens). AI ondermijnt echter juist die low-stakes omgevingen, waardoor we gedwongen worden terug te keren naar examens.
Ook het 'vangnet' waarbij studenten fouten mogen maken en opdrachten mogen opnieuw indienen om verloren punten terug te winnen, is problematisch geworden. We merkten dat dit proces werd misbruikt: studenten dienden eerst een door AI gegenereerde oplossing in zonder erover na te denken, en keken pas naar de problemen nadat de grading-feedback was gegeven. Als reactie hierop hebben we een boete van 10% ingevoerd op opnieuw indienen.
Over het algemeen is dit een balanceeract. Ik neig ernaar om low-stakes interacties te behouden, ook al kunnen ze worden misbruikt. Sommige studenten zullen de cursus doorlopen zonder diepgaand leren, maar het creëert een betere omgeving voor studenten die wél willen leren. Ik wil niet terug naar het model uit mijn eigen studietijd in Duitsland, waar huiswerk grotendeels optioneel was en één examen aan het einde van het semester voor 100% van het cijfer verantwoordelijk was. Dat werkte voor zelfgemotiveerde studenten, maar leidde tot uitvalpercentages van 50% tot 80%.
Van schriftelijke reflecties naar gesprekken van 15 minuten
Ik heb alle onderdelen van opdrachten opgegeven die een schriftelijk tekstantwoord vereisten. Ik vraag nog steeds om rapporten die een oplossing beschrijven en linken naar de relevante codefragmenten, maar dat dient enkel voor de navigatie door hun oplossing; AI-gegenereerde documenten zijn daarvoor acceptabel.
Daarentegen zijn reflectievragen zoals "Wat waren de uitdagende delen?" of "Hoe zou je het teamwork verbeteren?" zinloos geworden, omdat deze volledig aan een LLM kunnen worden gedelegeerd.
Voor deze reflecties ben ik overgestapt op persoonlijke interacties met een TA:
- Na elke opdracht plant elke student een gesprek van 15 minuten met een TA.
- Tijdens dit gesprek moeten ze een paar vragen live beantwoorden.
- De reflectievragen uit de opdracht dienen nu als voorbeelden van het soort vragen dat gesteld kan worden.
- Deze check-ins zijn onderdeel van de opdracht en leveren 20% van de punten op, beoordeeld als 'geslaagd' of 'niet geslaagd'.
Hoewel dit meer vraagt van studenten met angststoornissen, is professionele communicatie over technisch werk een leerdoel en trainen mondelinge check-ins dit beter dan schriftelijke reflecties. Wat betreft de schaalbaarheid: we werken met een student-TA ratio van 20:1, waardoor de tijdsbesteding per TA werkbaar blijft.
Wat betreft de leesquizzes heb ik het opgegeven. Ik heb besloten geen papieren quizzes in de klas te houden om onnodige stress en stampwerk te voorkomen. Ik wijs nog steeds literatuur toe, maar in een kleinere hoeveelheid en zonder punten. In plaats daarvan probeer ik de lessen uit de teksten te integreren in klasdiscussies.
Coderingstaken: code, video's en persoonlijke kennischecks
Voor de wekelijkse labs (kleine taken om nieuwe tools zoals Kafka, Grafana of Docker te verkennen) vertrouwen we wederom op persoonlijke check-ins. De student moet aan de TA bewijzen dat de taak is voltooid en een paar vragen kunnen beantwoorden.
Voor grotere opdrachten hanteren we de volgende aanpak:
- Mondelinge toelichting: Dezelfde check-ins met een TA als bij de reflecties.
- Debriefings: Bij teamwork houden we na elke mijlpaal langere debriefing-sessies (30-60 minuten per team).
- Bonuspunten: We geven "buiten-de-comfortzone" bonuspunten als de TA elk teamlid kan vragen om willekeurige delen van de implementatie uit te leggen.
- Videodemo's: Studenten maken een korte video waarin ze een door hen geïmplementeerde feature demonstreren. Dit werkt goed omdat de feature daadwerkelijk moet werken in een echte workflow.
Verschuiving van cijfergewicht naar de klas
Er vindt een verschuiving plaats van punten voor activiteiten thuis naar activiteiten in de klas:
- Examens: Het gewicht is verhoogd van 15% naar 25%.
- Debriefings: Deze vormen nu 10% tot 20% van het cijfer voor huiswerk en groepswerk.
Hoewel het merendeel van de punten nog steeds gekoppeld is aan thuiswerk, komt het belangrijkste onderscheid in de uiteindelijke cijfers nu voort uit de examens.
AI-ondersteuning bij het nakijken van niet-begeleid werk
Nu studenten gemakkelijker grote hoeveelheden code en tekst produceren, is handmatig nakijken tedious geworden. We hebben daarom infrastructuur gebouwd om code en rapporten automatisch te beoordelen met institutioneel goedgekeurde LLM's.
De werkwijze is als volgt:
- LLM-as-a-judge: Een LLM krijgt een specifiek rubricum en instructies en beoordeelt delen van de oplossing.
- Markdown-bestanden: Om dit te vergemakkelijken, vraag ik om oplossingen in meerdere markdown-bestanden in plaats van één PDF.
- Review-proces: De autograder markeert een antwoord als "geslaagd" of "behoeft review". TA's besteden hun tijd nu voornamelijk aan de antwoorden die review behoeven.
- Menselijke controle: Er worden nooit punten afgetrokken zonder dat een mens het antwoord heeft gecontroleerd.
Daarnaast gebruiken we een custom Slack-bot voor feedback tijdens klasdiscussies. Studenten posten hun antwoorden in een Slack-kanaal, waarna de bot via een LLM-as-a-judge check constructieve feedback geeft. Dit moedigt studenten aan om hun antwoorden te herzien voordat de discussie in de klas begint.
Vergroting van de opdrachten
Omdat studenten minder tijd besteden aan het handmatig lezen van code en het leren van libraries, kunnen we de omvang van het werk vergroten. We schalen op tot het punt waar AI-agents de taak niet meer zonder intensieve menselijke begeleiding kunnen oplossen.
Voorbeeld: De overstap naar Zulip Voorheen moesten studenten een Instagram-clone uitbreiden met AI-features. Dit was een relatief kleine codebase (12k LOC) en werd in 2025 triviaal voor tools als Claude Code, die de volledige opdracht zonder interactie kon oplossen.
We hebben dit vervangen door een soortgelijke taak in Zulip, een productie-waardige chat-applicatie met een enorme codebase (> 500k LOC). Hoewel coding agents hiermee kunnen werken, vereist het nu actieve interactie van de student om de taak correct op te lossen. De vereiste features zijn groter en vereisen meer backend- en frontend-wijzigingen.
We gaan er vanuit dat studenten competent zijn in het gebruik van AI-coding agents. Dit is de nieuwe baseline. Wat betreft de kosten van commerciële abonnementen: ik vergelijk deze met de kosten van studieboeken. Een abonnement van $20 per maand is vaak goedkoper dan een modern studieboek van $100.
Leren van de "zelfverzekerde fouten" van AI
Ik streef ernaar studenten te laten ervaren dat AI-agents dingen met grote zelfvertrouwen fout kunnen doen. Dit helpt hen om automation bias te herkennen en hun vertrouwen in de tools te kalibreren.
Enkele voorbeelden waarbij dit per ongeluk gebeurde:
- Theoretische concepten: ChatGPT gaf consequent een fout antwoord over waar hardware past in het onderscheid tussen the World vs the Machine van Jackson, zelfs wanneer het volledige paper werd meegegeven. 80% van de studenten maakte deze fout.
- Beveiliging: Claude Code stelde een "two-phase confirmation protocol" voor bij een securityprobleem dat in feite volledig onveilig was. Ook hier trapte 80% van de studenten (en zelfs veel TA's) in de val.
Het bespreken van dergelijke fouten is een waardevolle kans om te praten over menselijk toezicht en de risico's van automatisering.
Conclusie
Ik heb geen hard bewijs dat studenten meer of minder leren, maar ze accepteren de nieuwe formats goed. Velen waarderen de flexibiliteit, de persoonlijke interacties en de feedback van TA's die hen dwingt hun oplossingen echt te begrijpen.
De snelheid waarmee ik wijzigingen moet doorvoeren neemt toe. Strategieën die vandaag werken, kunnen door de volgende generatie modellen morgen verouderd zijn. In 2021 kon ik toekijken hoe GPT-3 mijn quizzes beantwoordde en besluiten niets te doen. In 2026 is dat niet langer mogelijk.
Hoe ik mijn onderwijs aanpaste nadat AI al mijn huiswerkopdrachten kon maken
Rond 2021, ver voor de lancering van ChatGPT, suggereerde Vincent Hellendoorn dat ik GPT-3 zou testen op de leesquizzes van mijn cursus. Het produceerde overtuigende antwoorden die voldeden aan ons beoordelingskader, zonder dat het model de toegewezen tekst daadwerkelijk had gezien. Destijds veranderde ik niets. Vijf jaar later kunnen AI-agents al mijn opdrachten uitvoeren en heb ik de meeste toetsingen in die cursus herontworpen, ook al zijn de leerdoelen nauwelijks veranderd. De strategie is altijd hetzelfde: het testen van begrip gebeurt niet langer via opdrachten die thuis worden uitgevoerd, maar via interacties met een student-assistent (TA), tijdens examens en via videodemo's. Sommige van deze wijzigingen strijden met wetenschappelijk onderbouwde pedagogische praktijken, maar ik heb ze toch doorgevoerd.
De afgelopen jaren heb ik voornamelijk de cursus Machine Learning in Production gegeven, een gevorderde cursus over het bouwen van productie-waardige software rondom ML-modellen met een sterke focus op MLOps, meestal met 100 tot 170 studenten. In gesprekken met andere docenten is een veelvoorkomende vraag hoe we het onderwijs hebben aangepast in het tijdperk van generatieve AI en coding agents. Hieronder zet ik uiteen wat we hebben gedaan.
Hoewel we de behandelde onderwerpen hebben aangepast aan de AI-innovaties en tools, heb ik de algemene leerdoelen nauwelijks gewijzigd. Gelukkig gaat het hier niet om een introductiecursus; de leerdoelen gaan niet over het schrijven van code of het gebruik van specifieke tools, maar over engineering-trade-offs, het voorzien en beperken van risico's en teamwork. Ik geloof dat dit vaardigheden zijn die nog steeds de moeite waard zijn om te verwerven, zelfs als sommige aspecten gesimuleerd of uitbesteed kunnen worden aan een model.
Belangrijk om te vermelden: we geven studenten toestemming om AI in alle settings en in elke vorm te gebruiken, zonder bronvermelding, behalve tijdens schriftelijke en mondelinge examens. We moedigen het gebruik van AI-tools op veel plekken zelfs aan. Ik denk niet dat het handhaven van AI-verboden haalbaar is, en belangrijker is dat studenten sowieso moeten leren hoe ze deze technologieën verantwoord kunnen gebruiken.
AI dwingt mij om bewezen best practices los te laten
AI ondermijnt actief verschillende wetenschappelijk onderbouwde onderwijsmethoden. Onderzoek wijst bijvoorbeeld uit dat frequente 'low-stakes' toetsingen met feedback (zoals huiswerk en quizzes) effectiever zijn dan een paar 'high-stakes' toetsingen (zoals examens). AI ondermijnt echter juist die low-stakes omgevingen, waardoor we gedwongen worden terug te keren naar examens.
Ook het 'vangnet' waarbij studenten fouten mogen maken en opdrachten mogen opnieuw indienen om verloren punten terug te winnen, is problematisch geworden. We merkten dat dit proces werd misbruikt: studenten dienden eerst een door AI gegenereerde oplossing in zonder erover na te denken, en keken pas naar de problemen nadat de grading-feedback was gegeven. Als reactie hierop hebben we een boete van 10% ingevoerd op opnieuw indienen.
Over het algemeen is dit een balanceeract. Ik neig ernaar om low-stakes interacties te behouden, ook al kunnen ze worden misbruikt. Sommige studenten zullen de cursus doorlopen zonder diepgaand leren, maar het creëert een betere omgeving voor studenten die wél willen leren. Ik wil niet terug naar het model uit mijn eigen studietijd in Duitsland, waar huiswerk grotendeels optioneel was en één examen aan het einde van het semester voor 100% van het cijfer verantwoordelijk was. Dat werkte voor zelfgemotiveerde studenten, maar leidde tot uitvalpercentages van 50% tot 80%.
Van schriftelijke reflecties naar gesprekken van 15 minuten
Ik heb alle onderdelen van opdrachten opgegeven die een schriftelijk tekstantwoord vereisten. Ik vraag nog steeds om rapporten die een oplossing beschrijven en linken naar de relevante codefragmenten, maar dat dient enkel voor de navigatie door hun oplossing; AI-gegenereerde documenten zijn daarvoor acceptabel.
Daarentegen zijn reflectievragen zoals "Wat waren de uitdagende delen?" of "Hoe zou je het teamwork verbeteren?" zinloos geworden, omdat deze volledig aan een LLM kunnen worden gedelegeerd.
Voor deze reflecties ben ik overgestapt op persoonlijke interacties met een TA:
- Na elke opdracht plant elke student een gesprek van 15 minuten met een TA.
- Tijdens dit gesprek moeten ze een paar vragen live beantwoorden.
- De reflectievragen uit de opdracht dienen nu als voorbeelden van het soort vragen dat gesteld kan worden.
- Deze check-ins zijn onderdeel van de opdracht en leveren 20% van de punten op, beoordeeld als 'geslaagd' of 'niet geslaagd'.
Hoewel dit meer vraagt van studenten met angststoornissen, is professionele communicatie over technisch werk een leerdoel en trainen mondelinge check-ins dit beter dan schriftelijke reflecties. Wat betreft de schaalbaarheid: we werken met een student-TA ratio van 20:1, waardoor de tijdsbesteding per TA werkbaar blijft.
Wat betreft de leesquizzes heb ik het opgegeven. Ik heb besloten geen papieren quizzes in de klas te houden om onnodige stress en stampwerk te voorkomen. Ik wijs nog steeds literatuur toe, maar in een kleinere hoeveelheid en zonder punten. In plaats daarvan probeer ik de lessen uit de teksten te integreren in klasdiscussies.
Coderingstaken: code, video's en persoonlijke kennischecks
Voor de wekelijkse labs (kleine taken om nieuwe tools zoals Kafka, Grafana of Docker te verkennen) vertrouwen we wederom op persoonlijke check-ins. De student moet aan de TA bewijzen dat de taak is voltooid en een paar vragen kunnen beantwoorden.
Voor grotere opdrachten hanteren we de volgende aanpak:
- Mondelinge toelichting: Dezelfde check-ins met een TA als bij de reflecties.
- Debriefings: Bij teamwork houden we na elke mijlpaal langere debriefing-sessies (30-60 minuten per team).
- Bonuspunten: We geven "buiten-de-comfortzone" bonuspunten als de TA elk teamlid kan vragen om willekeurige delen van de implementatie uit te leggen.
- Videodemo's: Studenten maken een korte video waarin ze een door hen geïmplementeerde feature demonstreren. Dit werkt goed omdat de feature daadwerkelijk moet werken in een echte workflow.
Verschuiving van cijfergewicht naar de klas
Er vindt een verschuiving plaats van punten voor activiteiten thuis naar activiteiten in de klas:
- Examens: Het gewicht is verhoogd van 15% naar 25%.
- Debriefings: Deze vormen nu 10% tot 20% van het cijfer voor huiswerk en groepswerk.
Hoewel het merendeel van de punten nog steeds gekoppeld is aan thuiswerk, komt het belangrijkste onderscheid in de uiteindelijke cijfers nu voort uit de examens.
AI-ondersteuning bij het nakijken van niet-begeleid werk
Nu studenten gemakkelijker grote hoeveelheden code en tekst produceren, is handmatig nakijken tedious geworden. We hebben daarom infrastructuur gebouwd om code en rapporten automatisch te beoordelen met institutioneel goedgekeurde LLM's.
De werkwijze is als volgt:
- LLM-as-a-judge: Een LLM krijgt een specifiek rubricum en instructies en beoordeelt delen van de oplossing.
- Markdown-bestanden: Om dit te vergemakkelijken, vraag ik om oplossingen in meerdere markdown-bestanden in plaats van één PDF.
- Review-proces: De autograder markeert een antwoord als "geslaagd" of "behoeft review". TA's besteden hun tijd nu voornamelijk aan de antwoorden die review behoeven.
- Menselijke controle: Er worden nooit punten afgetrokken zonder dat een mens het antwoord heeft gecontroleerd.
Daarnaast gebruiken we een custom Slack-bot voor feedback tijdens klasdiscussies. Studenten posten hun antwoorden in een Slack-kanaal, waarna de bot via een LLM-as-a-judge check constructieve feedback geeft. Dit moedigt studenten aan om hun antwoorden te herzien voordat de discussie in de klas begint.
Vergroting van de opdrachten
Omdat studenten minder tijd besteden aan het handmatig lezen van code en het leren van libraries, kunnen we de omvang van het werk vergroten. We schalen op tot het punt waar AI-agents de taak niet meer zonder intensieve menselijke begeleiding kunnen oplossen.
Voorbeeld: De overstap naar Zulip Voorheen moesten studenten een Instagram-clone uitbreiden met AI-features. Dit was een relatief kleine codebase (12k LOC) en werd in 2025 triviaal voor tools als Claude Code, die de volledige opdracht zonder interactie kon oplossen.
We hebben dit vervangen door een soortgelijke taak in Zulip, een productie-waardige chat-applicatie met een enorme codebase (> 500k LOC). Hoewel coding agents hiermee kunnen werken, vereist het nu actieve interactie van de student om de taak correct op te lossen. De vereiste features zijn groter en vereisen meer backend- en frontend-wijzigingen.
We gaan er vanuit dat studenten competent zijn in het gebruik van AI-coding agents. Dit is de nieuwe baseline. Wat betreft de kosten van commerciële abonnementen: ik vergelijk deze met de kosten van studieboeken. Een abonnement van $20 per maand is vaak goedkoper dan een modern studieboek van $100.
Leren van de "zelfverzekerde fouten" van AI
Ik streef ernaar studenten te laten ervaren dat AI-agents dingen met grote zelfvertrouwen fout kunnen doen. Dit helpt hen om automation bias te herkennen en hun vertrouwen in de tools te kalibreren.
Enkele voorbeelden waarbij dit per ongeluk gebeurde:
- Theoretische concepten: ChatGPT gaf consequent een fout antwoord over waar hardware past in het onderscheid tussen the World vs the Machine van Jackson, zelfs wanneer het volledige paper werd meegegeven. 80% van de studenten maakte deze fout.
- Beveiliging: Claude Code stelde een "two-phase confirmation protocol" voor bij een securityprobleem dat in feite volledig onveilig was. Ook hier trapte 80% van de studenten (en zelfs veel TA's) in de val.
Het bespreken van dergelijke fouten is een waardevolle kans om te praten over menselijk toezicht en de risico's van automatisering.
Conclusie
Ik heb geen hard bewijs dat studenten meer of minder leren, maar ze accepteren de nieuwe formats goed. Velen waarderen de flexibiliteit, de persoonlijke interacties en de feedback van TA's die hen dwingt hun oplossingen echt te begrijpen.
De snelheid waarmee ik wijzigingen moet doorvoeren neemt toe. Strategieën die vandaag werken, kunnen door de volgende generatie modellen morgen verouderd zijn. In 2021 kon ik toekijken hoe GPT-3 mijn quizzes beantwoordde en besluiten niets te doen. In 2026 is dat niet langer mogelijk.