Advances in Automated Pedagogical Compile-time Error Repair

Sharath H. Padmanabha, Fahad Shaikh, Mayank Bansal, Debanjan Chatterjee, Preeti Singh, Amey Karkare, Purushottam Kar
{"title":"Advances in Automated Pedagogical Compile-time Error Repair","authors":"Sharath H. Padmanabha, Fahad Shaikh, Mayank Bansal, Debanjan Chatterjee, Preeti Singh, Amey Karkare, Purushottam Kar","doi":"10.1145/3578527.3578535","DOIUrl":null,"url":null,"abstract":"Automated pedagogical error repair (APER) is the task of suggesting fixes to buggy programs written by beginner or novice programmers. APER tools have been shown to greatly improve the learning experience for students for whom error messages offered by compilers or runtime environments are either unhelpful and often misleading. Consequently, several APER tools have been proposed in literature using a variety of powerful machine learning techniques including sequence-to-sequence modelling (TRACER), reinforcement learning (RLAssist), graph attention (DrRepair) and decision trees (MACER). Despite offering high repair rates, these tools are often bulky, requiring several days of training and extensive GPU resources. This paper describes CAPER, a novel APER tool for the C programming language that offers 4-5% higher repair accuracy than existing APER tools on multiple benchmark error repair datasets. CAPER has the added advantage of being significantly lighter and faster than most existing tools, being able to train on a CPU and yet offering training speedups of 2 × over TRACER, 600 × over RLAssist and 700 × over DrRepair. The paper also describes PyPER, an extension of CAPER to the Python programming language. Code for CAPER is available at https://github.com/purushottamkar/caper/","PeriodicalId":326318,"journal":{"name":"Proceedings of the 16th Innovations in Software Engineering Conference","volume":"75 1","pages":"0"},"PeriodicalIF":0.0000,"publicationDate":"2023-02-23","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":"0","resultStr":null,"platform":"Semanticscholar","paperid":null,"PeriodicalName":"Proceedings of the 16th Innovations in Software Engineering Conference","FirstCategoryId":"1085","ListUrlMain":"https://doi.org/10.1145/3578527.3578535","RegionNum":0,"RegionCategory":null,"ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":null,"EPubDate":"","PubModel":"","JCR":"","JCRName":"","Score":null,"Total":0}
引用次数: 0

Abstract

Automated pedagogical error repair (APER) is the task of suggesting fixes to buggy programs written by beginner or novice programmers. APER tools have been shown to greatly improve the learning experience for students for whom error messages offered by compilers or runtime environments are either unhelpful and often misleading. Consequently, several APER tools have been proposed in literature using a variety of powerful machine learning techniques including sequence-to-sequence modelling (TRACER), reinforcement learning (RLAssist), graph attention (DrRepair) and decision trees (MACER). Despite offering high repair rates, these tools are often bulky, requiring several days of training and extensive GPU resources. This paper describes CAPER, a novel APER tool for the C programming language that offers 4-5% higher repair accuracy than existing APER tools on multiple benchmark error repair datasets. CAPER has the added advantage of being significantly lighter and faster than most existing tools, being able to train on a CPU and yet offering training speedups of 2 × over TRACER, 600 × over RLAssist and 700 × over DrRepair. The paper also describes PyPER, an extension of CAPER to the Python programming language. Code for CAPER is available at https://github.com/purushottamkar/caper/
自动化教学编译时错误修复的研究进展
自动教学错误修复(APER)是对初学者或新手程序员编写的错误程序提出修复建议的任务。已经证明,对于那些编译器或运行时环境提供的错误消息要么没有帮助,要么经常误导的学生来说,APER工具可以极大地改善他们的学习体验。因此,文献中已经提出了几种APER工具,使用各种强大的机器学习技术,包括序列到序列建模(TRACER),强化学习(RLAssist),图注意(DrRepair)和决策树(MACER)。尽管提供了很高的修复率,但这些工具往往体积庞大,需要几天的培训和大量的GPU资源。本文介绍了CAPER,一种用于C编程语言的新型APER工具,在多个基准错误修复数据集上,它的修复精度比现有的APER工具高4-5%。CAPER具有比大多数现有工具更轻、更快的额外优势,能够在CPU上进行训练,但训练速度比TRACER快2倍,比RLAssist快600倍,比DrRepair快700倍。本文还介绍了PyPER,它是CAPER对Python编程语言的扩展。CAPER的代码可在https://github.com/purushottamkar/caper/上获得
本文章由计算机程序翻译,如有差异,请以英文原文为准。
求助全文
约1分钟内获得全文 求助全文
来源期刊
自引率
0.00%
发文量
0
×
引用
GB/T 7714-2015
复制
MLA
复制
APA
复制
导出至
BibTeX EndNote RefMan NoteFirst NoteExpress
×
提示
您的信息不完整,为了账户安全,请先补充。
现在去补充
×
提示
您因"违规操作"
具体请查看互助需知
我知道了
×
提示
确定
请完成安全验证×
copy
已复制链接
快去分享给好友吧!
我知道了
右上角分享
点击右上角分享
0
联系我们:info@booksci.cn Book学术提供免费学术资源搜索服务,方便国内外学者检索中英文文献。致力于提供最便捷和优质的服务体验。 Copyright © 2023 布克学术 All rights reserved.
京ICP备2023020795号-1
ghs 京公网安备 11010802042870号
Book学术文献互助
Book学术文献互助群
群 号:481959085
Book学术官方微信