イベントレポート
約30年前のインターネットの出現以来、大学は未踏の技術課題・社会課題に立ち向かうIT人材の育成を支えて続けてきました。しかし、その後の急速なテクノロジーの進化は、教育現場にさらに大きな変革を求めています。デジタル教材の増加、オンライン教育の普及、プログラミング教育の義務化、LMSによるデータ分析と学習支援、生成系AIの活用など、教育の在りようは今後もテクノロジーの進化と共に変化せざるを得ません。
本セミナーでは、プログラミング教育にフォーカスを当て、現在のプログラミング教育と今後の進化について、さらに生成系AIをツールとして利用することが当たり前となった社会を前提に、中・高・大学と連携するプログラミング教育の全体像について、識者と参加者の皆様との情報交換や意見交換を通じて、議論を深めていきます。
- 開催日時
- 2023年11月28日(火)14:00~17:30
- 開催方法
- 会場(TKP東京駅カンファレンスセンター)
オンライン(Zoom Webinar) - 主 催
- CAUA
講演内容
オープニング
西村 浩二 氏(広島大学 情報メディア教育研究センター長 教授、CAUA副会長)
プログラムコードが自動的に生成できるという生成AIの登場は私にとっても衝撃でした。しかし、プログラムとソフトウェアはイコールではありません。ソフトウェア工学が対象とするのは、数万行以上の大規模ソフトウェアであり、多人数で開発するソフトウェアであり、作る人と使う人が異なるソフトウェアであり、作った後もメンテナンスが必要になるソフトウェアです。
そのようなソフトウェアを生成AIが作れるのでしょうか。そこで、ChatGPTを使ってPythonによる図書館システムの開発を試みました。「Pythonで図書館システムを作ってください」とプロンプトを入力すると、Book Class、Patron Class、Library Classを含む62行のプログラムを作ってくれました。「これに利用者のデータベースを組み込んでください。データベースシステムとしてはSQLを使ってください。利用者は、教職員と学生で分けてください」と指示すると、要求を満たした58行のプログラムを生成します。さらに、「貸出と返却の機能を付加してください」と指示すると、74行のプログラムを付け加えてくれました。
しかし、これでは実際の図書館システムは作れないでしょう。例えば、早稲田大学の図書館システムは20万行規模です。生成AIが1つのプロンプトで100行程度のプログラムを生成するとしても、2,000ものプロンプトの入力が必要になります。何人かで分担するのも現実的には非常に困難です。
では一般的な汎用の生成AIではなく、プログラミングに特化した生成AIを使えば可能でしょうか。GitHub Copilotは生成AI搭載のコーディングアシスタントであり、ペアプログラミングの相棒になってくれます。しかし、生成AIの大きな欠点としてハルシネーション(幻覚・錯覚)の問題があります。生成されたプログラムは必ず正しいわけではないのでテストが必要です。テストプログラムも生成AIが作ってくれます。そのプログラムも間違っている可能性がありますが、生成AIでデバッグも行えます。しかし、どんなテストをどのくらい行えばよいかというソフトウェア工学上の問題は、生成AIでは解決できません。
生成AIの宿命は、過去の一般的な質問から一般的な答えを出すことしかできないということです。企業の要求やシステムの特殊性を反映するには、徹底したプロンプティングで解決するしかないでしょう。また、ハルシネーションを前提として議論しなければならない問題もあります。AIで生成したものを誰かが点検する必要があり、本当かどうかを確かめなければなりません。誤りを見つけても、まだ誤りがあるかもしれません。結局、誤りは生成AIの責任ではなく人間の責任です。AIで生成されたものを人がきちんと評価する。そのための教育をきちんと行わなければならないということだと思います。
人口減少の中、DX化して課題解決していかないと、今まで当たり前だった生活ができなくなる時代になります。そうした時代に生きる子どもたちに必ず持ってほしい基礎要素として、弊社では「デジタルイノベーターの3要素」を定めています。デジタルイノベーターとは、「課題を自ら設定」して、「次世代のテクノロジーを活用」して、「社会を良くするアクションまで実現」できる人材のことです。これらはAIの時代になって、より強く求められる要素だと考えています。
AIの登場で教育に根本的な変化が起きていると感じています。そもそも、知識生産の価値自体が変わってきました。まだ不十分な部分はありつつも、AIで統合的な知識の創造が可能になります。教員の役割もこれまでティーチングからファシリテーションへと変化してきましたが、今後ファシリテーションすらAIで可能になります。その時もメタ的な学習デザインや意思決定は教員の役割として残ります。また、現場での認知や心理的なフォローも今まで以上に求められてくるでしょう。
評価方法も変わってきます。これまでのような知識を問うテストやレポートでは、人とAIで見分けがつかない状況になってきました。学習のプロセスに対し子どもたちが成長していくためのフィードバックを行い成長を促進していくことに、評価の役割が変わっていくのではないでしょうか。これまでは教育格差の原因は人の能力や人材不足にあるとされてきましたが、今後はAIやテクノロジー活用の格差が教育格差につながります。生成AIの登場を機に、教育全体をどうしていくのかという観点で議論する必要があると思います。
イノベーション人材を育成するには、どのような教育が必要になるのでしょうか。
第1に、「好き」「やりたい」を意識させること。決まったものを作るのならAIに頼めばできる時代なのですから、自分は何を作りたいのかという課題設定がとても大事になります。第2に、まずは「触ってみる」「作ってみる」ということ。プログラミングが入試に出るからマーク式のテストさえ正解しておけばいいということではなく、実際に手を動かして、「楽しい」「つくれた」と感じることがAI時代に必要な体験です。第3に、「半径50cmの課題解決を重ねる」こと。お弁当を作るのが大変なお母さんを助けるアプリや、先生を支援する席替えのアプリなど身近な課題解決から始めて、次は地域のこと、次は社会のこと、と課題解決の輪を広げていきます。
例えば、弊社のプログラムに参加して席替えアプリを作成した子は、そのあと自閉症の子どもを支援するアプリを作成し、高校卒業した時点で受託のアプリ開発やWeb開発を行う会社を起業しました。イノベーション人材育成で大事なことは、学んで、創って、使ってもらって、フィードバックを受けるという課題解決のサイクルをまわすことだという仮説を持っています。
世の中は子どもたちに即戦力化を求めすぎなのではないでしょうか。習熟のステップを設けながら課題解決のサイクルをまわすことが必要です。中学校で1周目、高校で2周目、そして3周目の大学でより高度な技術を学び、PBLなどを通じて実地の経験を積むことで、大学卒業時に即戦力になる。大学だけでなく、中学、高校でもこうした学びのサイクルをまわしていくことを、全国の自治体や学校とも協力して実現したいと考えています。
弊社では、AIビジネス部と技術戦略室が共同で「AIタスクフォース」を結成し、社内のガイドラインの策定や検証環境の展開などを行っています。実際のサービス開発については社内の開発現場の各所で進めています。アドバンストテクノロジー第2部では、昨今のIT需要の拡大による人的リソースの枯渇という課題解決に生成AIの活用が有効だと考え、今期は2つのテーマで検証を実施しています。
1つ目は開発効率化です。設計情報を生成AIに与えて、期待するアプリのコードが自動で作成されるかという検証を行っています。具体的にはデータベースの検索やCRUD処理をするアプリのコードを生成しました。テーブル設計情報を与えて、テーブル定義の生成をChatGPT 4.0に指示すると、そのまま使えそうなコードを出してくれました。
次にDBアクセスをするJavaのエンティティクラスを生成させましたが、元々の設計情報にないものが混ざったり、指示した情報が抜け落ちたりする結果となりました。さらに、間違いを指摘するプロンプトを繰り返せば繰り返すほど間違いが多くなる現象に陥ってしまいました。単純な利用では、多数の項目を正確に生成するなどの処理には限界があると見てとれます。
2つ目は人材育成です。新人に生成AIとペアプログラミングをさせたら、先輩と同等のレベルの即戦力になりうるのかという検証です。さらに、中堅のメンバーがAIを使ったら生産性が上がるのか、品質の観点でAIを使ったらバグ件数やレビュー指摘件数が減るのか、という検証も行っています。まだ最終結果までは出ていませんが、現時点では期待ほどの成果には達していません。
わからないことを聞くという検索のような使い方だとAIの力を引き出せません。AIが作るものを人がサポートするといったカルチャーチェンジが必要で、うまくいかないところも様々なやり方を試してみるという発想が大事だと感じています。
GitHub Copilotを使うと、例えばgenerate_random_numberというメソッド名を入力するだけで、コードが簡単に生成されます。VScodeだけでなく、VimでもEmacsでも様々なエディターで使えます。しかし、GitHub Copilotは自動プログラム生成AIではありません。GitHubのページにも、「Your AI Pair Programmer」、つまりペアプログラミングの相手だと書かれています。
大学におけるプログラミングの講義は、いわゆるリテラシーを身に付けることがゴールになっています。プログラムを読んで意味が理解できるようになり、その結果として書くことができるスキルを得る。大学では単位を認定するために一定水準の技術を習得していることを認定する必要がありますが、これ以外の手法は認めないとか、この方法を使いなさいなど、小・中学校における掛け算順序問題のように、安易に評価しようとすればするほど、学生の好奇心を台なしにするような内容になってしまいます。
学生とは様々な取り組みをしています。日本を代表するプログラミングコンテストの「AtCoder」への参加もその一つです。競技プログラミングも一人でやるとつらいけれど、みんなでやるとすごく楽しい。毎週土曜日の午後9時から開催されており、100分で簡単な問題から難しい問題まで7本の問題を解いていく。解けた問題数で点数が付けられ、それによってランキングが付与されるというものです。ある一つの好奇心を持っている同好の士が、オンライン、オフラインを問わず同じ時間帯に集まって黙々と作業を行う「もくもく会」という会合も研究室で実施しています。
AIと教育をどう考えるかよりも、セキュリティ的あるいはコンプライアンス的な問題として考えることが大事だと思います。より高度な技術を敏捷性高く獲得できるときに、それを適切な、合法的な方向に使ってほしい。そうした問題を解決するのは、結局のところリベラルアーツであり、独学ではなく、座学でもなく、友達との会話、対話、議論によって培われていくものだと考えています。
パネルディスカッション
「AI時代のプログラミング教育」
コーディネータ
中村 豊 氏(九州工業大学 情報基盤センター 教授、CAUA運営委員)
パネリスト(五十音順)
- 柏崎 礼生 氏(近畿大学 情報学部 情報学科 准教授)
- 神永 雅晃 氏(伊藤忠テクノソリューションズ株式会社 アドバンストテクノロジー第2部 部長代行)
- 讃井 康智 氏(ライフイズテック株式会社 取締役 CEAIO(最高AI教育責任者))
- 深澤 良彰 氏(早稲田大学理工学術院 基幹理工学部 教授、CAUA会長)
本シンポジウムの最後のプログラムとして、CAUA運営委員の中村氏の司会によるパネルディスカッションが行われました。
今回はオンラインで寄せられた質問が非常に多く、文部科学省のガイドラインや学習指導要領に関することから、授業や評価など教育現場の実務課題についてまで、多様な議題が提示されました。前半はそれらの質問に回答する形で議論が進められました。後半の討論では、生成AIを使ったプログラミング教育の見通しや技術の進歩について、パネリスト各氏が語りました。
深澤氏は、「何かを理解するフェーズで生成AIは効率的だが、それをもとに何かを実行するフェーズではまだまだ」との見解を示し、その点において教育の役割が問われていると話しました。柏崎氏は「新しい技術は権威を壊してくれる」として、膠着化した価値を変化させる存在として生成AIを位置付け、技術の発展が果たす役割に期待を寄せました。
「義務教育段階では単にコードを写すような時間は少なくていい。自分が作りたいものを考えて、コード生成はAIに手伝ってもらい、最終的に動くものに仕上げるという経験が大事」と語ったのは讃井氏で、コードを書く前後に教育の比重を移してもいいのではとの提案がありました。神永氏はIT企業の立場から、仕事現場でのAIとの協働について、「学生時代に、コードが書けなくても生成AIを使ってデジタルを実現し、その正しさを人間が検証するプロセスを経験できれば、入社後のAIとの役割分担がスムーズになる」と指摘しました。
こうした議論の最中にも、オンラインで次々と質問が追加されるなど、パネルディスカッションは活況を呈し、約1時間のプログラムを終了しました。活発な議論はそのあとの情報交換会まで続きました。
クロージング
野村 典文 氏(周南公立大学 教授、広島大学 特任教授、CAUA運営委員長)