UCL Discovery
UCL home » Library Services » Electronic resources » UCL Discovery

Re-factoring based program repair applied to programming assignments

Hu, Y; Ahmed, UZ; Mechtaev, S; Leong, B; Roychoudhury, A; (2020) Re-factoring based program repair applied to programming assignments. In: Proceedings of 2019 34th IEEE/ACM International Conference on Automated Software Engineering (ASE). (pp. pp. 388-398). IEEE: San Diego, CA, USA. Green open access

[img]
Preview
Text
ase19.pdf - Accepted version

Download (212kB) | Preview

Abstract

Automated program repair has been used to provide feedback for incorrect student programming assignments, since program repair captures the code modification needed to make a given buggy program pass a given test-suite. Existing student feedback generation techniques are limited because they either require manual effort in the form of providing an error model, or require a large number of correct student submissions to learn from, or suffer from lack of scalability and accuracy. In this work, we propose a fully automated approach for generating student program repairs in real-time. This is achieved by first re-factoring all available correct solutions to semantically equivalent solutions. Given an incorrect program, we match the program with the closest matching refactored program based on its control flow structure. Subsequently, we infer the input-output specifications of the incorrect program's basic blocks from the executions of the correct program's aligned basic blocks. Finally, these specifications are used to modify the blocks of the incorrect program via search-based synthesis. Our dataset consists of almost 1,800 real-life incorrect Python program submissions from 361 students for an introductory programming course at a large public university. Our experimental results suggest that our method is more effective and efficient than recently proposed feedback generation approaches. About 30% of the patches produced by our tool Refactory are smaller than those produced by the state-of-art tool Clara, and can be produced given fewer correct solutions (often a single correct solution) and in a shorter time. We opine that our method is applicable not only to programming assignments, and could be seen as a general-purpose program repair method that can achieve good results with just a single correct reference solution.

Type: Proceedings paper
Title: Re-factoring based program repair applied to programming assignments
Event: 2019 34th IEEE/ACM International Conference on Automated Software Engineering (ASE)
Open access status: An open access version is available from UCL Discovery
DOI: 10.1109/ASE.2019.00044
Publisher version: https://doi.org/10.1109/ASE.2019.00044
Language: English
Additional information: This version is the author accepted manuscript. For information on re-use, please refer to the publisher’s terms and conditions.
Keywords: Program Repair, Programming Education, Software Refactoring
UCL classification: UCL
UCL > Provost and Vice Provost Offices
UCL > Provost and Vice Provost Offices > UCL BEAMS
UCL > Provost and Vice Provost Offices > UCL BEAMS > Faculty of Engineering Science
UCL > Provost and Vice Provost Offices > UCL BEAMS > Faculty of Engineering Science > Dept of Computer Science
URI: https://discovery.ucl.ac.uk/id/eprint/10091878
Downloads since deposit
61Downloads
Download activity - last month
Download activity - last 12 months
Downloads by country - last 12 months

Archive Staff Only

View Item View Item