Simulating Students' Java Programming Errors with Large Language Models
本文证明了大型语言模型,特别是 Claude Sonnet 4,能够有效地模拟学生多样且真实的 Java 编程错误,为教育研究和智能辅导系统提供了一种替代收集真实提交内容的规模化方案。
原始论文采用 CC BY 4.0 许可(http://creativecommons.org/licenses/by/4.0/)。 这是对下方论文的AI生成解释。它不是由作者撰写或认可的。如需技术准确性,请参阅原始论文。 阅读完整免责声明
想象一下你是一位正在为一门大型编程课做准备的老师。你知道学生们会犯错,但你无法准确预知他们究竟会犯什么样的错误,直到你真正开始授课并收集他们的作业为止。这是一个缓慢且昂贵的过程。
这篇论文提出了一个简单的问题:我们能否利用一个超级聪明的 AI(大语言模型,简称 LLM)来扮演一个困惑的学生,从而为我们提前生成这些错误?
以下是他们实验的拆解,使用了日常类比进行解释。
目标:“假学生”测试
研究人员想看看 AI 能否编写出看起来完全像是初学者编写的 Java 代码——特别是指那些包含逻辑错误的代码。
- 逻辑错误就像是在写食谱时写道“加入适量盐”,却忘了实际把盐加进去。计算机可以运行这段代码,但结果是错误的,因为思维过程出了问题。
- 挑战在于: 如果你只是要求 AI“写一段代码”,它通常会写出完美的代码。如果你要求它“破坏代码”,它往往会做出一些随机且愚蠢的错误(比如在应该放句号的地方放了一个逗号),而这些并不是真实学生会犯的错误。目标是让 AI 犯下符合逻辑且真实的错误。
实验:“味觉测试”
研究人员从一个真实的课堂(CodeWorkout)中提取了 37 个不同的编程问题。他们让五个不同的 AI 模型尝试解决这些问题,但使用了三种不同的“指令风格”(提示词)来试图强迫 AI 犯错:
- 直接命令 (IO): “这是题目,给我一个错误的答案。”
- 出声思考 (CoT): “思考步骤,决定你可能会在哪里出错,然后写出错误的逻辑代码。”
- 自我修正循环 (Self-Refine): “写一个错误的答案,然后评价它,接着稍微修改它,使其变成另一种形式的错误答案。”
随后,他们将 AI 生成的“伪造错误”与真实学生犯下的 74,000 个错误进行了对比。
衡量优秀“伪造品”的两大准则
为了具有实用价值,AI 的错误必须通过两项测试:
- 多样性(多样性测试): AI 是否制造了许多不同种类的错误,还是只是反复重复同一种错误?(想象一位厨师试图制作 10 块烤焦的饼干。如果它们看起来完全一样,那就缺乏多样性)。
- 对齐(“真实性”测试): AI 的错误看起来是否像是一个人类真正会犯的错误?(如果 AI 写的错误方式是人类永远不会想到的,那么它就不是一个好的模拟)。
他们的发现
1. AI 可以犯错,但并非所有 AI 都表现一致
所有的 AI 模型都能生成各种各样的错误。然而,有些模型比其他模型做得更好。
- Gemini 2.5 Pro 像是一位混乱的艺术家:它制造了极其丰富的错误种类(高多样性),但其中许多错误很奇怪,看起来不像真实的学生错误。
- GPT-4o 像是一位谨慎的学生:它总是重复非常相似的错误(低多样性)。
- Claude Sonnet 4 是这组模型中的**“金发姑娘”(最完美平衡者)**。它找到了最佳平衡点:它既能制造足够多样的错误,同时这些错误又非常接近真实学生编写的代码。
2. “出声思考”的小技巧很有帮助
当研究人员要求 AI 在写代码之前“逐步思考”(思维链)时,生成的错误变得更加真实。这就像是 AI 在模拟一个学生产生困惑的过程,而不仅仅是随机地破坏代码。
3. “难度”因素
研究人员观察了问题的“困难程度”(基于学生解决该问题的尝试次数)。
- 简单问题: AI 在模仿学生方面做得很好。
- 困难问题: 随着问题变得越来越难,AI 的错误变得更加多样化(它尝试了许多不同的错误路径),但也变得不再那么像真实的学生。这就像一个新手演员试图演绎一场复杂的戏:他们可能会尝试许多不同的诠释,但都无法精准捕捉到人类表演的细微差别。
4. “盲测”(人类专家)
研究人员雇佣了人类专家来观察混合了真实学生代码和 AI 生成代码的样本,且专家并不知道哪些是真实的,哪些是 AI 生成的。
- 结果: 专家被误导了 83.7% 的时间。他们认为 AI 生成的代码是由人类编写的。
- 反转: 专家实际上认为 AI 的错误比真实学生的错误更具“合理性”(更真实)。为什么呢?因为 AI 制造的是“干净”的错误(例如经典的教科书式错误),而真实的学生往往会犯下混乱、复杂的错误,甚至同时包含多个错误。AI 就像是一个“理想化”的困惑学生,而真实的学生则要凌乱得多。
核心结论
这篇论文证明了 AI 可以作为学生的“替身”,来生成真实的编程错误。
- Claude Sonnet 4 目前是最好的“学生模拟器”。
- 更难的问题会让 AI 变得更有创意,但会降低其对人类行为的还原度。
- 权衡关系: 你可以拥有一个能制造极多种类错误的 AI,也可以拥有一个制造极真实错误的 AI,但很难同时完美兼顾两者。
研究人员认为,这对教师和教育软件开发者来说是一个强大的工具。与其等待数年去收集成千上万个真实的错误来训练系统,不如利用这些“伪造”的错误来构建更好的辅导工具,并帮助教师预判学生可能在哪里卡壳。
您所在领域的论文太多了?
获取与您研究关键词匹配的最新论文每日摘要——附技术摘要,使用您的语言。