{"about":{"site":"https://codewithpapers.app","non_affiliation":"Code with Papers and Syntology are not affiliated with, endorsed by, or sponsored by Papers with Code, Meta, or the pwc-archive mirror.","licence":"CC BY-SA 4.0","licence_url":"https://creativecommons.org/licenses/by-sa/4.0/legalcode","attribution":"https://codewithpapers.app/attribution","modified":"archive material modified by Syntology; see the attribution page"},"url":"/paper/generating-concise-patches-for-newly-released","title":"Generating Concise Patches for Newly Released Programming Assignments","arxiv_id":null,"date":"2023-01-23","proceeding":"IEEE Transactions on Software Engineering 2023 1","authors":["Leping Li","Hui Liu","Kejun Li","Yanjie Jiang","and Rui Sun"],"abstract":"In programming courses, providing students with concise and constructive feedback on faulty submissions (programs) is\r\nhighly desirable. However, providing feedback manually is often time-consuming and tedious. To release tutors from the manual\r\nconstruction of concise feedback, researchers have proposed approaches such as CLARA and Refactoryto construct feedback\r\nautomatically. The key to such approaches is to ﬁx a faulty program by making it equivalent to one of its correct reference programs\r\nwhose overall structure is identical to that of the faulty submission. However, for a newly released assignment, it is likely that there are\r\nno correct reference programs at all, let alone correct reference programs sharing identical structure with the faulty submission.\r\nTherefore, in this paper, we propose AssignmentMendergenerating concise patches for newly released assignments. The key insight\r\nof AssignmentMenderis that a faulty submission can be repaired by reusing ﬁne-grained code snippets from submissions (even when\r\nthey are faulty) for the same assignment. It automatically locates suspicious code in the faulty program and leverages static analysis to\r\nretrieve reference code from existing submissions with a graph-based matching algorithm. Finally, it generates candidate patches by\r\nmodifying the suspicious code based on the reference code. Different from existing approaches, AssignmentMenderexploits faulty\r\nsubmissions in addition to bug-free submissions to generate patches. Another advantage of AssignmentMenderis that it can leverage\r\nsubmissions whose overall structures are different from those of the to-be-ﬁxed submission. Evaluation results on 128 faulty\r\nsubmissions from 10 assignments show that AssignmentMenderimproves the state-of-the-art in feedback generation for newly\r\nreleased assignments. A case study involving 40 students and 80 submissions further provides initial evidence showing that the\r\nproposed approach is useful in practice.","url_abs":"https://ieeexplore.ieee.org/abstract/document/9720157/","url_pdf":"https://ieeexplore.ieee.org/abstract/document/9720157/","source":{"archive":"pwc-archive (Hugging Face), CC BY-SA 4.0","snapshot":"2025-07-28","licence_url":"https://creativecommons.org/licenses/by-sa/4.0/legalcode","row_kind":"abstracts"},"code_links":[{"paper_slug":"generating-concise-patches-for-newly-released","repo_url":"https://github.com/CoPaGe/FeedbackExperimentTask","is_official":0,"mentioned_in_paper":0,"mentioned_in_github":0,"framework":"none","reach":null}],"tasks":[],"methods":[],"datasets_introduced":[],"methods_introduced":[],"results":[],"syntology":{"syntology_url":null,"atlas_url":null,"mcp":null,"developers":"https://syntology.ai/developers"},"arxiv_metadata":null,"syntology_extracted_results":null}