Automated Knowledge Component Generation for Interpretable Knowledge Tracing in Coding Problems
Dit artikel introduceert KCGen-KT, een geautomatiseerde, op LLM's gebaseerde pipeline die kenniscomponenten genereert en labelt voor open-ended programmeeropgaven, en waarneemt door middel van uitgebreide evaluatie dat deze door AI gegenereerde componenten traditionele, door mensen geschreven componenten overtreffen in het voorspellen van studentenprestaties en het modelleren van leercurves.
Oorspronkelijk artikel gelicentieerd onder CC BY 4.0 (http://creativecommons.org/licenses/by/4.0/). Dit is een AI-gegenereerde uitleg van het onderstaande artikel. Het is niet geschreven of goedgekeurd door de auteurs. Raadpleeg het oorspronkelijke artikel voor technische nauwkeurigheid. Lees de volledige disclaimer
Stel je voor dat je een leraar bent die probeert precies uit te vinden waar een student tegenaan loopt in een programmeercursus. In de oude tijden moest je handmatig een lijst met specifieke vaardigheden opschrijven (zoals "weten hoe je een lus gebruikt" of "begrijpen hoe je getallen optelt") en vervolgens elk individueel huiswerkprobleem doorlopen om te markeren welke vaardigheden het testte. Dit is als een bibliothecaris die handmatig een kaartcatalogus schrijft voor elk boek in een enorme bibliotheek; het duurt eeuwen, is vatbaar voor menselijke fouten en is ontzettend saai.
Dit artikel introduceert een nieuwe, geautomatiseerde manier om dit te doen met behulp van Kunstmatige Intelligentie (specifiek, Large Language Models of LLM's), maar met een draai: het werkt voor open-ended programmeeropgaven, waarbij studenten hun eigen code van scratch schrijven, in plaats van gewoon antwoorden te kiezen uit een meerkeuzelijst.
Hier is een uiteenzetting van wat ze deden, met gebruikmaking van eenvoudige analogieën:
1. Het Probleem: De "Open-Ended" Chaos
Bij meerkeuzevragen is er slechts één goed antwoord, dus is het makkelijk om te raden welke vaardigheid getest werd. Maar bij programmeren kunnen studenten hetzelfde probleem op tien verschillende manieren oplossen. De ene student gebruikt misschien een "for-lus", terwijl de ander "reguliere expressies" gebruikt. Beide krijgen het juiste antwoord, maar ze gebruikten verschillende vaardigheden.
- De Analogie: Stel je voor dat je mensen vraagt een vogelhuisje te bouwen. Als je ze een meerkeuzetoets geeft, weet je precies wat ze hebben geleerd. Maar als je ze vraagt het te bouwen, gebruikt de ene persoon misschien een hamer en spijkers, terwijl de ander lijm en hout gebruikt. Uitzoeken welke vaardigheden elke persoon precies heeft gebruikt, alleen door naar het afgewerkte vogelhuisje te kijken, is erg moeilijk.
2. De Oplossing: De AI "Vaardigheidsdetective"
De auteurs bouwden een geautomatiseerde drie-stappen-pijplijn om te fungeren als een "Vaardigheidsdetective":
- Stap 1: Het Onderzoek (Generatie): Ze voeden de AI met een programmeeropgave en een hoop verschillende studentoplossingen (zowel correcte als incorrecte). De AI fungeert als een detective, leest de code en zegt: "Ah, om dit op te lossen, moest je weten hoe je een 'If-statement' gebruikt en hoe je 'Wiskunde met absolute waarden' doet." Het maakt een lijst van deze vaardigheden (zogenaamde Knowledge Components, of KC's).
- Stap 2: De Sorteerhoed (Clustering): De AI kan 100 licht verschillende namen genereren voor dezelfde vaardigheid (bijvoorbeeld "If-Else", "Conditionele Logica", "Besluitvorming"). Het systeem groepeert deze vergelijkbare ideeën samen, net als het sorteren van een hoop gemengde sokken in paren.
- Stap 3: De Etiketteerder (Samenvatting): Ten slotte kijkt de AI naar elke groep vergelijkbare vaardigheden en geeft ze één duidelijke, voor mensen leesbare naam (zoals "Conditionele Logica"). Het labelt vervolgens elk probleem met deze nieuwe, schone labels.
3. Het Resultaat: Een Slimmere Tutor (KCGen-KT)
Zodra de AI deze vaardigheidslabels heeft, bouwden ze een nieuw "Knowledge Tracing"-systeem (een manier om studentleerproces in de tijd te volgen) genaamd KCGen-KT.
- Hoe het werkt: In plaats van alleen maar te raden of een student de volgende vraag goed of fout zal krijgen, kijkt dit systeem naar de geschiedenis van de student met specifieke vaardigheden. Het vraagt zich af: "Struikelt deze student over 'Lussen' maar is hij/zij uitmuntend in 'Variabelen'?"
- De Magie: Het systeem vertaalt het vaardigheidsniveau van de student naar een "soft token" (een digitaal signaal) dat de AI kan lezen. Dit stelt de AI in staat om niet alleen te voorspellen of de student zal falen, maar ook hoe het volgende stukje code van de student eruit zal zien.
4. Het Bewijs: Werkte het?
De onderzoekers testten dit op twee real-world datasets met duizenden studentcode-indieningen (één in Java, één in Python).
- Beter dan Mensen: Verrassend genoeg hielpen de door de AI gegenereerde vaardigheidslabels studentprestaties beter voorspellen dan de labels die door menselijke experts waren geschreven.
- Beter dan Oude AI: Het nieuwe systeem sloeg eerdere state-of-the-art AI-modellen die deze specifieke vaardigheidslabels niet gebruikten.
- De "Leercurve"-Check: Ze controleerden of het systeem de "Wet van Oefening" volgde (het idee dat mensen beter worden naarmate ze meer oefenen). De door de AI gegenereerde vaardigheden toonden een duidelijk patroon: naarmate studenten een specifieke vaardigheid meer oefenden, daalde hun foutpercentage. Dit bewees dat de AI echte, betekenisvolle vaardigheden identificeerde.
- Menselijke Goedkeuring: Toen ze het werk van de AI aan daadwerkelijke informaticaleraars lieten zien, waren de leraren het erover eens dat de vaardigheidsbeschrijvingen van de AI duidelijk, begrijpelijk en accuraat waren.
Samenvatting
Kortom, dit artikel zegt: "We hebben een AI geleerd om automatisch precies uit te vinden welke vaardigheden studenten gebruiken in hun programmeerhuiswerk. We hebben die door de AI gegenereerde vaardigheidslabels vervolgens gebruikt om een slimmere systeem te bouwen dat voorspelt hoe studenten in de toekomst zullen presteren. Het werkt beter dan menselijke experts en beter dan eerdere AI-methoden, en het helpt ons studentleerproces te begrijpen op een manier die duidelijk en interpreteerbaar is."
Wat ze NIET beweerden:
- Ze beweerden niet dat dit leraren vervangt; ze stellen expliciet dat het bedoeld is om hen te ondersteunen.
- Ze hebben dit nog niet getest op wiskunde- of wetenschapsproblemen (alleen programmeren).
- Ze beweerden niet dat het perfect is; ze merkten op dat de AI soms vaardigheden die over problemen heen gedeeld worden, mist omdat het ze één voor één analyseert.
Verdrinkt u in papers in uw vakgebied?
Ontvang dagelijkse digests van de nieuwste papers die bij uw onderzoekswoorden passen — met technische samenvattingen, in uw taal.