2025-11-11T11:43:09.580597

Automatically Generating Questions About Scratch Programs

Obermüller, Fraser
When learning to program, students are usually assessed based on the code they wrote. However, the mere completion of a programming task does not guarantee actual comprehension of the underlying concepts. Asking learners questions about the code they wrote has therefore been proposed as a means to assess program comprehension. As creating targeted questions for individual student programs can be tedious and challenging, prior work has proposed to generate such questions automatically. In this paper we generalize this idea to the block-based programming language Scratch. We propose a set of 30 different questions for Scratch code covering an established program comprehension model, and extend the LitterBox static analysis tool to automatically generate corresponding questions for a given Scratch program. On a dataset of 600,913 projects we generated 54,118,694 questions automatically. Our initial experiments with 34 ninth graders demonstrate that this approach can indeed generate meaningful questions for Scratch programs, and we find that the ability of students to answer these questions on their programs relates to their overall performance.
academic

Automatische Generierung von Fragen zu Scratch-Programmen

Grundlegende Informationen

  • Paper-ID: 2510.11658
  • Titel: Automatically Generating Questions About Scratch Programs
  • Autoren: Florian Obermüller, Gordon Fraser
  • Klassifizierung: cs.SE (Softwaretechnik)
  • Veröffentlichungszeit/Konferenz: CompEd 2025 (ACM Global Computing Education Conference 2025)
  • Paper-Link: https://arxiv.org/abs/2510.11658

Zusammenfassung

Beim Programmierunterricht werden Schüler normalerweise anhand des von ihnen geschriebenen Codes bewertet. Die bloße Fertigstellung einer Programmieraufgabe garantiert jedoch nicht das echte Verständnis der zugrunde liegenden Konzepte. Daher wurde in früheren Forschungsarbeiten vorgeschlagen, die Programmverständnisfähigkeit von Lernenden durch Fragen zu ihrem Code zu bewerten. Da die Erstellung gezielter Fragen für jedes Schülerprogramm mühsam und herausfordernd ist, haben frühere Arbeiten Methoden zur automatischen Generierung solcher Fragen vorgeschlagen. Dieses Paper erweitert diese Idee auf die blockbasierte Programmiersprache Scratch. Wir präsentieren 30 verschiedene Arten von Scratch-Code-Fragen, die etablierte Programmverständnismodelle abdecken, und erweitern das statische Analysetool LitterBox, um automatisch entsprechende Fragen für ein gegebenes Scratch-Programm zu generieren. Auf einem Datensatz mit 600.913 Projekten haben wir automatisch 54.118.694 Fragen generiert. Vorläufige Experimente mit 34 Schülern der neunten Klasse zeigen, dass diese Methode tatsächlich aussagekräftige Fragen für Scratch-Programme generieren kann und dass die Fähigkeit der Schüler, diese Fragen zu beantworten, mit ihrer Gesamtleistung korreliert.

Forschungshintergrund und Motivation

Kernproblem

Das Kernproblem dieser Forschung ist: Wie kann man effektiv bewerten, inwieweit Schüler die von ihnen geschriebenen Scratch-Programme verstehen, anstatt nur zu überprüfen, ob das Programm korrekt funktioniert?

Bedeutung des Problems

  1. Lücke zwischen Verständnis und Implementierung: Schüler können Programmieraufgaben durch Ausprobieren, Kopieren oder KI-Unterstützung abschließen, ohne die zugrunde liegenden Programmierkonzepte wirklich zu verstehen
  2. Einschränkungen von Bewertungsmethoden: Traditionelle Bewertungsmethoden konzentrieren sich hauptsächlich auf die Korrektheit des Codes, nicht auf die Programmverständnisfähigkeit der Schüler
  3. Skalierungsherausforderung: In großflächigen Unterrichtsszenarien ist es für Lehrer schwierig, für jedes Schülerprogramm manuell personalisierte Verständnisbewertungsfragen zu erstellen

Einschränkungen bestehender Methoden

  1. Einschränkung auf Textsprachen: Bestehende Methoden zur Fragegenerierung konzentrieren sich hauptsächlich auf Textprogrammiersprachen wie Java und sind nicht auf blockbasierte Sprachen wie Scratch anwendbar
  2. Unterschiede in Sprachmerkmalen: In Scratch werden Variablen über die Benutzeroberfläche erstellt, nicht durch Deklarationsanweisungen, und Blöcke können nicht durch Zeilennummern referenziert werden
  3. Mangel an Systematik: Es fehlt ein systematischer Ansatz zur Fragenerstellung auf Grundlage eines theoretischen Rahmens

Forschungsmotivation

Die Motivation dieser Arbeit ist es, das bestehende Konzept der "Fragen zum Code des Lernenden" (Questions about Learner's Code, QLCs) auf die Scratch-Umgebung auszuweiten und ein automatisiertes Bewertungstool für das Programmverständnis in der blockbasierten Programmierausbildung bereitzustellen.

Kernbeiträge

  1. Systematische Fragenerstellung: Basierend auf dem Block Model-Programmverständnismodell wurden systematisch 30 verschiedene Arten von Fragen für Scratch-Code entworfen
  2. Tool-Erweiterung: Das Open-Source-Tool zur statischen Analyse LitterBox wurde erweitert, um automatisch Verständnisfragen für Scratch-Programme zu generieren
  3. Großflächige Validierung: Die Methode wurde auf einem Datensatz mit 600.913 öffentlichen Scratch-Projekten validiert
  4. Empirische Forschung: Durch Klassenexperimente mit 34 Schülern der neunten Klasse wurde die Wirksamkeit der Fragen und die Korrelation zwischen Antwortleistung und Programmierfähigkeit nachgewiesen

Methodische Details

Aufgabendefinition

Eingabe: Ein Scratch-Programmprojekt Ausgabe: Ein Satz automatisch generierter Verständnisfragen zum Programm, einschließlich Fragetext, Antwortalternativen und korrekter Antwort Einschränkungen: Fragen müssen auf tatsächlich im Programm vorhandenen Codekonstrukten basieren und dem theoretischen Rahmen des Block Model entsprechen

Methodische Architektur

1. Theoretische Grundlage: Block Model-Anpassung

Das Block Model umfasst vier Ebenen des Fokus und drei Programmdimensionen:

EbeneTextdimensionAusführungsdimensionZweckdimension
Atomare EbeneSprachelementeElementoperationenElementzweck
Block-EbeneSyntax-/Semantik-bezogene BereicheCodeblock-OperationenCodeblock-Funktionalität
BeziehungsebeneReferenzen zwischen CodeblöckenKontrollfluss zwischen CodeblöckenZiel- und Unterzielbeziehungen
MakroebeneGesamtprogrammstrukturAlgorithmus oder ProgrammverhaltenProgramm-Ziel oder -Zweck

2. Fragentypdesign

Basierend auf dem Block Model wurden 30 Fragetypen mit 5 Antwortformaten entworfen:

  • Numerisch (🔢): Antwort ist eine einzelne Zahl
  • Zeichenkette (📝): Antwort ist eine oder mehrere Zeichenketten
  • Ja/Nein (✓/✗): Antwort ist ja oder nein
  • Multiple Choice (☑️): Wählen Sie die richtige Antwort aus Optionen
  • Freier Text (📄): Offene Fragen, die erklärende Antworten erfordern

3. Automatische Generierungsimplementierung

Implementiert durch Erweiterung des LitterBox-Tools:

  1. AST-Parsing: Konvertierung des Scratch-Programms in einen abstrakten Syntaxbaum
  2. Visitor-Muster: Implementierung eines Fragenfinders für jeden Fragetyp
  3. Code-Traversierung: Durchlaufen des AST zur Identifikation von Codemustern, die Fragen generieren können
  4. Optionsgenerierung: Automatische Generierung von Distraktoren für Multiple-Choice-Fragen

Technische Innovationspunkte

  1. Blockprogrammieradaption: Erste systematische Anwendung des QLCs-Konzepts auf blockbasierte Programmiersprachen
  2. Theoriegesteuerte Gestaltung: Fragentypdesign basierend auf einem etablierten theoretischen Rahmen für Programmverständnis
  3. Automatisierte Generierung: Vollständig automatisierter Fragengenerierungsprozess
  4. Mehrdimensionale Abdeckung: Fragen decken alle Ebenen vom grundlegenden Sprachelemente bis zum Gesamtzweck des Programms ab

Experimentelle Einrichtung

Datensätze

  1. Großflächiger Datensatz: 600.913 öffentliche Scratch-Projekte, ausgenommen leere und gemischte Projekte
  2. Klassenzimmerdaten: 34 deutsche Schüler der neunten Klasse mit Scratch-Programmiererfahrung
  3. Gerüstprojekte: Verwendung des Boat Race-Spiels als Grundlagenprojekt für Klassenexperimente

Bewertungsmetriken

  1. Fragengenerierungsfrequenz: Gesamtzahl und Projektabdeckung für jeden Fragetyp
  2. Korrelationsanalyse: Pearson-Korrelationskoeffizient zwischen Antwortleistung und Aufgabenvollständigkeit
  3. Abdeckungsanalyse: Projektabdeckungsprozentsatz für jede Dimension des Block Model

Vergleichsmethoden

Da dies die erste QLCs-Forschung für Scratch ist, wird die Validierung hauptsächlich durch folgende Methoden durchgeführt:

  1. Konzeptvergleich mit bestehenden QLCs für Textsprachen
  2. Systematische Validierung basierend auf dem theoretischen Rahmen
  3. Validierung in realen Unterrichtsszenarien

Implementierungsdetails

  1. Tool-Erweiterung: Basierend auf dem LitterBox-Tool zur statischen Analyse
  2. Ausgabeformat: JSON-Format mit Codeausschnitten in ScratchBlocks-Syntax
  3. Fragenprä­sentation: Hervorhebung des Zielcodeabschnitts (wie in Abbildung 1a gezeigt)
  4. Bewertungsmechanismus: 0,2 Punkte pro korrekte Auswahl bei Multiple-Choice-Fragen, 1 Punkt für korrekte Antwort bei Einfachauswahl

Experimentelle Ergebnisse

Hauptergebnisse

RQ1: Fragengenerierungsfrequenz

  • Gesamtstatistik: 54.118.694 Fragen wurden in 600.913 Projekten generiert
  • Häufigste Fragen:
    • Purpose of Script: 9.748.844 Mal (100% Projektabdeckung)
    • Purpose of If Condition: 5.103.322 Mal (41,1% Projektabdeckung)
    • Scripts for Actor: 3.524.268 Mal (100% Projektabdeckung)
  • Seltenste Fragen:
    • My Block Definition: 368.712 Mal (11,3% Projektabdeckung)
    • Purpose of Loop Condition: 486.902 Mal (15,2% Projektabdeckung)

Block Model-Abdeckungsanalyse

DimensionAtomare EbeneBlock-EbeneBeziehungsebeneMakroebene
Text64,5%61,2%46,5%100,0%
Ausführung30,4%58,4%99,0%71,1%
Zweck49,0%100,0%31,2%100,0%

RQ2: Korrelation zwischen Antwortleistung und Programmierfähigkeit

  • Korrelationskoeffizient: r = 0,467 (p = 0,005)
  • Korrelationsstärke: Mittlere positive Korrelation
  • Statistische Signifikanz: p < 0,01, statistisch signifikant
  • Praktische Bedeutung: Die Fähigkeit der Schüler, QLCs zu beantworten, korreliert signifikant mit ihrer Aufgabenvollständigkeit

Experimentelle Erkenntnisse

  1. Universalitätsvalidierung: Alle 30 Fragetypen können häufig in realen Projekten generiert werden
  2. Hierarchische Merkmale: Fragen auf höherer Ebene (wie Programmpurpose) können in fast allen Projekten generiert werden, während Fragen auf niedrigerer Ebene von spezifischen Programmierkonstrukten abhängen
  3. Wirksamkeitsnachweis: QLCs können tatsächlich als wirksamer Indikator für Programmverständnisfähigkeit verwendet werden
  4. Pädagogischer Wert: Kann zur Erkennung von Wissenslücken bei Schülern verwendet werden

Verwandte Arbeiten

Hauptforschungsrichtungen

  1. Programmverständnisbewertung: Traditionelle Methoden konzentrieren sich hauptsächlich auf Code-Tracing-, Interpretations- und Schreibfähigkeiten
  2. Automatische Fragegenerierung: Bestehende automatische Fragengenerierungstools für Textsprachen wie Java
  3. Blockprogrammierausbildung: Weit verbreitete Anwendung von Scratch als Programmiereinführungssprache

Beziehung dieser Arbeit zu verwandten Arbeiten

  1. Theoretische Vererbung: Anwendung des Block Model, eines etablierten Programmverständnistheorierahmens
  2. Technische Erweiterung: Erste Anwendung des bestehenden QLCs-Konzepts auf blockbasierte Programmiersprachen
  3. Tool-Innovation: Automatisierte Fragengenerierung für Scratch basierend auf dem LitterBox-Tool

Vorteile gegenüber verwandten Arbeiten

  1. Sprachadaptivität: Speziell für die Besonderheiten von blockbasierten Programmiersprachen konzipiert
  2. Systemische Vollständigkeit: Systematisches Fragentypdesign basierend auf theoretischem Rahmen
  3. Praktikabilität: Großflächige Datenvalidierung und praktische Klassenraumanwendung

Schlussfolgerungen und Diskussion

Hauptschlussfolgerungen

  1. Technische Machbarkeit: Automatische Generierung großer Mengen aussagekräftiger Verständnisfragen für Scratch-Programme ist möglich
  2. Pädagogische Wirksamkeit: Generierte Fragen können die Programmverständnisfähigkeit von Schülern effektiv bewerten
  3. Praktischer Wert: Bereitstellung eines skalierbaren automatisierten Bewertungstools für die Scratch-Ausbildung

Einschränkungen

  1. Bewertung von Freitextantworten: Automatische Bewertung offener Fragen erfordert weiterhin menschliche Beteiligung
  2. Fragabdeckung: Bestimmte Scratch-spezifische Konstrukte haben unzureichende Abdeckung auf niedrigeren Ebenen
  3. Experimentelle Skalierung: Klassenzimmerstichprobe ist relativ klein (34 Schüler)
  4. Zeitliche Einschränkung: Zeitliche Einschränkungen im Klassenzimmer können die Ergebnisse beeinflussen

Zukünftige Richtungen

  1. LLM-Integration: Nutzung großer Sprachmodelle zur automatischen Bewertung von Freitextantworten
  2. Fragenerweiterung: Hinzufügen weiterer Fragetypen für Scratch-spezifische Konstrukte
  3. Benutzeroberfläche: Entwicklung einer für den Klassenzimmergebrauch geeigneten Schnittstelle zur Fragengenerierung und -verwaltung
  4. Langzeiteffektstudien: Bewertung der langfristigen Auswirkungen von QLCs auf Lernergebnisse

Tiefgreifende Bewertung

Stärken

  1. Hohe Innovativität: Erste systematische Anwendung von QLCs auf blockbasierte Programmiersprachen, schließt eine Forschungslücke
  2. Solide theoretische Grundlage: Systematisches Design basierend auf dem Block Model gewährleistet theoretische Vollständigkeit der Fragen
  3. Umfassende Experimente: Kombination von großflächiger Datenanalyse und Klassenexperimenten validiert Machbarkeit und Wirksamkeit der Methode
  4. Hoher praktischer Wert: Die Veröffentlichung von Open-Source-Tools ermöglicht direkte Anwendung der Forschungsergebnisse in der Unterrichtspraxis
  5. Klare Darstellung: Klare Papierstruktur und genaue Beschreibung technischer Details

Schwächen

  1. Bewertungseinschränkungen: Automatische Bewertung von Freitextfragen erfordert weiterhin menschliche Beteiligung, was die vollständige Automatisierung einschränkt
  2. Stichprobenbeschränkung: Kleine Stichprobengröße bei Klassenexperimenten erfordert größflächigere Validierung
  3. Unzureichende Tiefenanalyse: Mangel an feingranularer Analyse der Wirksamkeit verschiedener Fragetypen
  4. Adaptivitätsprobleme: Unzureichende Diskussion zur Anpassung an verschiedene Altersgruppen und Fähigkeitsstufen von Schülern

Einflussfähigkeit

  1. Akademischer Beitrag: Bietet neue Forschungsrichtung und Tools für das Feld der Programmierausbildungsbewertung
  2. Praktischer Wert: Bereitstellung praktischer automatisierter Bewertungstools für Scratch-Lehrer
  3. Reproduzierbarkeit: Open-Source-Code und detaillierte experimentelle Einrichtung gewährleisten Reproduzierbarkeit der Forschung
  4. Ausbreitungspotenzial: Methode ist auf andere blockbasierte Programmiersprachen und Plattformen erweiterbar

Anwendungsszenarien

  1. K-12-Programmierausbildung: Besonders geeignet für Klassenzimmer, die Scratch zur Programmiereinführung verwenden
  2. Online-Lernplattformen: Kann in Online-Programmierlernplattformen integriert werden, um automatisches Feedback bereitzustellen
  3. Lehrerfortbildung: Hilft Lehrern, das Programmverständnisniveau von Schülern besser zu verstehen
  4. Forschungswerkzeuge: Bietet standardisierte Bewertungswerkzeuge für Programmierausbildungsforschung

Literaturverzeichnis

Das Paper zitiert 23 wichtige Referenzen, die Programmverständnistheorie, Programmierausbildungsbewertung, Scratch-Analysetools und verwandte Forschungsergebnisse abdecken. Besondere Aufmerksamkeit verdienen die Originalarbeiten zum Block Model, verwandte Arbeiten zum LitterBox-Tool sowie empirische Forschung zur Beziehung zwischen Programmverständnis und Programmierfähigkeit.