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...
Uloženo v:
| Vydáno v: | IEEE/ACM International Conference on Automated Software Engineering : [proceedings] s. 388 - 398 |
|---|---|
| Hlavní autoři: | , , , , |
| 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 |