IMProB-It : automatic feedback model for iterative programming tasks in introductory programming courses

dc.contributor.advisorDiaz, Juan Francisco
dc.contributor.advisorCastillo Robles, Andrés Mauricio
dc.contributor.authorLeytón, Ginna
dc.date.accessioned2025-08-11T19:40:46Z
dc.date.available2025-08-11T19:40:46Z
dc.date.issued2025
dc.description.abstractThe 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.spa
dc.description.abstractEl 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.spa
dc.description.degreelevelDoctoradospa
dc.description.degreenameDOCTOR(A) EN INGENIERÍA - ÉNFASIS DE CIENCIAS DE LA COMPUTACIÓNspa
dc.format.extent1 recurso en línea (xii, 254 páginas)
dc.format.mimetypeapplication/pdf
dc.identifier.urihttps://hdl.handle.net/10893/36036
dc.language.isoeng
dc.publisherUniversidad del Vallespa
dc.publisher.branchSede Cali
dc.publisher.facultyFACULTAD DE INGENIERÍAspa
dc.publisher.placeColombiaspa
dc.publisher.programDOCTORADO EN INGENIERÍA - ÉNFASIS EN CIENCIAS DE LA COMPUTACIÓNspa
dc.rights.accessrightsinfo:eu-repo/semantics/openAccessspa
dc.rights.coarhttp://purl.org/coar/access_right/c_abf2spa
dc.rights.licenseAtribución-NoComercial-SinDerivadas 4.0 Internacional (CC BY-NC-ND 4.0)spa
dc.rights.urihttps://creativecommons.org/licenses/by-nc-nd/4.0/
dc.subject.lembProgramación
dc.subject.lembBucle
dc.subject.lembProgramación iterativa
dc.subject.lembAprendizaje automático
dc.subject.lembInteligencia artificial
dc.subject.lembSistema de Gestión de Aprendizaje (LMS)
dc.titleIMProB-It : automatic feedback model for iterative programming tasks in introductory programming coursesspa
dc.typeTrabajo de grado - Doctoradospa
dc.type.coarhttp://purl.org/coar/resource_type/c_db06
dc.type.coarversionhttp://purl.org/coar/version/c_970fb48d4fbd8a85spa
dc.type.contentText
dc.type.driverinfo:eu-repo/semantics/doctoralThesis
dc.type.redcolhttp://purl.org/redcol/resource_type/TD
dc.type.versioninfo:eu-repo/semantics/publishedVersionspa
dspace.entity.typePublication
person.identifier.orcid0000-0002-8823-691X
relation.isAuthorOfPublication178bcc55-08ca-4b08-9d56-3cfeaca23513
relation.isAuthorOfPublication.latestForDiscovery178bcc55-08ca-4b08-9d56-3cfeaca23513
relation.isDirectorOfPublicatione55ed96c-3e32-468f-8aad-62bc284a40b3
relation.isDirectorOfPublication.latestForDiscoverye55ed96c-3e32-468f-8aad-62bc284a40b3
Archivos
Bloque original
Mostrando 1 - 1 de 1
Cargando...
Miniatura
Nombre:
9702 L685.pdf
Tamaño:
5.66 MB
Formato:
Adobe Portable Document Format
Bloque de licencias
Mostrando 1 - 1 de 1
No hay miniatura disponible
Nombre:
license.txt
Tamaño:
15.18 KB
Formato:
Item-specific license agreed upon to submission
Descripción: