IMProB-It : automatic feedback model for iterative programming tasks in introductory programming courses
Portada
Citas bibliográficas
Código QR
Autores
Autor corporativo
Recolector de datos
Otros/Desconocido
Director audiovisual
Editor/Compilador
Editores
Tipo de Material
Fecha
Cita bibliográfica
Título de serie/ reporte/ volumen/ colección
Resumen en español
The growing interest in integrating artificial intelligence (AI) in education has spurred the development of tools and platforms that support learning, especially in computer programming. While many of these tools are designed to provide summative assessments and general feedback, only a few are tailored to address programming tasks that involve iteration structures, and an even smaller number incorporate Gries’ theory into their design. As a result, few solutions effectively support students’ understanding of loops in introductory programming courses. Students often struggle with loop construction, finding it difficult to grasp the scope of a loop, which code segments will repeat, and how many times they will execute. Automated feedback for loop-based programming can play a key role in improving students’ comprehension of these concepts. However, factors such as the type of feedback provided and the intervention level are essential to its effectiveness. This thesis addresses these difficulties by proposing an automated feedback model to support students’ understanding of iterative programming. Grounded in program correctness theory and machine learning (ML), the model evaluates student code, identifies common errors, and delivers targeted feedback to explain mistakes made in loop-based tasks. This research contributes significantly to the field of automated feedback in programming. We developed a specialized dataset of programming tasks featuring "while" loops, annotated to capture typical student errors, including issues with loop initialization, termination, and state transformation. Using Gries’ loop programming theory, we built a detailed taxonomy to categorize and label these errors. Later, we trained ML models on this dataset to classify and predict errors in students’ "while" loop tasks. Then, we employed prompt engineering with OpenAI’s GPT-4 to generate automated feedback aligned with Gries’ theory, tailoring it to the errors detected by the ML classifier. Finally, we integrated these models into INGInious, a learning management system (LMS), through an API named IMProB-It, allowing students to receive specific feedback on programming tasks involving "while" loops. To evaluate IMProB-It, we conducted a quasi-experimental study with first-semester students in systems engineering and related fields. Divided into experimental and control groups, students in the experimental group received automated feedback on their solutions to "while" loop tasks. The results indicate that students who received specific feedback found it beneficial for understanding loop mechanics, as reflected in surveymeasured satisfaction levels. This research demonstrates the potential of ML-driven automated feedback to enhance the learning experience for novice programmers, addressing an essential need in computer science education.
Resumen en español
El creciente interés por integrar la inteligencia artificial (IA) en la educación ha estimulado el desarrollo de herramientas y plataformas que apoyan el aprendizaje, especialmente en la programación informática. Si bien muchas de estas herramientas están diseñadas para proporcionar evaluaciones sumativas y comentarios generales, solo unas pocas están diseñadas para abordar tareas de programación que involucran estructuras de iteración, y un número aún menor incorpora la teoría de Gries en su diseño. Como resultado, pocas soluciones apoyan eficazmente la comprensión de los bucles por parte de los estudiantes en los cursos introductorios de programación. Los estudiantes a menudo luchan con la construcción de bucles, ya que les resulta difícil comprender el alcance de un bucle, qué segmentos de código se repetirán y cuántas veces se ejecutarán. La retroalimentación automatizada para la programación basada en bucles puede desempeñar un papel clave en la mejora de la comprensión de estos conceptos por parte de los estudiantes. Sin embargo, factores como el tipo de retroalimentación proporcionada y el nivel de intervención son esenciales para su efectividad. Esta tesis aborda estas dificultades proponiendo un modelo de retroalimentación automatizado para apoyar la comprensión de los estudiantes de la programación iterativa. Basado en la teoría de la corrección del programa y el aprendizaje automático (ML), el modelo evalúa el código de los estudiantes, identifica errores comunes y ofrece comentarios específicos para explicar los errores cometidos en tareas basadas en bucles. Esta investigación contribuye significativamente al campo de la retroalimentación automatizada en programación. Desarrollamos un conjunto de datos especializado de tareas de programación con bucles "while", anotados para capturar errores típicos de los estudiantes, incluidos problemas con la inicialización, terminación y transformación de estado de bucles. Usando la teoría de programación de bucles de Gries, construimos una taxonomía detallada para categorizar y etiquetar estos errores. Más tarde, entrenamos modelos de ML en este conjunto de datos para clasificar y predecir errores en las tareas de bucle "while" de los estudiantes. Luego, empleamos ingeniería rápida con GPT-4 de OpenAI para generar comentarios automatizados alineados con la teoría de Gries, adaptándolos a los errores detectados por el clasificador de ML. Finalmente, integramos estos modelos en INGInious, un sistema de gestión de aprendizaje (LMS), a través de una API llamada IMProB-It, que permite a los estudiantes recibir retroalimentación específica sobre tareas de programación que involucran bucles "while". Para evaluar IMProB-It, realizamos un estudio cuasi-experimental con estudiantes de primer semestre en ingeniería de sistemas y campos relacionados. Divididos en grupos experimentales y de control, los estudiantes del grupo experimental recibieron comentarios automatizados sobre sus soluciones a las tareas de bucle "while". Los resultados indican que los estudiantes que recibieron comentarios específicos lo encontraron beneficioso para comprender la mecánica de bucles, como se refleja en los niveles de satisfacción medidos por encuestas. Esta investigación demuestra el potencial de la retroalimentación automatizada impulsada por ML para mejorar la experiencia de aprendizaje de los programadores novatos, abordando una necesidad esencial en la educación en ciencias de la computación.

PDF
FLIP 
