Flexible Control Flow Graph Alignment for Delivering Data-Driven Feedback to Novice Programming Learners

Fuente: arXiv
Guardado en:
Detalles Bibliográficos
Autores principales: Chowdhury, Md Towhidul Absar, Contractor, Maheen Riaz, Rivero, Carlos R.
Formato: Preprint
Publicado: 2024
Materias:
Acceso en línea:
Etiquetas: Agregar Etiqueta
Sin Etiquetas, Sea el primero en etiquetar este registro!
_version_ 1866916080266510336
author Chowdhury, Md Towhidul Absar
Contractor, Maheen Riaz
Rivero, Carlos R.
author_facet Chowdhury, Md Towhidul Absar
Contractor, Maheen Riaz
Rivero, Carlos R.
contents Supporting learners in introductory programming assignments at scale is a necessity. This support includes automated feedback on what learners did incorrectly. Existing approaches cast the problem as automatically repairing learners' incorrect programs extrapolating the data from an existing correct program from other learners. However, such approaches are limited because they only compare programs with similar control flow and order of statements. A potentially valuable set of repair feedback from flexible comparisons is thus missing. In this paper, we present several modifications to CLARA, a data-driven automated repair approach that is open source, to deal with real-world introductory programs. We extend CLARA's abstract syntax tree processor to handle common introductory programming constructs. Additionally, we propose a flexible alignment algorithm over control flow graphs where we enrich nodes with semantic annotations extracted from programs using operations and calls. Using this alignment, we modify an incorrect program's control flow graph to match the correct programs to apply CLARA's original repair process. We evaluate our approach against a baseline on the twenty most popular programming problems in Codeforces. Our results indicate that flexible alignment has a significantly higher percentage of successful repairs at 46% compared to 5% for baseline CLARA. Our implementation is available at https://github.com/towhidabsar/clara.
format Preprint
id arxiv_https___arxiv_org_abs_2401_01416
institution arXiv
publishDate 2024
record_format arxiv
spellingShingle Flexible Control Flow Graph Alignment for Delivering Data-Driven Feedback to Novice Programming Learners
Chowdhury, Md Towhidul Absar
Contractor, Maheen Riaz
Rivero, Carlos R.
Software Engineering
Supporting learners in introductory programming assignments at scale is a necessity. This support includes automated feedback on what learners did incorrectly. Existing approaches cast the problem as automatically repairing learners' incorrect programs extrapolating the data from an existing correct program from other learners. However, such approaches are limited because they only compare programs with similar control flow and order of statements. A potentially valuable set of repair feedback from flexible comparisons is thus missing. In this paper, we present several modifications to CLARA, a data-driven automated repair approach that is open source, to deal with real-world introductory programs. We extend CLARA's abstract syntax tree processor to handle common introductory programming constructs. Additionally, we propose a flexible alignment algorithm over control flow graphs where we enrich nodes with semantic annotations extracted from programs using operations and calls. Using this alignment, we modify an incorrect program's control flow graph to match the correct programs to apply CLARA's original repair process. We evaluate our approach against a baseline on the twenty most popular programming problems in Codeforces. Our results indicate that flexible alignment has a significantly higher percentage of successful repairs at 46% compared to 5% for baseline CLARA. Our implementation is available at https://github.com/towhidabsar/clara.
title Flexible Control Flow Graph Alignment for Delivering Data-Driven Feedback to Novice Programming Learners
topic Software Engineering
url https://arxiv.org/abs/2401.01416