Re-Factoring Based Program Repair Applied to Programming Assignments

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...

Celý popis

Uloženo v:
Podrobná bibliografie
Vydáno v:IEEE/ACM International Conference on Automated Software Engineering : [proceedings] s. 388 - 398
Hlavní autoři: Hu, Yang, Ahmed, Umair Z., Mechtaev, Sergey, Leong, Ben, Roychoudhury, Abhik
Médium: Konferenční příspěvek
Jazyk:angličtina
Vydáno: IEEE 01.11.2019
Témata:
ISSN:2643-1572
On-line přístup:Získat plný text
Tagy: Přidat tag
Žádné tagy, Buďte první, kdo vytvoří štítek k tomuto záznamu!
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.
AbstractList 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.
Author Ahmed, Umair Z.
Leong, Ben
Hu, Yang
Mechtaev, Sergey
Roychoudhury, Abhik
Author_xml – sequence: 1
  givenname: Yang
  surname: Hu
  fullname: Hu, Yang
  organization: The University of Texas at Austin
– sequence: 2
  givenname: Umair Z.
  surname: Ahmed
  fullname: Ahmed, Umair Z.
  organization: National University of Singapore
– sequence: 3
  givenname: Sergey
  surname: Mechtaev
  fullname: Mechtaev, Sergey
  organization: University College London
– sequence: 4
  givenname: Ben
  surname: Leong
  fullname: Leong, Ben
  organization: National University of Singapore
– sequence: 5
  givenname: Abhik
  surname: Roychoudhury
  fullname: Roychoudhury, Abhik
  organization: National University of Singapore
BookMark eNo1TstOwzAQNAgkmsKVC5f8QMp6bcfxMZQWkCqBCpwrJ1lHRs1Ddi78PamAy4zmodEk7KIfemLslsOKczD35ftmhcDNCgCkPGMJ11hwVFDwc7bAXIqMK41XLInxC0DNQi_Y456yra2nIfi-TR9spCZ9C0MbbJfuabQ-pOU4Hv1sT8N_0p26ZYy-7Tvqp3jNLp09Rrr54yX73G4-1s_Z7vXpZV3uMiuEmTJRY2XyCrW0xrj5kcstNs4poSsLupBV04DlBpCUqpxWEutaFuSkkDOgWLK7311PRIcx-M6G70NhFCpE8QNSeEsg
ContentType Conference Proceeding
DBID 6IE
6IL
CBEJK
RIE
RIL
DOI 10.1109/ASE.2019.00044
DatabaseName IEEE Electronic Library (IEL) Conference Proceedings
IEEE Xplore POP ALL
IEEE Xplore All Conference Proceedings
IEEE Electronic Library (IEL)
IEEE Proceedings Order Plans (POP All) 1998-Present
DatabaseTitleList
Database_xml – sequence: 1
  dbid: RIE
  name: IEEE Electronic Library (IEL)
  url: https://ieeexplore.ieee.org/
  sourceTypes: Publisher
DeliveryMethod fulltext_linktorsrc
Discipline Computer Science
EISBN 1728125081
9781728125084
EISSN 2643-1572
EndPage 398
ExternalDocumentID 8952522
Genre orig-research
GroupedDBID 29I
6IE
6IF
6IH
6IK
6IL
6IM
6IN
6J9
AAJGR
AAWTH
ABLEC
ACREN
ADYOE
ADZIZ
AFYQB
ALMA_UNASSIGNED_HOLDINGS
AMTXH
APO
BEFXN
BFFAM
BGNUA
BKEBE
BPEOZ
CBEJK
CHZPO
IEGSK
IPLJI
M43
OCL
RIE
RIL
ID FETCH-LOGICAL-a339t-3c2b96b274a99f264f6a2dff537ba0784bdd0a1902e55bf7542cc48ef434ef423
IEDL.DBID RIE
ISICitedReferencesCount 71
ISICitedReferencesURI http://www.webofscience.com/api/gateway?GWVersion=2&SrcApp=Summon&SrcAuth=ProQuest&DestLinkType=CitingArticles&DestApp=WOS_CPL&KeyUT=000533303400037&url=https%3A%2F%2Fcvtisr.summon.serialssolutions.com%2F%23%21%2Fsearch%3Fho%3Df%26include.ft.matches%3Dt%26l%3Dnull%26q%3D
IngestDate Wed Aug 27 02:31:32 EDT 2025
IsPeerReviewed false
IsScholarly true
Language English
LinkModel DirectLink
MergedId FETCHMERGED-LOGICAL-a339t-3c2b96b274a99f264f6a2dff537ba0784bdd0a1902e55bf7542cc48ef434ef423
PageCount 11
ParticipantIDs ieee_primary_8952522
PublicationCentury 2000
PublicationDate 2019-11-01
PublicationDateYYYYMMDD 2019-11-01
PublicationDate_xml – month: 11
  year: 2019
  text: 2019-11-01
  day: 01
PublicationDecade 2010
PublicationTitle IEEE/ACM International Conference on Automated Software Engineering : [proceedings]
PublicationTitleAbbrev ASE
PublicationYear 2019
Publisher IEEE
Publisher_xml – name: IEEE
SSID ssj0051577
ssib040743839
Score 2.4738271
Snippet Automated program repair has been used to provide feedback for incorrect student programming assignments, since program repair captures the code modification...
SourceID ieee
SourceType Publisher
StartPage 388
SubjectTerms Lead
Maintenance engineering
Program Repair
Programming Education
Programming profession
Scalability
Search problems
Software Refactoring
Title Re-Factoring Based Program Repair Applied to Programming Assignments
URI https://ieeexplore.ieee.org/document/8952522
WOSCitedRecordID wos000533303400037&url=https%3A%2F%2Fcvtisr.summon.serialssolutions.com%2F%23%21%2Fsearch%3Fho%3Df%26include.ft.matches%3Dt%26l%3Dnull%26q%3D
hasFullText 1
inHoldings 1
isFullTextHit
isPrint
link http://cvtisr.summon.serialssolutions.com/2.0.0/link/0/eLvHCXMwlV3JbsIwEB0B6qEn2kLVXTn02BRIHC_HLqCeEOoicUNexhWHQgWh39-xE6gq9dJLFCWOFI1jv7Ez7z2A6yAj5njmaZFjWcpQDVIpTVBG9Mai5ZZnOppNiPFYTqdq0oCbHRcGEWPxGd6G0_gv3y3tJmyV9aQqMsoXmtAUgldcre23wwIUyqBwWc3CBNNC1CKNg77q3b0MQx2Xiuqc7JeVSkSSUft_73AA3R9KXjLZgc0hNHBxBO2tJ0NSD9EOPD5jOooeOtQsuSeMcuG5UIOVULKt56ukTjyTcrm98xHaUkfN3yvGWxfeRsPXh6e0dkpIdZ6rMs1tZhQ3tMLUSnnKcTzXmfO-yIXRlAQw41xfE_ZnWBTGB9dba5lEz3JGhyw_htZiucATSDijUWn6mGtG4D4Q2hTS0rTmUBSovDyFTgjK7LMSw5jV8Tj7-_I57IeoV-S9C2iVqw1ewp79Kufr1VXswW9RiJuF
linkProvider IEEE
linkToHtml http://cvtisr.summon.serialssolutions.com/2.0.0/link/0/eLvHCXMwlV3PT8IwFH5BNNETKhh_24NHJ7B2W3v0BwQjEqKYcCNt92o4CAaHf7-v28CYePGyLFuXLH1rv9fufd8HcOllxNI4dLTIsSIQqNqBlMYrIzpj0cY2DnVuNpEMBnI8VsMKXK25MIiYF5_htT_N_-Wnc7v0W2VNqaKQ8oUN2PTOWSVba_X1CA-G0mtcFvMwAXWSlDKN7ZZq3rx0fCWXyvU5xS8zlRxLurX_vcUuNH5IeWy4hps9qOBsH2orVwZWDtI63D9j0M1ddKgZuyWUSv1zvgqLUbqtpwtWpp4sm6_uvPu2FKrpW8F5a8BrtzO66wWlV0KgOVdZwG1oVGxojamVcpTluFiHqXMRT4ymNECYNG1pQv8Qo8g473trrZDoBBd0CPkBVGfzGR4CiwWNS9NCrgXBezvRJpKWJrYUkwiVk0dQ950y-SjkMCZlfxz_ffkCtnujp_6k_zB4PIEdH4GCyncK1WyxxDPYsl_Z9HNxnkfzG52bns4
openUrl ctx_ver=Z39.88-2004&ctx_enc=info%3Aofi%2Fenc%3AUTF-8&rfr_id=info%3Asid%2Fsummon.serialssolutions.com&rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Ajournal&rft.genre=proceeding&rft.title=IEEE%2FACM+International+Conference+on+Automated+Software+Engineering+%3A+%5Bproceedings%5D&rft.atitle=Re-Factoring+Based+Program+Repair+Applied+to+Programming+Assignments&rft.au=Hu%2C+Yang&rft.au=Ahmed%2C+Umair+Z.&rft.au=Mechtaev%2C+Sergey&rft.au=Leong%2C+Ben&rft.date=2019-11-01&rft.pub=IEEE&rft.eissn=2643-1572&rft.spage=388&rft.epage=398&rft_id=info:doi/10.1109%2FASE.2019.00044&rft.externalDocID=8952522