Automated Clustering and Program Repair for Introductory Programming Assignments

被引:0
作者
Gulwani, Sumit [1 ]
Radicek, Ivan [2 ]
Zuleger, Florian [2 ]
机构
[1] Microsoft Corp, Redmond, WA 98052 USA
[2] TU Wien, Vienna, Austria
来源
PROCEEDINGS OF THE 39TH ACM SIGPLAN CONFERENCE ON PROGRAMMING LANGUAGE DESIGN AND IMPLEMENTATION, PLDI 2018 | 2018年
基金
奥地利科学基金会;
关键词
programming education; MOOC; dynamic analysis; program repair; clustering; GENERATION; ALGORITHMS;
D O I
暂无
中图分类号
TP31 [计算机软件];
学科分类号
081202 ; 0835 ;
摘要
Providing feedback on programming assignments is a tedious task for the instructor, and even impossible in large Massive Open Online Courses with thousands of students. Previous research has suggested that program repair techniques can be used to generate feedback in programming education. In this paper, we present a novel fully automated program repair algorithm for introductory programming assignments. The key idea of the technique, which enables automation and scalability, is to use the existing correct student solutions to repair the incorrect attempts. We evaluate the approach in two experiments: (I) We evaluate the number, size and quality of the generated repairs on 4,293 incorrect student attempts from an existing MOOC. We find that our approach can repair 97% of student attempts, while 81% of those are small repairs of good quality. (II) We conduct a preliminary user study on performance and repair usefulness in an interactive teaching setting. We obtain promising initial results (the average usefulness grade 3.4 on a scale from 1 to 5), and conclude that our approach can be used in an interactive setting.
引用
收藏
页码:465 / 480
页数:16
相关论文
共 43 条
[1]   LAURA, A SYSTEM TO DEBUG STUDENT PROGRAMS [J].
ADAM, A ;
LAURENT, JP .
ARTIFICIAL INTELLIGENCE, 1980, 15 (1-2) :75-122
[2]  
[Anonymous], 1971, IJCAI
[3]  
[Anonymous], Analysis: The exploding demand for computer science education, and why America needs to keep up
[4]  
[Anonymous], lpsolve-ILP solver
[5]  
[Anonymous], MITx MOOC
[6]  
[Anonymous], zhang-shasha-tree -edit -distance algorithm implemented in Python
[7]  
Arcuri A, 2008, ICSE'08 PROCEEDINGS OF THE THIRTIETH INTERNATIONAL CONFERENCE ON SOFTWARE ENGINEERING, P1003
[8]  
Beyer Dirk, 2009, Proceedings of the 2009 9th International Conference Formal Methods in Computer-Aided Design (FMCAD), P25, DOI 10.1109/FMCAD.2009.5351147
[9]  
Chandra S, 2011, 2011 33RD INTERNATIONAL CONFERENCE ON SOFTWARE ENGINEERING (ICSE), P121, DOI 10.1145/1985793.1985811
[10]   QLOSE: Program Repair with Quantitative Objectives [J].
D'Antoni, Loris ;
Samanta, Roopsha ;
Singh, Rishabh .
COMPUTER AIDED VERIFICATION: 28TH INTERNATIONAL CONFERENCE, CAV 2016, PT II, 2016, 9780 :383-401