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.
- ID del Artículo: 2510.11658
- Título: Automatically Generating Questions About Scratch Programs
- Autores: Florian Obermüller, Gordon Fraser
- Clasificación: cs.SE (Ingeniería de Software)
- Fecha de Publicación/Conferencia: CompEd 2025 (ACM Global Computing Education Conference 2025)
- Enlace del Artículo: https://arxiv.org/abs/2510.11658
En el aprendizaje de programación, los estudiantes suelen ser evaluados en función del código que escriben. Sin embargo, completar tareas de programación no garantiza una comprensión genuina de los conceptos subyacentes. Por lo tanto, investigaciones previas han propuesto evaluar la comprensión de programas mediante preguntas dirigidas a los estudiantes sobre su código. Dado que crear preguntas personalizadas para cada programa de estudiante es tedioso y desafiante, trabajos anteriores han propuesto métodos para generar automáticamente tales preguntas. Este artículo generaliza esta idea al lenguaje de programación basado en bloques Scratch. Proponemos 30 tipos diferentes de preguntas sobre código Scratch, que abarcan modelos establecidos de comprensión de programas, y extendemos la herramienta de análisis estático LitterBox para generar automáticamente preguntas correspondientes para un programa Scratch dado. En un conjunto de datos que contiene 600,913 proyectos, generamos automáticamente 54,118,694 preguntas. Nuestros experimentos preliminares con 34 estudiantes de noveno grado demuestran que este método puede generar preguntas significativas para programas Scratch y revelan que la capacidad de los estudiantes para responder estas preguntas se correlaciona con su desempeño general.
El problema central que aborda esta investigación es: ¿cómo evaluar efectivamente el grado de comprensión que tienen los estudiantes sobre los programas Scratch que escriben, más allá de simplemente verificar si el programa funciona correctamente?
- Brecha entre Comprensión e Implementación: Los estudiantes pueden completar tareas de programación mediante prueba y error, copia o asistencia de IA, pero sin comprender realmente los conceptos de programación subyacentes
- Limitaciones de los Métodos de Evaluación: Los métodos de evaluación tradicionales se enfatizan principalmente en la corrección del código, no en la capacidad de comprensión de programas del estudiante
- Desafío de Escalabilidad: En escenarios de enseñanza a gran escala, es difícil para los maestros crear manualmente preguntas de evaluación de comprensión personalizadas para cada programa de estudiante
- Limitaciones de Lenguajes Textuales: Los métodos existentes de generación de preguntas se enfocan principalmente en lenguajes de programación textuales como Java, no siendo aplicables a lenguajes de programación basados en bloques como Scratch
- Diferencias en Características del Lenguaje: En Scratch, las variables se crean a través de la interfaz de usuario en lugar de declaraciones, y los bloques no pueden referenciarse mediante números de línea
- Falta de Sistematicidad: Carencia de un enfoque sistemático de diseño de preguntas basado en marcos teóricos
La motivación de este trabajo es extender el concepto existente de "Preguntas sobre el Código del Estudiante" (Questions about Learner's Code, QLCs) al entorno Scratch, proporcionando una herramienta de evaluación automatizada de comprensión de programas para la educación en programación basada en bloques.
- Diseño Sistemático de Preguntas: Basado en el modelo Block Model de comprensión de programas, diseñamos sistemáticamente 30 tipos de preguntas dirigidas al código Scratch
- Extensión de Herramientas: Extendemos la herramienta de análisis estático de código abierto LitterBox para generar automáticamente preguntas de comprensión para programas Scratch
- Validación a Gran Escala: Validamos la aplicabilidad del método en un conjunto de datos que contiene 600,913 proyectos Scratch públicos
- Estudio Empírico: Verificamos la efectividad de las preguntas y la correlación entre el desempeño de los estudiantes en las respuestas y su capacidad de programación mediante experimentos en aula con 34 estudiantes de noveno grado
Entrada: Un proyecto de programa Scratch
Salida: Un conjunto de preguntas de comprensión generadas automáticamente sobre el programa, incluyendo texto de pregunta, opciones de respuesta y respuesta correcta
Restricciones: Las preguntas deben basarse en construcciones de código que realmente existen en el programa y deben cumplir con el marco teórico del Block Model
El Block Model contiene cuatro niveles de alcance de atención y tres dimensiones de programa:
| Nivel | Dimensión Textual | Dimensión de Ejecución | Dimensión de Propósito |
|---|
| Atómico | Elementos del lenguaje | Operaciones de elementos | Propósito del elemento |
| Bloque | Área relacionada con sintaxis/semántica | Operación de bloques de código | Funcionalidad del bloque de código |
| Relación | Referencias entre bloques de código | Flujo entre bloques de código | Relación entre objetivos y subobjetivos |
| Macro | Estructura general del programa | Algoritmo o comportamiento del programa | Objetivo o propósito del programa |
Basado en el Block Model, diseñamos 30 tipos de preguntas, divididas en 5 formatos de respuesta:
- Tipo Numérico (🔢): La respuesta es un único número
- Tipo Cadena de Caracteres (📝): La respuesta es una o más cadenas de caracteres
- Tipo Verdadero/Falso (✓/✗): La respuesta es sí o no
- Tipo Opción Múltiple (☑️): Seleccionar la respuesta correcta de las opciones
- Tipo Texto Libre (📄): Preguntas abiertas que requieren respuestas explicativas
Se implementa mediante la extensión de la herramienta LitterBox:
- Análisis AST: Convertir el programa Scratch en un árbol de sintaxis abstracta
- Patrón de Visitante: Implementar un buscador de preguntas para cada tipo de pregunta
- Recorrido de Código: Recorrer el AST para identificar patrones de código que pueden generar preguntas
- Generación de Opciones: Generar automáticamente opciones de distracción para preguntas de opción múltiple
- Adaptación a Programación Basada en Bloques: Primera aplicación sistemática del concepto QLCs a lenguajes de programación basados en bloques
- Diseño Impulsado por Teoría: Diseño de tipos de preguntas basado en marcos teóricos maduros de comprensión de programas
- Generación Automatizada: Implementación de un proceso completamente automatizado de generación de preguntas
- Cobertura Multidimensional: Las preguntas abarcan desde elementos básicos del lenguaje hasta el propósito general del programa
- Conjunto de Datos a Gran Escala: 600,913 proyectos Scratch públicos, excluyendo proyectos vacíos y mixtos
- Datos de Experimento en Aula: 34 estudiantes alemanes de noveno grado con experiencia en programación Scratch
- Proyectos de Andamiaje: Uso del juego Boat Race como proyecto base para el experimento en aula
- Frecuencia de Generación de Preguntas: Número total de generaciones de cada tipo de pregunta y porcentaje de proyectos cubiertos
- Análisis de Correlación: Coeficiente de correlación de Pearson entre el desempeño de respuestas de estudiantes y el grado de finalización de tareas de programación
- Análisis de Cobertura: Porcentaje de cobertura de proyectos para cada dimensión del Block Model
Dado que este es el primer estudio de QLCs para Scratch, la validación se realiza principalmente mediante:
- Comparación conceptual con QLCs existentes para lenguajes textuales
- Validación sistemática basada en marcos teóricos
- Validación de aplicación en escenarios de enseñanza real
- Extensión de Herramientas: Basada en la herramienta de análisis estático LitterBox
- Formato de Salida: Formato JSON, incluyendo fragmentos de código con sintaxis ScratchBlocks
- Presentación de Preguntas: Resaltado de la parte de código objetivo (como se muestra en la Figura 1a)
- Mecanismo de Puntuación: 0.2 puntos por cada selección correcta en preguntas de opción múltiple, 1 punto para respuesta correcta en preguntas de selección única
- Estadísticas Generales: Se generaron 54,118,694 preguntas en 600,913 proyectos
- Preguntas de Mayor Frecuencia:
- Purpose of Script: 9,748,844 veces (cobertura del 100% de proyectos)
- Purpose of If Condition: 5,103,322 veces (cobertura del 41.1% de proyectos)
- Scripts for Actor: 3,524,268 veces (cobertura del 100% de proyectos)
- Preguntas de Menor Frecuencia:
- My Block Definition: 368,712 veces (cobertura del 11.3% de proyectos)
- Purpose of Loop Condition: 486,902 veces (cobertura del 15.2% de proyectos)
| Dimensión | Atómico | Bloque | Relación | Macro |
|---|
| Textual | 64.5% | 61.2% | 46.5% | 100.0% |
| Ejecución | 30.4% | 58.4% | 99.0% | 71.1% |
| Propósito | 49.0% | 100.0% | 31.2% | 100.0% |
- Coeficiente de Correlación: r = 0.467 (p = 0.005)
- Intensidad de Correlación: Correlación positiva de grado moderado
- Significancia Estadística: p < 0.01, estadísticamente significativa
- Significancia Práctica: La capacidad de los estudiantes para responder QLCs se correlaciona significativamente con el grado de finalización de tareas de programación
- Verificación de Universalidad: Los 30 tipos de preguntas pueden generarse frecuentemente en proyectos reales
- Características Jerárquicas: Las preguntas de nivel superior (como el propósito del programa) pueden generarse en casi todos los proyectos, mientras que las preguntas de nivel inferior dependen de construcciones de programación específicas
- Prueba de Efectividad: Los QLCs pueden servir efectivamente como indicadores de capacidad de comprensión de programas
- Valor Educativo: Pueden utilizarse para detectar deficiencias en el conocimiento previo de los estudiantes
- Evaluación de Comprensión de Programas: Los métodos tradicionales se enfatizan principalmente en habilidades de rastreo de código, interpretación y escritura
- Generación Automática de Preguntas: Existen herramientas de generación automática de preguntas para lenguajes textuales como Java
- Educación en Programación Basada en Bloques: Aplicación generalizada de Scratch como lenguaje de introducción a la programación
- Herencia Teórica: Adopción del Block Model, un marco teórico maduro de comprensión de programas
- Extensión Técnica: Primera aplicación del concepto QLCs a lenguajes de programación basados en bloques
- Innovación de Herramientas: Implementación de generación automática de preguntas para Scratch basada en la herramienta LitterBox
- Adaptabilidad del Lenguaje: Diseño específicamente dirigido a las características de lenguajes de programación basados en bloques
- Integridad Sistemática: Diseño sistemático de preguntas basado en marcos teóricos
- Practicidad: Validación a gran escala de datos y aplicación en aulas reales
- Viabilidad Técnica: Es posible generar automáticamente una gran cantidad de preguntas de comprensión significativas para programas Scratch
- Efectividad Educativa: Las preguntas generadas pueden evaluar efectivamente la capacidad de comprensión de programas de los estudiantes
- Valor Práctico: Proporciona una herramienta de evaluación automatizada y escalable para la educación Scratch
- Evaluación de Texto Libre: Las preguntas abiertas aún requieren participación manual en la evaluación automática
- Cobertura de Preguntas: Ciertos constructos específicos de Scratch tienen cobertura insuficiente en dimensiones de nivel inferior
- Escala de Experimento: El tamaño de muestra del experimento en aula es relativamente pequeño (34 estudiantes)
- Restricción de Tiempo: Las restricciones de tiempo del experimento en aula pueden afectar los resultados
- Integración de LLM: Utilizar modelos de lenguaje grandes para evaluar automáticamente respuestas de texto libre
- Expansión de Preguntas: Agregar más tipos de preguntas dirigidas a constructos específicos de Scratch
- Interfaz de Usuario: Desarrollar una interfaz adecuada para uso en aula para generación y gestión de preguntas
- Investigación de Efectos a Largo Plazo: Evaluar el impacto a largo plazo de QLCs en los resultados de aprendizaje
- Innovación Fuerte: Primera aplicación sistemática de QLCs a lenguajes de programación basados en bloques, llenando un vacío de investigación
- Fundamento Teórico Sólido: El diseño sistemático basado en el Block Model asegura la integridad teórica de las preguntas
- Experimentación Suficiente: La combinación de análisis de datos a gran escala y experimentos en aula verifica la viabilidad y efectividad del método
- Alto Valor Práctico: La publicación de herramientas de código abierto permite que los resultados de investigación se apliquen directamente a la práctica educativa
- Escritura Clara: La estructura del artículo es clara y la descripción de detalles técnicos es precisa
- Limitaciones de Evaluación: La evaluación de preguntas de texto libre aún requiere participación manual, limitando la automatización completa
- Limitación de Muestra: El tamaño de muestra del experimento en aula es pequeño, requiriendo validación a mayor escala
- Análisis Insuficiente en Profundidad: Falta análisis de granularidad fina sobre la efectividad de diferentes tipos de preguntas
- Problemas de Adaptabilidad: Discusión insuficiente sobre cómo adaptarse a estudiantes de diferentes grupos de edad y niveles de habilidad
- Contribución Académica: Proporciona una nueva dirección de investigación y herramientas para el campo de evaluación de educación en programación
- Valor Práctico: Proporciona a maestros de Scratch una herramienta de evaluación automática práctica
- Reproducibilidad: El código de código abierto y la configuración experimental detallada aseguran la reproducibilidad de la investigación
- Potencial de Promoción: El método es extensible a otros lenguajes de programación basados en bloques y plataformas
- Educación en Programación K-12: Particularmente adecuado para aulas que utilizan Scratch para introducción a la programación
- Plataformas de Aprendizaje en Línea: Puede integrarse en sistemas de aprendizaje de programación en línea para proporcionar retroalimentación automática
- Capacitación de Maestros: Ayuda a los maestros a comprender mejor el nivel de comprensión de programas de los estudiantes
- Herramienta de Investigación: Proporciona una herramienta de evaluación estandarizada para investigación en educación de programación
El artículo cita 23 referencias importantes que abarcan teoría de comprensión de programas, evaluación de educación en programación, herramientas de análisis de Scratch y otros campos de investigación relacionados. Particularmente dignos de atención son el artículo original del Block Model, trabajos relacionados con la herramienta LitterBox, e investigación empírica sobre la relación entre comprensión de programas y capacidad de programación.