メニュー

堺市で運営しているプログラミングスクールADVANCEの教室の様子

ChatGPTを教えるエージェントとして活用:プログラミング教育における効果と自己調整学習の向上

📌 この記事の結論

  • ChatGPTを教えるエージェントとして使うことで、学生の知識獲得とプログラミングスキル(コードの明瞭さ・可読性)が向上します。
  • エラー修正スキルの向上には限定的な影響で、ChatGPTが正確すぎるコードを生成するため、デバッグ練習の機会が減る可能性があります。
  • 学生の自己調整学習(SRL)能力、特に自己効力感と認知戦略が向上します。
  • 自然な対話を通じてAIを「教える」プロセスが、学生の学習意欲と深い理解を促す有効な教育戦略となり得ます。

1. プログラミング教育におけるChatGPTの新たな可能性

近年、ChatGPTのような生成AIの急速な発展は、教育分野に革命的な変化をもたらす可能性を秘めています。特に、学生がより主体的に学習に取り組むための新しいアプローチとして、「教えることによる学習(Learning by Teaching; LBT)」への応用が注目されています。

LBTは、他者に教えることを通じて自身の知識を深める効果的な学習方法ですが、これまでの「教えられるエージェント(Teachable Agent; TA)」は、その技術的な制約から自然な対話が難しく、学習体験に限界がありました。しかし、ChatGPTは人間のような自然な会話能力を持つため、この課題を克服し、より豊かなLBT体験を提供できるかもしれません。

本記事では、この可能性を探るための最新の研究論文「LEARNING-BY-TEACHING WITH CHATGPT: THE EFFECT OF TEACHABLE CHATGPT AGENT ON PROGRAMMING EDUCATION」を詳しく解説します。この研究は、プログラミング教育において、ChatGPTを教えられるエージェントとして利用することが、学生の知識獲得プログラミングスキル、そして自己調整学習(Self-Regulated Learning; SRL)能力にどのような影響を与えるかを調査したものです。

2. 紹介する論文の概要

📄 論文情報

タイトル LEARNING-BY-TEACHING WITH CHATGPT: THE EFFECT OF TEACHABLE CHATGPT AGENT ON PROGRAMMING EDUCATION
(ChatGPTを教えるエージェントとして活用する学習:プログラミング教育における教えられるChatGPTエージェントの効果)
著者 Angxuan Chen、Yuang Wei、Huixiao Le、Yan Zhang
掲載誌 arXiv:2412.15226v1 [cs.CY]
研究対象 大学生41名(コンピュータサイエンス専攻、C++プログラミングの基礎知識あり)
研究期間 2024年12月5日発表(プレプリント版)

研究の目的

この研究の主な目的は、ChatGPTを「教えられるエージェント」として使用することが、プログラミング教育における学生の「教えることによる学習(LBT)」プロセスをどの程度支援できるかを調査することでした。特に、従来のTAが抱える自然言語対話の制限を、ChatGPTの高度な会話能力がどのように克服し、学習効果を高めるかを探求しています。

研究の方法

研究では、41名の大学生を以下の2つのグループに分け、「八皇后パズル」のC++プログラミングを題材に学習を行いました。

  1. 実験グループ(EG; 20名)教えられるChatGPTエージェント(GPT-4ベース)を使ってプログラミング学習を行いました。学生はChatGPTに問題を解決するためのコードを教え、修正を指示しました。
  2. 対照グループ(CG; 21名):オンラインビデオ教材のみを使用して、自分でコードを作成し、問題を解決しました。

両グループともに、バックトラッキングアルゴリズムに関する基礎知識、八皇后パズルの説明、プログラミングによる解決方法を学ぶための3本のオンラインビデオを視聴しました。その後、1時間の学習セッションを経て、知識テスト、プログラミングスキル(擬似コード)テスト、自己調整学習(SRL)能力テストが実施されました。

3. 研究結果のポイント3つ

堺市で運営しているプログラミングスクールADVANCEの教室の様子

この研究から、ChatGPTを教えられるエージェントとして利用することの、プログラミング教育における具体的な効果と課題が明らかになりました。主要なポイントは以下の3つです。

✅ ポイント1:知識獲得の向上

実験グループの学生は、対照グループと比較して有意に高い知識テストスコアを示しました。これは、ChatGPT自然言語で概念やアルゴリズム(例:バックトラッキングアルゴリズム)を説明するプロセスが、学生自身の深い理解と知識の再構築を促したためと考えられます。

他者に教えるという責任感が、学生により多くの努力と反省的な学習を促し、結果として学習成果の向上につながったと結論付けられています。これは、教えることによる学習(LBT)が、自然な対話が可能なAIエージェントによってさらに強化される可能性を示しています。

✅ ポイント2:プログラミングスキルの特定の部分の向上と課題

実験グループの学生は、コードの明瞭さ(Clearness)と可読性(Readability)において対照グループよりも有意に高いスコアを記録しました。これは、ChatGPTにコードを生成させる際に、論理的な流れや他者が理解しやすいコメントの付け方を意識して指示する必要があったためと考えられます。例えば、PythonやJavaScriptで複雑な処理を書く際、単に動くコードだけでなく、変数名をわかりやすくしたり、関数にコメントをつけたりすることが自然と促されるでしょう。

一方で、コードの正確性(Correctness)においては、両グループ間に有意な差は見られませんでした。むしろ対照グループがわずかに高いスコアでした。これは、ChatGPTが完璧なコードを生成しがちであるため、学生が自分でバグを見つけて修正する機会が減少したことが一因として挙げられています。

この結果は、AIを教えられるエージェントとして使う場合、「あえて間違いを生成させる」など、学生がエラー修正スキルを養うための工夫が必要であることを示唆しています。

✅ ポイント3:自己調整学習(SRL)能力の改善

実験グループの学生は、対照グループと比較して、自己効力感(Self-efficacy)と認知戦略(Cognitive strategies)において有意な向上が見られました。

  • 自己効力感:ChatGPTの助けを得てプログラミングの問題を解決できた経験が、学生の「自分にはできる」という自信を高めたと考えられます。AIが学習プロセスをサポートすることで、難しいタスクへの挑戦意欲が向上したのでしょう。
  • 認知戦略:ChatGPTに教える過程で、学生はタスクを小さな部分に分解し、解決計画を立てるといった高度な認知戦略を自然と用いるようになりました。これは、現実世界の学習シナリオに近い経験であり、学生の計画力や問題解決能力を養うことにつながります。

この結果は、ChatGPTベースの教えられるエージェントが、学生の内発的な学習動機と、効果的な学習方法を自ら選択・実行する能力を促進する可能性を示しています。

4. ADVANCEの現場から見た実感

堺市で運営しているプログラミングスクールADVANCEの教室の様子
▲ ADVANCEの教室で学ぶ様子(イメージ)

堺市南区のプログラミングスクールADVANCEで実際にプログラミングを教えている講師としての意見は以下の三つです

🎮 現場で感じる3つの変化

「教える」ことによる理解度の深化

この論文の結果は、ADVANCEの教育現場でも強く実感しています。例えば、Scratchでゲームを作った後、他の生徒にそのプログラムの仕組みを説明させる場面があります。すると、単に動いたこと以上の深い理解が得られ、より複雑なゲーム制作への意欲も高まります。

AIとの協調学習の重要性

AIが生成するコードの「完璧さ」がエラー修正能力を阻害する可能性については、重要な示唆だと感じています。ADVANCEでは、Roblox StudioUnity (C#) でゲーム開発を行う際、講師が意図的にバグのあるコードを提供し、生徒にデバッグさせる機会を設けています。これにより、生徒は自力で問題を特定し、解決する力を養うことができます。

自己調整学習の自然な促進

自己効力感認知戦略の向上も、ADVANCEの目標とする教育効果と合致します。生徒が自ら目標を設定し、ゲーム制作の計画を立て、試行錯誤しながら課題を乗り越える過程は、まさに自己調整学習そのものです。ChatGPTのようなツールは、このプロセスをサポートする強力なパートナーとなり得ると考えています。

ChatGPTのようなAIツールは、プログラミング教育において単なる情報提供者ではなく、「対話的な学習パートナー」として大きな可能性を秘めていると言えるでしょう。ただし、その使い方には工夫が必要であり、学生が主体的に考え、問題を解決する機会を奪わないよう、教育的な設計が重要となります。

5. 保護者の方へ:家庭でできること

今回の研究結果から、お子様のプログラミング学習や一般的な学習において、ご家庭で実践できるヒントがいくつか見えてきます。ChatGPTのようなAIツールが身近になった今、ご家庭でのサポートも進化させていきましょう。

🏠

AIを「教える相手」として活用する

お子様が学習した内容について、ChatGPTに「ねぇ、この前習ったPythonの関数について教えてあげてみて」と促してみましょう。AIに説明する過程で、自分の言葉で整理し、理解を深めることができます。AIが「わからない」と答えたら、どう説明すれば伝わるかを考える練習にもなります。

📅

学習計画を立て、振り返りを促す

プログラミング学習に限らず、お子様自身に「今日は何を学ぶ?」「どうやって学ぶ?」「どこまでできたら終わり?」といった計画を立てさせることを習慣にしましょう。そして、学習後には「今日の目標は達成できた?」「なぜできた/できなかった?」と振り返る時間を設けることで、自己調整学習の能力が自然と育まれます。

👏

「間違い」を恐れない環境を作る

今回の研究でも示唆されたように、エラー修正はプログラミングスキルにおいて非常に重要です。お子様がコードで失敗しても、「どこがおかしいかな?」「どうすれば直せるかな?」と一緒に考えてあげる姿勢を示しましょう。間違いは学びの機会であるという認識を共有することが大切です。

🎮 ADVANCEで一緒にプログラミングを始めませんか?

堺市南区のプログラミングスクールADVANCEでは、Scratchからはじめて、Roblox、Unity(C#)まで段階的に学べます。

研究で効果が実証されたプログラミング教育を、ゲーム制作を通じて楽しく体験できます。

🕹️ ▶ ぼうけんを はじめる 無料体験会に申し込む! 🎮

6. 参考文献

  1. Chen, A., Wei, Y., Le, H., & Zhang, Y. (2024). LEARNING-BY-TEACHING WITH CHATGPT: THE EFFECT OF TEACHABLE CHATGPT AGENT ON PROGRAMMING EDUCATION. arXiv preprint arXiv:2412.15226.
  2. Chase, C. C., Chin, D. B., Oppezzo, M. A., & Schwartz, D. L. (2009). Teachable agents and the protégé effect: Increasing the effort towards learning. Journal of science education and technology, 18, 334–352.
  3. Biswas, G., Segedy, J. R., & Bunchongchit, K. (2016). From design to implementation to practice a learning by teaching system: Betty’s brain. International Journal of Artificial Intelligence in Education, 26, 350–364.
  4. Ogan, A., Finkelstein, S., Mayfield, E., D’Adamo, C., Matsuda, N., & Cassell, J. (2012). "oh dear stacy!": social interaction, elaboration, and learning with teachable agents. In Proceedings of the SIGCHI Conference on Human Factors in Computing Systems, CHI ’12, page 39–48, New York, NY, USA. Association for Computing Machinery.
  5. Markel, J. M., Opferman, S. G., Landay, J. A., & Piech, C. (2023). Gpteach: Interactive ta training with gpt-based students. In Proceedings of the tenth acm conference on learning@ scale, pages 226–236.
  6. Pintrich, P. R., & De Groot, E. V. (1990). Motivational and self-regulated learning components of classroom academic performance. Journal of educational psychology, 82(1), 33.
👨‍🏫

この記事を書いた人

ADVANCE 講師

堺市南区のプログラミングスクールADVANCEで、Scratch・Roblox・Unity等を用いたプログラミング教育を担当。子どもから大人まで幅広い年齢層への指導経験を持つ。