[論文レビュー] Explaining Code with a Purpose: An Integrated Approach for Developing Code Comprehension and Prompting Skills
本論文は、学生の「平易な英語で説明する」(EiPE)回答からコードを生成することで、自然言語理解とプロンプト作成スキルを同時に評価する、統合的で自動化された教育的アプローチを提案する。大規模なCS1の授業において、学生は機能的に同等のコードを生成する有効なプロンプトを構築する成功率が高く、関係性に基づいた、目的に焦点を当てた説明が最も効果的であった。
Reading, understanding and explaining code have traditionally been important skills for novices learning programming. As large language models (LLMs) become prevalent, these foundational skills are more important than ever given the increasing need to understand and evaluate model-generated code. Brand new skills are also needed, such as the ability to formulate clear prompts that can elicit intended code from an LLM. Thus, there is great interest in integrating pedagogical approaches for the development of both traditional coding competencies and the novel skills required to interact with LLMs. One effective way to develop and assess code comprehension ability is with ``Explain in plain English'' (EiPE) questions, where students succinctly explain the purpose of a fragment of code. However, grading EiPE questions has always been difficult given the subjective nature of evaluating written explanations and this has stifled their uptake. In this paper, we explore a natural synergy between EiPE questions and code-generating LLMs to overcome this limitation. We propose using an LLM to generate code based on students' responses to EiPE questions -- not only enabling EiPE responses to be assessed automatically, but helping students develop essential code comprehension and prompt crafting skills in parallel. We investigate this idea in an introductory programming course and report student success in creating effective prompts for solving EiPE questions. We also examine student perceptions of this activity and how it influences their views on the use of LLMs for aiding and assessing learning.
研究の動機と目的
- プログラミング教育におけるEiPE(平易な英語で説明する)質問の主観的で時間のかかる採点という長年の課題に対処すること。
- 学生の説明からコードを生成するLLMを用いて、スケーラブルで自動化されたコード理解力の評価方法を開発すること。
- 現代のプログラミングにおいて重要なスキルであるLLM向けの効果的なプロンプト作成能力を同時に育成すること。
- EiPEに基づくLLMプロンプトタスクが、従来のコーディング演習をはるかに超えて、学生の関与度とコード理解を高められるかどうかを検証すること。
- この手法が、多言語の説明サポートを通じて、英語が第二言語の学生を含む多様な学習者を支援する可能性を検討すること。
提案手法
- 学生にコード断片が提示され、その目的を平易な英語で説明するよう求められ、従来のEiPE質問を模倣する。
- 学生の説明をプロンプトとして提示し、コード生成LLMが対応するコードを生成する。
- テストスイートを用いて生成されたコードが元のコードと機能的に同等であるかを自動評価することで、客観的な評価が可能になる。
- 学生の説明の質を、コード要素の統合度に基づいてSOLOタクソノミーで分類する。
- 成功は、LLMが生成したコードがすべてのテストケースに合格するかどうかで測定され、正確な理解が示されたとされる。
- 本アプローチは、コード理解力とプロンプト工学の両方における形成的評価とスキル習得を支援する。
実験結果
リサーチクエスチョン
- RQ1学生が平易な英語でコード断片を説明する際、機能的に同等のコードを生成するプロンプトをどの程度効果的に作成できるか。
- RQ2SOLOタクソノミーのレベルで測定された学生の説明の質が、LLMが生成するコードの成功確率にどのように影響するか。
- RQ3学生は、従来のプログラミング演習と比較して、このLLM支援EiPEタスクに対してどのような評価をしているか。
- RQ4多言語の説明サポートを通じて、英語力に差がある学生に対しても、この方法が公平な評価を可能にするか。
- RQ5プロンプトの長さと構造が、LLMが生成するコードの信頼性と正しさにどのように影響するか。
主な発見
- 大規模なCS1の授業(n ≈ 900)において、学生はEiPE説明から機能的に正しいコードを生成するプロンプトを高い成功率で作成した。
- 複数のコード要素を意味的に統合した高水準の関係性に基づいた説明は、表面的または一行ずつ記述するような説明よりも、はるかに正確なコード生成の可能性が高かった。
- 学生は、この活動が関与度が高く、コード理解力の向上に効果的であると報告しており、多くの学生が学習にとって新鮮で価値のある体験だと感じた。
- 本手法により、EiPEの回答に対する自動的で客観的な評価が可能となり、長年の主観的採点の障壁が克服された。
- 中国語で書かれた6件の成功例が提出されたことから、本アプローチが多言語学習者を支援し、言語による評価バイアスを軽減する可能性があることが示された。
- 高い成功度にもかかわらず、プロンプトの信頼性にはばらつきがあり、同じプロンプトがときには正しく、ときには誤ったコードを生成することがあり、一貫性の向上が求められることが示された。
より良い研究を、今すぐ始めましょう
論文の読解から最終レビューまで、研究時間を劇的に削減しましょう。
クレジットカード登録不要
このレビューはAIが作成し、人間の編集者が確認しました。