Simulating Students' Java Programming Errors with Large Language Models

本論文は、大規模言語モデル、特にClaude Sonnet 4が、学生による多様かつ現実的なJavaプログラミングの誤りを効果的にシミュレートできることを示しており、教育研究やインテリジェント・チュータリング・システムのために、真正な提出物を収集する代わりのスケーラブルな代替手段を提供するものである。

原著者: Ali Keramati, Jie Cao, Iman Mohammadi, Mark Warschauer, Yang Shi

公開日 2026-06-15
📖 1 分で読めます☕ さくっと読める

原著者: Ali Keramati, Jie Cao, Iman Mohammadi, Mark Warschauer, Yang Shi

原論文は CC BY 4.0 (http://creativecommons.org/licenses/by/4.0/) でライセンスされています。 これは以下の論文のAI生成解説です。著者が執筆または承認したものではありません。技術的な正確性については原論文を参照してください。 免責事項の全文を読む

あなたは、大規模なプログラミングの授業に向けて準備をしている教師だと想像してください。あなたは、学生が間違いを犯すことは分かっていますが、実際に授業を行い、彼らの宿題を回収するまで、具体的に「どのような」間違いをするのかを予測することはできません。これは時間がかかり、コストも高いプロセスです。

この論文は、シンプルな問いを投げかけています。「超高性能なAI(大規模言語モデル、LLM)を使って、混乱している学生のふりをさせ、事前にその間違いを生成させることはできるだろうか?」

以下に、日常的な例えを用いた実験内容の解説をまとめます。

目的:「偽の学生」テスト

研究者たちは、AIが、初心者である学生が書いたようなJavaコード(特に論理エラーを持つコード)を書けるかどうかを検証したいと考えました。

  • 論理エラーとは、レシピに「塩を適量加える」と書いてあるのに、実際に塩を加えるのを忘れてしまうようなものです。コンピュータはコードを実行できますが、思考プロセスに欠陥があるため、結果が間違ったものになります。
  • 課題: 単にAIに「コードを書いて」と頼むと、AIは通常、完璧なコードを書きます。逆に「コードを壊して」と頼むと、AIは(人間が実際には決してしないような)カンマを入れるべき場所にピリオドを置くといった、ラン {random} で愚かなミスをすることがよくあります。目標は、AIに現実的な間違いをさせることでした。

実験:「味のテスト」

研究者たちは、実際の教室(CodeWorkout)から37種類の異なるプログラミング問題をピックアップしました。そして、5つの異なるAIモデルに対し、間違いを強制させるために3つの異なる「指示スタイル(プロンプト)」を用いて解かせました。

  1. 直接命令 (IO): 「これが問題です。間違った答えを出してください。」
  2. 思考の言語化 (CoT): 「ステップごとに考え、どこでミスをしそうかを判断してから、間違ったコードを書いてください。」
  3. 自己修正ループ (Self-Refine): 「間違った答えを書き、それを批判し、少し修正して、別の種類の間違った答えにしてください。」

その後、AIが生成した「偽の間違い」を、実際の学生による74,000件の「実際の間違い」と比較しました。

優れた「偽物」のための2つの主要ルール

AIの偽の間違いが有用であるためには、2つのテストに合格しなければなりません。

  1. 多様性(バラエティ・テスト): AIは多くの異なる種類の間違いを作ったでしょうか?それとも、同じエラーを何度も繰り返したでしょうか?(例えば、シェフが10種類の異なる焦げたクッキーを作ろうとしている場面を想像してください。もしそれらがすべて全く同じ見た目なら、それは多様性に欠けています)。
  2. 整合性(「リアリティ」テスト): AIの間違いは、人間が実際に起こし得るものに見えるでしょうか?(もしAIが、人間では決して思いつかないような方法でコードを間違えた場合、それは優れたシミュレーションとは言えません)。

研究結果

1. AIは間違いを作れるが、すべてのAIが平等ではない
すべてのAIモデルが多様なエラーを生成できました。しかし、モデルによって性能に差がありました。

  • Gemini 2.5 Proは、まるで「混沌とした芸術家」のようでした。非常に多様な間違い(高い多様性)を作りましたが、その多くは奇妙で、実際の学生のエラーとはかけ離れたものでした。
  • GPT-4oは、「慎重な学生」のようでした。非常に似通った間違いを何度も繰り返しました(低い多様性)。
  • Claude Sonnet 4は、グループの中で**「ゴルディロックス(ちょうど良い存在)」**でした。最も優れたバランスを見出しました。十分な種類の異なる間違いを作りつつ、それらは実際の学生が書くものに非常に近いものでした。

2. 「思考の言語化」のトリックが効果を発揮した
コードを書く前に「ステップ・バイ・ステップで考える」(Chain-of-Thought)ようAIに指示すると、間違いはより現実的なものになりました。それは、AIが単にランダムにコードを壊しているのではなく、学生が混乱していくプロセスをシミュレートしているかのようでした。

3. 「難易度」の要因
研究者たちは、(学生がどれだけその問題を苦戦したかに基づいて)問題がどれほど「困難」であるかを調査しました。

  • 簡単な問題: AIは学生の模倣に優れた成績を収めました。
  • 難しい問題: 問題が難しくなるにつれ、AIの間違いはより多様になりました(多くの異なる誤った経路を試みました)が、同時に、実際の学生との類似性は低下しました。これは、経験の浅い俳優が複雑なシーンを演じようとしているようなものです。彼らは多くの異なる解釈を試みるかもしれませんが、どれも実在する人間の演技のニュアンスを完全には捉えきれません。

**4. 「ブラインド・テイスト・テスト」(人間の専門家による評価)
研究者たちは、実際の学生のコードとAIが生成したコードを混ぜたものを見て、どちらがどちらであるかを知らない状態で、人間の専門家を雇いました。

  • 結果: 専門家は 83.7% の確率で騙されました。彼らはAIのコードを人間が書いたものだと判断しました。
  • 意外な展開: 専門家は、AIの間違いの方が、実際の学生の間違いよりも「もっともらしい(現実的である)」と評価しました。なぜなら、AIは「綺麗な」間違い(教科書的な典型的なエラーなど)を作る一方で、実際の学生は複数のエラーが混ざり合った、より乱雑で複雑な間違いを犯すからです。AIは「理想化された」混乱した学生であり、実際の学生はもっと「散らかった」状態にあるのです。

結論

この論文は、AIが現実的なプログラミングエラーを生成するための「代役」として機能できることを証明しています。

  • Claude Sonnet 4 は、現在最も優れた「学生シミュレーター」です。
  • より難しい問題は、AIをより創造的にさせますが、人間の行動に対する正確性は低下させます。
  • トレードオフ: 膨大な種類のミスを作るAIか、あるいは非常に現実的なミスを作るAIか、両方を完璧に両立させることは困難です。

研究者たちは、これが教師や教育ソフトウェアの開発者にとって強力なツールになると示唆しています。数千件の実際的な学生のミスを収集するために何年も待つ代わりに、これらの「偽の」ミスを利用して、より優れたチュータリングツールを構築したり、教師が学生がどこで躓くかを予測するのを助けたりすることができるのです。

自分の分野の論文に埋もれていませんか?

研究キーワードに一致する最新の論文のダイジェストを毎日受け取りましょう——技術要約付き、あなたの言語で。

Digest を試す →