A Feasibility Study of Using Automated Program Repair for Introductory Programming Assignments

被引:76
作者
Yi, Jooyong [1 ,3 ]
Ahmed, Umair Z. [2 ]
Karkare, Amey [2 ]
Tan, Shin Hwei [3 ]
Roychoudhury, Abhik [3 ]
机构
[1] Innopolis Univ, Innopolis, Russia
[2] Indian Inst Technol, Kanpur, Uttar Pradesh, India
[3] Natl Univ Singapore, Singapore, Singapore
来源
ESEC/FSE 2017: PROCEEDINGS OF THE 2017 11TH JOINT MEETING ON FOUNDATIONS OF SOFTWARE ENGINEERING | 2017年
关键词
Intelligent Tutoring System; Automated Program Repair; HINT GENERATION;
D O I
10.1145/3106237.3106262
中图分类号
TP31 [计算机软件];
学科分类号
081202 ; 0835 ;
摘要
Despite the fact that an intelligent tutoring system for programming (ITSP) has long attracted interest, its widespread use has been hindered by the difficulty of generating personalized feedback automatically. Meanwhile, automated program repair (APR) is an emerging new technology that automatically fixes software bugs, and it has been shown that APR can fix the bugs of large real-world software. In this paper, we study the feasibility of marrying an ITSP and APR. We perform our feasibility study with four state-of-the-art APR tools (GenProg, AE, Angelix, and Prophet), and 661 programs written by the students taking an introductory programming course. We found that when APR tools are used out of the box, only about 30% of the programs in our dataset are repaired. This low repair rate is largely due to the student programs often being significantly incorrect - in contrast, professional software for which APR was successfully applied typically fails only a small portion of tests. To bridge this gap, we adopt in APR a new repair policy akin to the hint generation policy employed in the existing ITSP. This new repair policy admits partial repairs that address part of failing tests, which results in 84% improvement of repair rate. We also performed a user study with 263 novice students and 37 graders, and identified an understudied problem; while the graders seem to gain benefits from repairs, novice students do not seem to know how to effectively make use of generated repairs as hints.
引用
收藏
页码:740 / 751
页数:12
相关论文
共 47 条
  • [1] LAURA, A SYSTEM TO DEBUG STUDENT PROGRAMS
    ADAM, A
    LAURENT, JP
    [J]. ARTIFICIAL INTELLIGENCE, 1980, 15 (1-2) : 75 - 122
  • [2] [Anonymous], 1993, GENETIC PROGRAMMING
  • [3] [Anonymous], 2016, PROC EUR C COMPUT VI
  • [4] Barnes T, 2008, LECT NOTES COMPUT SC, V5091, P373
  • [5] Birch G., 2016, P 2016 ACM C INNOVAT, P168
  • [6] QLOSE: Program Repair with Quantitative Objectives
    D'Antoni, Loris
    Samanta, Roopsha
    Singh, Rishabh
    [J]. COMPUTER AIDED VERIFICATION: 28TH INTERNATIONAL CONFERENCE, CAV 2016, PT II, 2016, 9780 : 383 - 401
  • [7] Das Rajdeep, 2016, ABS160803828 CORR
  • [8] Falleri J-R., 2014, P 29 ACM IEEE INT C, P313, DOI DOI 10.1145/2642937.2642982
  • [9] OverCode: Visualizing Variation in Student Solutions to Programming Problems at Scale
    Glassman, Elena L.
    Scott, Jeremy
    Singh, Rishabh
    Guo, Philip J.
    Miller, Robert C.
    [J]. ACM TRANSACTIONS ON COMPUTER-HUMAN INTERACTION, 2015, 22 (02)
  • [10] Example-based feedback provision using structured solution spaces
    Gross, Sebastian
    Mokbel, Bassam
    Paassen, Benjamin
    Hammer, Barbara
    Pinkwart, Niels
    [J]. INTERNATIONAL JOURNAL OF LEARNING TECHNOLOGY, 2014, 9 (03) : 248 - 280