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

Generazione Automatica di Domande su Programmi Scratch

Informazioni Fondamentali

  • ID Articolo: 2510.11658
  • Titolo: Automatically Generating Questions About Scratch Programs
  • Autori: Florian Obermüller, Gordon Fraser
  • Classificazione: cs.SE (Ingegneria del Software)
  • Data di Pubblicazione/Conferenza: CompEd 2025 (ACM Global Computing Education Conference 2025)
  • Link Articolo: https://arxiv.org/abs/2510.11658

Riassunto

Nell'apprendimento della programmazione, gli studenti vengono generalmente valutati in base al codice che scrivono. Tuttavia, il completamento di un compito di programmazione non garantisce una vera comprensione dei concetti sottostanti. Pertanto, ricerche precedenti hanno proposto di valutare la comprensione dei programmi ponendo domande agli studenti riguardo al loro codice. Poiché la creazione manuale di domande personalizzate per ogni programma studentesco è laboriosa e impegnativa, lavori precedenti hanno proposto metodi per generare automaticamente tali domande. Questo articolo estende questo approccio al linguaggio di programmazione visuale Scratch. Presentiamo 30 diversi tipi di domande su codice Scratch, che coprono un modello consolidato di comprensione dei programmi, e abbiamo esteso lo strumento di analisi statica LitterBox per generare automaticamente domande corrispondenti per un dato programma Scratch. Su un dataset contenente 600.913 progetti, abbiamo generato automaticamente 54.118.694 domande. Un esperimento preliminare con 34 studenti di nona classe dimostra che questo approccio genera effettivamente domande significative per programmi Scratch e rivela che la capacità degli studenti di rispondere a queste domande è correlata alle loro prestazioni complessive.

Contesto di Ricerca e Motivazione

Problema Centrale

Il problema centrale affrontato da questa ricerca è: come valutare efficacemente il livello di comprensione degli studenti dei programmi Scratch che hanno scritto, piuttosto che limitarsi a verificare se il programma funziona correttamente.

Importanza del Problema

  1. Divario tra Comprensione e Implementazione: Gli studenti potrebbero completare compiti di programmazione attraverso tentativi ed errori, copia o assistenza dell'IA, senza comprendere veramente i concetti di programmazione sottostanti
  2. Limitazioni dei Metodi di Valutazione: I metodi di valutazione tradizionali si concentrano principalmente sulla correttezza del codice, non sulla capacità di comprensione dei programmi degli studenti
  3. Sfida della Scalabilità: In scenari di insegnamento su larga scala, è difficile per gli insegnanti creare manualmente domande di valutazione personalizzate per il programma di ogni studente

Limitazioni dei Metodi Esistenti

  1. Limitazioni Linguistiche: I metodi di generazione di domande esistenti si concentrano principalmente su linguaggi di programmazione testuali come Java, non applicabili a linguaggi di programmazione visuale come Scratch
  2. Differenze nelle Caratteristiche del Linguaggio: In Scratch, le variabili vengono create tramite interfaccia utente piuttosto che tramite dichiarazioni, e i blocchi non possono essere referenziati tramite numeri di riga
  3. Mancanza di Sistematicità: Manca un approccio sistematico alla progettazione delle domande basato su un framework teorico

Motivazione della Ricerca

La motivazione di questo articolo è estendere il concetto già esistente di "Domande sul Codice dello Studente" (Questions about Learner's Code, QLCs) all'ambiente Scratch, fornendo uno strumento di valutazione automatizzato della comprensione dei programmi per l'educazione alla programmazione visuale.

Contributi Principali

  1. Progettazione Sistematica delle Domande: Basata sul modello Block Model di comprensione dei programmi, abbiamo progettato sistematicamente 30 tipi di domande per il codice Scratch
  2. Estensione dello Strumento: Abbiamo esteso lo strumento di analisi statica open-source LitterBox per generare automaticamente domande di comprensione per programmi Scratch
  3. Validazione su Larga Scala: Abbiamo validato l'applicabilità del metodo su un dataset contenente 600.913 progetti Scratch pubblici
  4. Studio Empirico: Abbiamo verificato l'efficacia delle domande e la correlazione tra le prestazioni degli studenti nel rispondere e la loro capacità di programmazione attraverso un esperimento in classe con 34 studenti di nona classe

Spiegazione Dettagliata del Metodo

Definizione del Compito

Input: Un progetto di programma Scratch Output: Un insieme di domande di comprensione generate automaticamente sul programma, inclusi il testo della domanda, le opzioni di risposta e la risposta corretta Vincoli: Le domande devono essere basate su costrutti di codice effettivamente presenti nel programma e conformi al framework teorico del Block Model

Architettura del Metodo

1. Fondamento Teorico: Adattamento del Block Model

Il Block Model contiene quattro livelli di ambito di attenzione e tre dimensioni del programma:

LivelloDimensione TestualeDimensione di EsecuzioneDimensione dello Scopo
AtomicoElementi del linguaggioOperazioni su elementiScopo dell'elemento
BloccoAree sintatticamente/semanticamente correlateOperazioni su blocchi di codiceFunzionalità del blocco di codice
RelazioneRiferimenti tra blocchi di codiceFlusso tra blocchi di codiceRelazione tra obiettivi e sotto-obiettivi
MacroStruttura complessiva del programmaAlgoritmo o comportamento del programmaObiettivo o scopo del programma

2. Progettazione dei Tipi di Domande

Basata sul Block Model, abbiamo progettato 30 tipi di domande, divise in 5 formati di risposta:

  • Tipo Numerico (🔢): La risposta è un singolo numero
  • Tipo Stringa (📝): La risposta è una o più stringhe
  • Tipo Sì/No (✓/✗): La risposta è sì o no
  • Tipo Scelta Multipla (☑️): Selezionare la risposta corretta dalle opzioni
  • Tipo Testo Libero (📄): Domande aperte che richiedono risposte esplicative

3. Implementazione della Generazione Automatica

Implementata attraverso l'estensione dello strumento LitterBox:

  1. Analisi AST: Conversione del programma Scratch in un albero di sintassi astratta
  2. Pattern Visitor: Implementazione di un cercatore di domande per ogni tipo di domanda
  3. Attraversamento del Codice: Attraversamento dell'AST per identificare pattern di codice che possono generare domande
  4. Generazione di Opzioni: Generazione automatica di distrattori per domande a scelta multipla

Punti di Innovazione Tecnica

  1. Adattamento alla Programmazione Visuale: Prima applicazione sistematica del concetto QLCs ai linguaggi di programmazione visuale
  2. Progettazione Guidata dalla Teoria: Progettazione dei tipi di domande basata su un framework teorico consolidato di comprensione dei programmi
  3. Generazione Automatizzata: Implementazione di un processo completamente automatizzato di generazione delle domande
  4. Copertura Multidimensionale: Le domande coprono tutti i livelli, dagli elementi linguistici di base allo scopo complessivo del programma

Configurazione Sperimentale

Dataset

  1. Dataset su Larga Scala: 600.913 progetti Scratch pubblici, escludendo progetti vuoti e misti
  2. Dati Sperimentali in Classe: 34 studenti tedeschi di nona classe con esperienza di programmazione in Scratch
  3. Progetti di Supporto: Utilizzo del gioco Boat Race come progetto di base per l'esperimento in classe

Metriche di Valutazione

  1. Frequenza di Generazione delle Domande: Numero totale di generazioni per ogni tipo di domanda e percentuale di progetti coperti
  2. Analisi di Correlazione: Coefficiente di correlazione di Pearson tra le prestazioni degli studenti nel rispondere e il completamento dei compiti di programmazione
  3. Analisi di Copertura: Percentuale di copertura dei progetti per ogni dimensione del Block Model

Metodi di Confronto

Poiché questo è il primo studio QLCs per Scratch, la validazione è stata effettuata principalmente attraverso:

  1. Confronto concettuale con QLCs per linguaggi testuali esistenti
  2. Validazione sistematica basata su framework teorico
  3. Validazione dell'applicazione in scenari di insegnamento reale

Dettagli di Implementazione

  1. Estensione dello Strumento: Basata sullo strumento di analisi statica LitterBox
  2. Formato di Output: Formato JSON, con frammenti di codice nella sintassi ScratchBlocks
  3. Presentazione delle Domande: Evidenziazione della parte di codice target (come mostrato nella Figura 1a)
  4. Meccanismo di Valutazione: 0,2 punti per ogni scelta corretta nelle domande a scelta multipla, 1 punto per la risposta corretta nelle domande a scelta singola

Risultati Sperimentali

Risultati Principali

RQ1: Frequenza di Generazione delle Domande

  • Statistiche Complessive: 54.118.694 domande generate su 600.913 progetti
  • Domande più Frequenti:
    • Purpose of Script: 9.748.844 volte (copertura del 100% dei progetti)
    • Purpose of If Condition: 5.103.322 volte (copertura del 41,1% dei progetti)
    • Scripts for Actor: 3.524.268 volte (copertura del 100% dei progetti)
  • Domande meno Frequenti:
    • My Block Definition: 368.712 volte (copertura dell'11,3% dei progetti)
    • Purpose of Loop Condition: 486.902 volte (copertura del 15,2% dei progetti)

Analisi della Copertura del Block Model

DimensioneAtomicoBloccoRelazioneMacro
Testuale64,5%61,2%46,5%100,0%
Esecuzione30,4%58,4%99,0%71,1%
Scopo49,0%100,0%31,2%100,0%

RQ2: Correlazione tra Prestazioni nelle Risposte e Capacità di Programmazione

  • Coefficiente di Correlazione: r = 0,467 (p = 0,005)
  • Intensità della Correlazione: Correlazione positiva di moderata entità
  • Significatività Statistica: p < 0,01, statisticamente significativa
  • Significato Pratico: La capacità degli studenti di rispondere alle QLCs è significativamente correlata al completamento dei loro compiti di programmazione

Risultati Sperimentali

  1. Validazione dell'Universalità: Tutti i 30 tipi di domande possono essere generati frequentemente nei progetti reali
  2. Caratteristiche Gerarchiche: Le domande di livello superiore (come lo scopo del programma) possono essere generate in quasi tutti i progetti, mentre le domande di livello inferiore dipendono da costrutti di programmazione specifici
  3. Prova di Efficacia: Le QLCs possono effettivamente servire come indicatore valido della capacità di comprensione dei programmi
  4. Valore Didattico: Può essere utilizzato per rilevare le lacune nelle conoscenze preliminari degli studenti

Lavori Correlati

Principali Direzioni di Ricerca

  1. Valutazione della Comprensione dei Programmi: I metodi tradizionali si concentrano principalmente su tracciamento del codice, interpretazione e abilità di scrittura
  2. Generazione Automatica di Domande: Esistono già strumenti di generazione automatica di domande per linguaggi testuali come Java
  3. Educazione alla Programmazione Visuale: Ampia applicazione di Scratch come linguaggio di introduzione alla programmazione

Relazione di Questo Articolo con i Lavori Correlati

  1. Eredità Teorica: Adozione del Block Model, un framework teorico consolidato di comprensione dei programmi
  2. Estensione Tecnica: Prima applicazione del concetto QLCs ai linguaggi di programmazione visuale
  3. Innovazione Strumentale: Implementazione della generazione automatica di domande per Scratch basata sullo strumento LitterBox

Vantaggi Rispetto ai Lavori Correlati

  1. Adattabilità Linguistica: Progettazione specifica per le caratteristiche dei linguaggi di programmazione visuale
  2. Completezza Sistematica: Progettazione sistematica delle domande basata su framework teorico
  3. Praticità: Validazione su larga scala e applicazione in classe reale

Conclusioni e Discussione

Conclusioni Principali

  1. Fattibilità Tecnica: È possibile generare automaticamente un gran numero di domande di comprensione significative per programmi Scratch
  2. Efficacia Educativa: Le domande generate possono valutare efficacemente la capacità di comprensione dei programmi degli studenti
  3. Valore Pratico: Fornisce uno strumento di valutazione automatizzato e scalabile per l'educazione Scratch

Limitazioni

  1. Valutazione del Testo Libero: Le domande aperte richiedono ancora partecipazione umana per la valutazione automatica
  2. Copertura delle Domande: Alcuni costrutti specifici di Scratch hanno una copertura insufficiente a livelli inferiori
  3. Scala dell'Esperimento: La dimensione del campione dell'esperimento in classe è relativamente piccola (34 studenti)
  4. Limitazioni Temporali: I vincoli di tempo dell'esperimento in classe potrebbero influenzare i risultati

Direzioni Future

  1. Integrazione con LLM: Utilizzo di modelli linguistici di grandi dimensioni per valutare automaticamente le risposte in testo libero
  2. Estensione delle Domande: Aggiunta di più tipi di domande per costrutti specifici di Scratch
  3. Interfaccia Utente: Sviluppo di un'interfaccia adatta all'uso in classe per la generazione e la gestione delle domande
  4. Ricerca sugli Effetti a Lungo Termine: Valutazione dell'impatto a lungo termine delle QLCs sull'efficacia dell'apprendimento

Valutazione Approfondita

Punti di Forza

  1. Forte Innovatività: Prima applicazione sistematica di QLCs ai linguaggi di programmazione visuale, colmando un vuoto di ricerca
  2. Fondamento Teorico Solido: La progettazione sistematica basata sul Block Model garantisce la completezza teorica delle domande
  3. Esperimenti Completi: La combinazione di analisi su larga scala e esperimenti in classe verifica la fattibilità e l'efficacia del metodo
  4. Alto Valore Pratico: Il rilascio dello strumento open-source consente l'applicazione diretta dei risultati della ricerca alla pratica didattica
  5. Scrittura Chiara: La struttura dell'articolo è chiara e la descrizione dei dettagli tecnici è accurata

Insufficienze

  1. Limitazioni della Valutazione: La valutazione delle domande in testo libero richiede ancora partecipazione umana, limitando l'automazione completa
  2. Limitazioni del Campione: La dimensione del campione dell'esperimento in classe è piccola, richiedendo validazione su scala più ampia
  3. Analisi Insufficiente della Profondità: Manca un'analisi a grana fine dell'efficacia di diversi tipi di domande
  4. Problemi di Adattabilità: Non è stata sufficientemente discussa l'adattabilità a studenti di diverse fasce d'età e livelli di competenza

Impatto

  1. Contributo Accademico: Fornisce una nuova direzione di ricerca e strumenti per il campo della valutazione nell'educazione alla programmazione
  2. Valore Pratico: Fornisce uno strumento di valutazione automatizzato pratico per gli insegnanti di Scratch
  3. Riproducibilità: Il codice open-source e la configurazione sperimentale dettagliata garantiscono la riproducibilità della ricerca
  4. Potenziale di Diffusione: Il metodo è estensibile ad altri linguaggi di programmazione visuale e piattaforme

Scenari Applicabili

  1. Educazione alla Programmazione K-12: Particolarmente adatto alle classi che utilizzano Scratch per l'introduzione alla programmazione
  2. Piattaforme di Apprendimento Online: Può essere integrato in sistemi di apprendimento della programmazione online per fornire feedback automatico
  3. Formazione degli Insegnanti: Aiuta gli insegnanti a comprendere meglio il livello di comprensione dei programmi degli studenti
  4. Strumenti di Ricerca: Fornisce uno strumento di valutazione standardizzato per la ricerca nell'educazione alla programmazione

Bibliografia

L'articolo cita 23 importanti riferimenti che coprono la teoria della comprensione dei programmi, la valutazione nell'educazione alla programmazione, gli strumenti di analisi di Scratch e altri campi di ricerca correlati. Particolarmente degni di nota sono l'articolo originale del Block Model, i lavori correlati dello strumento LitterBox e la ricerca empirica sulla relazione tra comprensione dei programmi e capacità di programmazione.