LLM2D
BugSpotter:代码调试练习题的自动生成
BugSpotter: Automated Generation of Code Debugging Exercises
作者: Victor-Alexandru P\u{a}durean, Paul Denny, Adish Singla
发布日期: 11/26/2024
arXiv ID: oai:arXiv.org:2411.14303v2

摘要

调试是学习编程的一项基本技能,但在入门课程中的教学和强调程度差异很大。在大语言模型 (LLM) 生成代码的时代,学生分析代码和识别错误的能力变得越来越重要。然而,学生经常采用反复试验的方法来解决错误,而没有完全理解根本问题。培养识别和假设错误原因的能力至关重要,但通过传统方法有效地教授它可能非常耗时。本文介绍了 BugSpotter,这是一种利用 LLM 从问题描述生成错误代码并通过测试套件验证合成错误的创新工具。学生通过设计失败的测试用例与 BugSpotter 交互,其中错误代码的输出与问题规范中定义的预期结果不同。这不仅为学生提供了增强调试技能的机会,也为他们提供了阅读和理解问题规范的练习机会。我们在大型课堂环境中部署了 BugSpotter,并将它生成的调试练习与讲师为相同问题手工制作的练习进行了比较。我们发现,BugSpotter 生成的 LLM 练习难度各不相同,并且与问题规范非常匹配。重要的是,LLM 生成的练习在学生表现方面与教师手动创建的练习相当,这表明 BugSpotter 可以成为学习调试的有效且高效的辅助工具。