Verifix:编程作业的验证式修复
软件工程
2021-07-01 v1
摘要
针对入门级编程作业自动生成反馈对编程教育十分有用。大多数工作试图通过在选定测试用例上将学生程序的行为与教师参考程序进行比较来生成纠正学生程序的反馈。在本工作中,我们的目标是生成可验证正确的程序修复作为学生反馈。学生作业在控制流方面与参考解对齐并组合,数据变量之间的差异通过谓词自动概括以关联变量名。两次程序等价性验证失败的尝试被用于获取一组 maxSMT 查询,其解指向学生作业的修复。我们在一个广泛部署的智能辅导系统整理的学生作业上进行了实验。结果表明,我们能在多达 58% 的作业上生成已验证的反馈。更重要的是,我们的系统会指明何时能够生成已验证反馈,从而新手学生可高置信度地使用它。
引用
@article{arxiv.2106.16199,
title = {Verifix: Verified Repair of Programming Assignments},
author = {Umair Z. Ahmed and Zhiyu Fan and Jooyong Yi and Omar I. Al-Bataineh and Abhik Roychoudhury},
journal= {arXiv preprint arXiv:2106.16199},
year = {2021}
}