Automated Generation of Code Debugging Exercises

要約

デバッグはプログラミングを学習する際に不可欠なスキルですが、その指導と重点は入門コースによって大きく異なることがよくあります。
コード生成大規模言語モデル (LLM) の時代では、学生がコードを推論してエラーを特定する能力がますます重要になっています。
ただし、学生は根本的な問題を完全に理解せずに、バグを解決するために試行錯誤の方法に頼ることがよくあります。
バグの原因を特定して仮説を立てる能力を開発することは非常に重要ですが、従来の方法で効果的に教えるには時間がかかる場合があります。
このペーパーでは、LLM を活用して問題の記述からバグのあるコードを生成し、テスト スイートを介して合成されたバグを検証する革新的なツールである BugSpotter を紹介します。
学生は、バグのあるコードの出力が問題の仕様で定義されている期待される結果と異なる、失敗するテスト ケースを設計することによって BugSpotter と対話します。
これは、学生にデバッグ スキルを向上させるだけでなく、問題の仕様を読んで理解する練習をする機会も提供します。
私たちは BugSpotter を大規模な教室環境に導入し、生成されたデバッグ演習と、同じ問題に対してインストラクターが手作りした演習を比較しました。
BugSpotter によって作成された LLM 生成の演習は、難易度がさまざまであり、問​​題の仕様によく一致していることがわかりました。
重要なのは、LLM が生成した演習は、生徒のパフォーマンスに関して講師が手動で作成した演習と同等であり、BugSpotter がデバッグ学習の効果的かつ効率的な支援となる可能性があることを示唆しています。

要約(オリジナル)

Debugging is an essential skill when learning to program, yet its instruction and emphasis often vary widely across introductory courses. In the era of code-generating large language models (LLMs), the ability for students to reason about code and identify errors is increasingly important. However, students frequently resort to trial-and-error methods to resolve bugs without fully understanding the underlying issues. Developing the ability to identify and hypothesize the cause of bugs is crucial but can be time-consuming to teach effectively through traditional means. This paper introduces BugSpotter, an innovative tool that leverages an LLM to generate buggy code from a problem description and verify the synthesized bugs via a test suite. Students interact with BugSpotter by designing failing test cases, where the buggy code’s output differs from the expected result as defined by the problem specification. This not only provides opportunities for students to enhance their debugging skills, but also to practice reading and understanding problem specifications. We deployed BugSpotter in a large classroom setting and compared the debugging exercises it generated to exercises hand-crafted by an instructor for the same problems. We found that the LLM-generated exercises produced by BugSpotter varied in difficulty and were well-matched to the problem specifications. Importantly, the LLM-generated exercises were comparable to those manually created by instructors with respect to student performance, suggesting that BugSpotter could be an effective and efficient aid for learning debugging.

arxiv情報

著者 Victor-Alexandru Pădurean,Paul Denny,Adish Singla
発行日 2024-11-21 16:56:33+00:00
arxivサイト arxiv_id(pdf)

提供元, 利用サービス

arxiv.jp, Google

カテゴリー: cs.AI, cs.SE パーマリンク