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
基金
奥地利科学基金会;
关键词
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
相关论文
共 50 条
  • [1] Automated Clustering and Program Repair for Introductory Programming Assignments
    Gulwani, Sumit
    Radicek, Ivan
    Zuleger, Florian
    [J]. ACM SIGPLAN NOTICES, 2018, 53 (04) : 465 - 480
  • [2] Automated Program Repair for Introductory Programming Assignments
    Wan, Han
    Luo, Hongzhen
    Li, Mengying
    Luo, Xiaoyan
    [J]. IEEE TRANSACTIONS ON LEARNING TECHNOLOGIES, 2024, 17 : 1745 - 1760
  • [3] A Feasibility Study of Using Automated Program Repair for Introductory Programming Assignments
    Yi, Jooyong
    Ahmed, Umair Z.
    Karkare, Amey
    Tan, Shin Hwei
    Roychoudhury, Abhik
    [J]. ESEC/FSE 2017: PROCEEDINGS OF THE 2017 11TH JOINT MEETING ON FOUNDATIONS OF SOFTWARE ENGINEERING, 2017, : 740 - 751
  • [4] Clustering Recurrent and Semantically Cohesive Program Statements in Introductory Programming Assignments
    Marin, Victor J.
    Rivero, Carlos R.
    [J]. PROCEEDINGS OF THE 28TH ACM INTERNATIONAL CONFERENCE ON INFORMATION & KNOWLEDGE MANAGEMENT (CIKM '19), 2019, : 911 - 920
  • [5] Automated Feedback Generation for Introductory Programming Assignments
    Singh, Rishabh
    Gulwani, Sumit
    Solar-Lezama, Armando
    [J]. ACM SIGPLAN NOTICES, 2013, 48 (06) : 15 - 26
  • [6] Evaluating Automated Program Repair Techniques using Introductory Programming Course Datasets
    Nakamura, Tsukasa
    Kondo, Masanari
    Kamei, Yasutaka
    Ubayashi, Naoyasu
    [J]. 2022 IEEE 46TH ANNUAL COMPUTERS, SOFTWARE, AND APPLICATIONS CONFERENCE (COMPSAC 2022), 2022, : 569 - 574
  • [7] Neuro-Symbolic Program Corrector for Introductory Programming Assignments
    Bhatia, Sahil
    Kohli, Pushmeet
    Singh, Rishabh
    [J]. PROCEEDINGS 2018 IEEE/ACM 40TH INTERNATIONAL CONFERENCE ON SOFTWARE ENGINEERING (ICSE), 2018, : 60 - 70
  • [8] ErrorCLR: Semantic Error Classification, Localization and Repair for Introductory Programming Assignments
    Han, Siqi
    Wang, Yu
    Lu, Xuesong
    [J]. PROCEEDINGS OF THE 46TH INTERNATIONAL ACM SIGIR CONFERENCE ON RESEARCH AND DEVELOPMENT IN INFORMATION RETRIEVAL, SIGIR 2023, 2023, : 1345 - 1354
  • [9] Clustering source code from automated assessment of programming assignments
    Paiva, Jose Carlos
    Leal, Jose Paulo
    Figueira, Alvaro
    [J]. INTERNATIONAL JOURNAL OF DATA SCIENCE AND ANALYTICS, 2024,
  • [10] MULTIPAs: Applying Program Transformations to Introductory Programming Assignments for Data Augmentation
    Orvalho, Pedro
    Janota, Mikolas
    Manquinho, Vasco
    [J]. PROCEEDINGS OF THE 30TH ACM JOINT MEETING EUROPEAN SOFTWARE ENGINEERING CONFERENCE AND SYMPOSIUM ON THE FOUNDATIONS OF SOFTWARE ENGINEERING, ESEC/FSE 2022, 2022, : 1657 - 1661