当前位置: X-MOL 学术IEEE Trans. Softw. Eng. › 论文详情
Our official English website, www.x-mol.net, welcomes your feedback! (Note: you will need to create a separate account there.)
Generating Concise Patches for Newly Released Programming Assignments
IEEE Transactions on Software Engineering ( IF 6.5 ) Pub Date : 2022-02-23 , DOI: 10.1109/tse.2022.3153522
Leping Li 1 , Hui Liu 1 , Kejun Li 1 , Yanjie Jiang 1 , Rui Sun 2
Affiliation  

In programming courses, providing students with concise and constructive feedback on faulty submissions (programs) is highly desirable. However, providing feedback manually is often time-consuming and tedious. To release tutors from the manual construction of concise feedback, researchers have proposed approaches such as CLARA and Refactory to construct feedback automatically. The key to such approaches is to fix a faulty program by making it equivalent to one of its correct reference programs whose overall structure is identical to that of the faulty submission. However, for a newly released assignment, it is likely that there are no correct reference programs at all, let alone correct reference programs sharing identical structure with the faulty submission. Therefore, in this paper, we propose AssignmentMender generating concise patches for newly released assignments. The key insight of AssignmentMender is that a faulty submission can be repaired by reusing fine-grained code snippets from submissions (even when they are faulty) for the same assignment. It automatically locates suspicious code in the faulty program and leverages static analysis to retrieve reference code from existing submissions with a graph-based matching algorithm. Finally, it generates candidate patches by modifying the suspicious code based on the reference code. Different from existing approaches, AssignmentMender exploits faulty submissions in addition to bug-free submissions to generate patches. Another advantage of AssignmentMender is that it can leverage submissions whose overall structures are different from those of the to-be-fixed submission. Evaluation results on 128 faulty submissions from 10 assignments show that AssignmentMender improves the state-of-the-art in feedback generation for newly released assignments. A case study involving 40 students and 80 submissions further provides initial evidence showing that the proposed approach is useful in practice.

中文翻译:


为新发布的编程作业生成简洁的补丁



在编程课程中,非常需要为学生提供有关错误提交(程序)的简洁且有建设性的反馈。然而,手动提供反馈通常既耗时又乏味。为了将导师从手动构建简明反馈中解放出来,研究人员提出了 CLARA 和 Refactory 等自动构建反馈的方法。这种方法的关键是通过使其等同于其整体结构与错误提交的整体结构相同的正确参考程序之一来修复错误程序。然而,对于新发布的作业,很可能根本没有正确的参考程序,更不用说与错误提交具有相同结构的正确参考程序了。因此,在本文中,我们建议AssignmentMender为新发布的作业生成简洁的补丁。 AssignmentMender 的关键见解是,可以通过重复使用同一作业提交中的细粒度代码片段(即使它们有错误)来修复错误的提交。它自动定位错误程序中的可疑代码,并利用静态分析通过基于图形的匹配算法从现有提交中检索参考代码。最后,根据参考代码修改可疑代码,生成候选补丁。与现有方法不同,AssignmentMender 除了无错误提交之外还利用错误提交来生成补丁。 AssignmentMender 的另一个优点是它可以利用总体结构与待修复提交不同的提交。 对 10 项作业中 128 份错误提交的评估结果表明,AssignmentMender 提高了新发布作业的反馈生成的最新技术。一项涉及 40 名学生和 80 份提交材料的案例研究进一步提供了初步证据,表明所提出的方法在实践中是有用的。
更新日期:2022-02-23
down
wechat
bug