特集 学びの質向上に向けたICT活用の取組み(その2)

生成AIによるプログラミング・データサイエンス演習の学修支援

倉光 君郎(日本女子大学 理学部数物情報科学科教授)

1.はじめに

 AI技術の急速な発展は、多くの分野でその影響が議論されていますが、教育分野における影響は多大なものがあります。特に、ChatGPTのような生成AIが登場したことで、教育現場には新たな懸念が広がっています。これらの懸念には、AIの使用による学修効果の低下や不正行為の増加などが含まれます。しかし、同時に、このようなAI技術を積極的に活用することで、教育の質を向上させる機会も生まれています。
 筆者らの目的は、生成AI(ChatGPT)を用いてプログラミング演習の質を向上させることです。具体的には、生成AIを使ってプログラミング演習の学生の質問に対してアドバイスを生成する方法に焦点を当てます。筆者らは、AIを活用することで教員の負担を軽減しつつ、教員やティーチングアシスタント(TA)の手が回らない部分を補足することで、わからないままプログラミング学修を挫折する学生を減らすことを目指しています。
 本稿の構成は以下のとおりです。2節では、現在のプログラミング教育と課題を紹介し、3節では筆者等の開発したAIシステムを紹介します。4節では教育実践について報告します。5節でまとめと展望を述べます。

2.現代のプログラミング教育と課題

 近年、プログラミングに関心を持つ若い学生が増えているため、Jupyterノートブックのようなプログラミング学修に適したWeb環境が急速に普及しています。これにより、誰でも気軽にプログラミングを体験しやすくなっています[1]。しかし、本格的なプログラミング技能を獲得するためには、発生するエラーを自分で解決できる能力の向上が必要です。
 プログラミング言語は、ほとんどが海外で開発されているために、エラーメッセージは英語のままです。従来のプログラミングを専門技能として教えていた時代、英語をしっかり読んでエラーメッセージを解読することが求められました。しかし、現在のようにプログラミング学修が全学部全学科に広がり、さらに中学生や高校生も学び始めるようになると、まず「英語を解読せよ」という教え方は不可能になります。さらに、エラーメッセージの英文自体も、英語圏の利用者からみても専門用語が混ざった難解な文になっていてわかりにくいと指摘されています。
 このような状況で、経験豊富な教員やTAが近くにいれば、学生にとって大きな助けとなります。プログラミング演習の質問は、学生のリテラシー不足から生じる基本的な問題から、ハードウェアの不具合やアルゴリズム選択などの高度な問題に至るまで多岐にわたります。これらの質問に適切に答えるためには、幅広い知識が必要です。しかし、経験豊かな教員やTAの数は限られており、学生たちが気楽に質問できる機会も十分ではありません[2]

図1 プログラミング演習の様子

3.KOGI:対話型学修支援AI

 筆者らは、2019年頃より大規模言語モデル(LLM)を使って、対話AIがエラーに対するヒントを生成する学修支援システムKOGIを開発してきました[3][4]。KOGIは、Jupyterノートブックなどの標準的なプログラミング演習環境に統合され、エラーが発生したときに、自動的に対話ボットとして現れるようになっています。

図2 KOGI 対話型学習支援AI

 学生は、解決策がわからないときに、対話ボットに対して「どうしたらいいの?」などの質問を入力します。すると、KOGIが発生しているエラーなどの情報を自動的に追加して、大規模言語モデルと通信し、アドバイスを生成してくれます。学生は、教員やTAを探すことなく、いつでも的確なアドバイスが受けられるようになります。もし、アドバイスがわかりにくいときは、質問を追加することもできます。
 KOGIの特徴の一つは、学生が親しみやすく質問しやすくするようにキャラクター(ペルソナ)を導入している点です。キャラクターの設定は、TAが研究室で飼っている犬となっています。当初、筆者らが開発していた独自の大規模言語モデル(LLM)は、教員やTAの役割を果たすには精度が不十分でした。しかし、2022年12月にOpenAI社が開発したChatGPTを採用したことにより、誤回答の発生はほとんどなくなりました。学生たちが友達感覚で質問しやすくするため、筆者等は、引き続き、KOGIのキャラクターで学修支援を提供しています。

4.教育実践と導入効果

 KOGIは、2023年4月より、本学の理学部数物情報科学科の次の2つのプログラミング演習科目から導入されました。
 「アルゴリズムとデータ構造」(2年生、2単位、履修者数80名):この授業では、基本的なプログラミング技術(入出力、条件分岐、繰り返し、関数の定義、リストや文字列の操作、ソートなど)を学びます。課題には締め切りがなく、学生は自分のペースで問題を解くことができます。提出されたコードは自動で採点され、すぐに正解か不正解かがわかります。
 「機械学習」(3年生、2単位、対面形式、履修者数60名):この授業では、2年次に学んだPythonプログラミングの技術を活用し、データ可視化や回帰分析などのデータサイエンスの基礎から、機械学習の初歩的な課題に取り組みます。授業はまず講師の解説と実際にプログラミングを行うハンズオン演習から始まり、後半45分は自分で応用問題に取り組む形式です。
 筆者らは、プログラミング演習の環境として、Google社のGoogle Colab(Jupyterノートブックのクラウド版)を使用しています。同様なプログラミング環境を採用した演習であれば、特別な設定なくKOGIは導入可能です。8月以降、中高生向けの情報オリンピック委員会アルゴリズム講習会、本学外の演習科目でも採用は広がっています。
 筆者らはKOGIを導入する前、学生たちのAIへの過度な依存や不正利用を心配していました。しかし、KOGI導入後の最初の1週間の利用統計を分析した結果、予想外の傾向が明らかになりました。140人の受講生のうち、30%がKOGIを一度も利用して質問することがなく、また効果的にKOGIを使用していると判断できる学生の割合は10%に満たないことが判明しました。
 さらに、プログラミング演習後に受講生から集めた自由感想文のフィードバックについても定量的な分析を行いました。図3は、これらのフィードバックから、エラーについての報告件数を週ごとに集計し、全体に占める割合を比較したものです。KOGI導入前の2021年度では、多い週で30%以上の学生がエラーについて悩みを報告していました。しかしKOGIの支援を導入したことで、毎週1、2人がエラーについて述べる程度に減少しました。学生から教員に対する質問内容も、プログラミングのより本質的な疑問に関するものが増えました。教員やTAの立場では、エラー対応の負担が軽減し、より本質的な内容に集中できるようになりました。

(a)最初の一週間のAIへの問い合わせ回数の度数分布 (b)自由フィードバックにおけるエラーの相談の比率
図3 学修支援に対する効果

5.まとめと展望

 デジタル時代になり、ほとんどの仕事でデジタル技術が求められるようになってきました。特に、プログラミングは、アプリ開発だけでなく、データサイエンスやデジタル創作などの分野でも重要な技能です。多くの若い学生や保護者が、この技能を学びたいと関心が高まっています。
 本稿では、プログラミング・データサイエンス演習へのChatGPTの導入を行った経験を紹介しました。筆者らは、ChatGPTをプログラミング演習環境に統合したKOGIを開発し、リテラシーが不十分な学生でも生成AIへアクセスしアドバイスを受けやすく工夫しました。KOGIを活用した学生からのフィードバックを分析した結果、エラーで学修を進めなくなる学生は明らかに減少しました。最後に、ChatGPTを教室で運用して得られた経験から展望をまとめておきます。
 ChatGPTは優れた大規模言語モデルですが、教育専用ではありません。ChatGPTは、膨大な量のテキストを学習し十分な知識を獲得しています。さらに、適切な対話ができるように訓練されています。しかし、教員の代わりになるように特別に設計されているわけではありません。教育現場で重要なのは、学生の疑問や理解度を見極めて、学力向上に役立つような回答をすることです。最近、国内でも大規模言語モデルの開発基盤が整い、より教育用途のAIの開発に期待が持てるようになっています。
 AI時代の教育では、学生たちの倫理教育も大切になるでしょう。教員は、往々にしてAIによる不正を心配して、全体的に使用制限をかけることがあります。しかしながら、不正行為をする学生は、AIの有無に関わらず不正をするでしょう。学生たちにAI活用の可能性と不正利用のリスクについて正しく教え、学生一人ひとりが正しくAIに向き合えるようにするのが大切だと言えるでしょう。

謝辞

 本研究は本学倉光研究室の小原百々雅さん、佐藤美唯さん、小原有以さんの多大な協力と、JSPS科研費の助成23K11374を受けて行われました。

参考文献
[1] Michael Kölling, Neil C. C. Brown, Hamza Hamza, and Davin McCall. Stride in bluej - computing for all in an educational ide. In Proc. of the 50th ACM Technical Symposium on Computer Science Education, SIGCSE ’19, pp. 63-69, 2019.
[2] 萩谷昌己. 情報教育の格差と, 情報学分野の参照基準: 情報教育の基盤となる学問としての情報学. 情報管理, 59(7):472-478, 2016.
[3] Kimio Kuramitsu, Yui Obara, Miyu Sato, and Momoka Obara. 2023. KOGI: A Seamless Integration of ChatGPT into Jupyter Environments for Programming Education. In Proc. of the 2023 ACM SIGPLAN International Symposium on SPLASH-E. pp. 50-59, 2023.
[4] Momoka Obara, Yuka Akinobu, Teruno Kajiura, Shiho Takano, and Kimio Kuramitsu. A preliminary report on novice programming with natural language translation. In IFIP WCCE 2022: World Conference on Computers in Education, 2022.

【目次へ戻る】 【バックナンバー 一覧へ戻る】