Repairing Bugs in Python Assignments Using Large Language Models
Students often make mistakes on their introductory programming assignments as part of their learning process. Unfortunately, providing custom repairs for these mistakes can require a substantial amount of time and effort from class instructors. Automated program repair (APR) techniques can be used to synthesize such fixes. Prior work has explored the use of symbolic and neural techniques for APR in the education domain. Both types of approaches require either substantial engineering efforts or large amounts of data and training. We propose to use a large language model trained on code, such as Codex, to build an APR system -- MMAPR -- for introductory Python programming assignments. Our system can fix both syntactic and semantic mistakes by combining multi-modal prompts, iterative querying, test-case-based selection of few-shots, and program chunking. We evaluate MMAPR on 286 real student programs and compare to a baseline built by combining a state-of-the-art Python syntax repair engine, BIFI, and state-of-the-art Python semantic repair engine for student assignments, Refactory. We find that MMAPR can fix more programs and produce smaller patches on average.
Code (0)
등록된 구현이 없습니다.
Tasks
ChunkingLanguage ModelingLanguage ModellingLarge Language ModelProgram RepairMethods 이 논문이 사용한 방법론
Similar Papers 제목 키워드 기반
Peer-aided Repairer: Empowering Large Language Models to Repair Advanced Student Assignments
Automated generation of feedback on programming assignments holds significant benefits for programming education, especially when it comes to advanced assignments. Automated Program Repair techniques, especially Large La…
Language ModellingLarge Language ModelProgram RepairPyResBugs: A Dataset of Residual Python Bugs for Natural Language-Driven Fault Injection
This paper presents PyResBugs, a curated dataset of residual bugs, i.e., defects that persist undetected during traditional testing but later surface in production, collected from major Python frameworks. Each bug in the…
DREAM: Debugging and Repairing AutoML Pipelines
Deep Learning models have become an integrated component of modern software systems. In response to the challenge of model design, researchers proposed Automated Machine Learning (AutoML) systems, which automatically sea…
AutoMLResolving Crash Bugs via Large Language Models: An Empirical Study
Crash bugs cause unexpected program behaviors or even termination, requiring high-priority resolution. However, manually resolving crash bugs is challenging and labor-intensive, and researchers have proposed various tech…
Language ModellingLarge Language ModelFrom Empirical Evaluation to Context-Aware Enhancement: Repairing Regression Errors with LLMs
[...] Since then, various APR approaches, especially those leveraging the power of large language models (LLMs), have been rapidly developed to fix general software bugs. Unfortunately, the effectiveness of these advance…
regression