「チャットベースの生成AIを使った効果的なプログラミング学習方法を探る」都立高校探究学習

2024-08-28

都立高校

昨年度から引き続き2024年度も東京の多摩地区にある都立高校で2年生の探究の授業に協力しており、2024/7/17(水)に最終報告会が開催されました。本記事では、報告会の様子を中心に、高校生のみなさんがつくったスライド画像を交えて探究活動の様子を紹介します。

今回、高校生のみなさんに提示したテーマは以下のふたつです。

  • テーマ①:チャットベースの生成AIを使った効果的なプログラミング学習方法を探る
  • テーマ②:①を踏まえて、小学生が全員体験する「プログラミング」はどのようなものがいいかを考える

2022年の生成AIの大ブレイクを経て、プログラミング体験が劇的に変わってきています。K3Tunnel開発チームでは、アプリ開発で生成AIを活用しているため、日々そのことを実感しています。プログラミング体験が変化していく中で、これからK3Tunnelで提供するコンテンツはどうあるべきか、という課題意識を持つようになりました。

中でも「生成AIがあたりまえに存在する世界でプログラミングスキルを学ぶこと」がどういう体験になるのかというのは、すでにプログラミングができる私たちの視点では気づかないこともあるかもしれないと考えていました。そんな折に、高校生へのテーマ提示の依頼をいただいたのです。高校生から意見を聞くことで、新しい発見があるのではないか、高校生にとっても最先端のトピックにふれることは楽しく学べる体験になるのではないかと考え「チャットベースの生成AIを使った効果的なプログラミング学習方法を探る」ことをテーマの中心として提示してみました。

このテーマに取り組んだのは4チーム。各チーム5-6名で構成されており「プログラミングは授業でやった程度」という人が大半を占めていました。

テーマ①を中心にそれぞれのチームの内容を紹介したいと思います。

人を動かすプログラミングで検証するチーム

このチームは、生成AIを使ったプログラミング学習の効果を検証するために「人を動かすプログラミング」で実験してみていました。 いわゆるプログラミングではなく「作業を指示する文章だけの説明」をプログラムコードに見立て、その説明にしたがって他のチームメンバーが作業を行い「説明作成者が意図したとおりに動けるか」を検証するというものでした。

題材として選んだのは、道案内と折り紙で、以下2つの方法でつくった説明を比較していました。

  1. 生成AIを使った勉強をせずに自分たちで説明をつくる
  2. 自分たちがつくったものと生成AIがつくったものを比較して勉強して説明をつくる

大した差ではないものの「生成AIを使わない説明のほうが作業する人はやりやすかった」という結果だったようです。「生成AIを使ったほうがよい」という結論を期待していたのにそうはならずやや残念そうではありましたが、楽しみながら探究していた様子が伝わってきました。

折り紙はどちらも意図していたものは作れなかったとのことです。残念…。 2024 06 tankyu origami

多くの文脈を共有している同級生同士での日本語での指示だったので、生成AIよりも自分たちで作成した説明のほうがわかりやすかったのかもしれないなと思いました。私たちにはない視点での検証で大変興味深かったです。

生成AIを使ったプログラミング学習については、以下のような意見が出されました。

  • 生成AIを使うより、話し合ったり、自分で調べたりして考える方が効果的に学習できる
  • 生成AIに聞いて理解できる人には向いている

「生成AIで学ぶ」こと自体を難しく感じたようです。

Webサイトやアプリを作ってみるチーム

このチームは、PythonやRubyを使って簡単なゲームなどをつくってみていました。

「pythonでウェブサイトを作りたい」「pythonでテトリスをやりたい」「pythonでまるばつげーむつくりたい」「Rubyで簡単なゲームを作って」など、ざっくりしたお願いからスタートして、追加質問をしてプログラミングを進めたようです。 2024 06 tankyu game

生成AIを使ったプログラミング学習の利点について、以下のような意見が出されました。

  • 0から作り方を模索しなくてもよい
  • スムーズに制作を進められる
  • ミスがあれば指摘してくれる
  • 比較的難易度が低いから小学生でもできる

一方で課題として以下をあげていました。

  • そもそもコードを打てるように設定するのが難しい
  • エラーの場所を教えてもらっても改善が難しい
  • ある程度コードの意味が理解できていないとただAIが教えてくれたものをうっているだけになっている

ある程度の基礎知識が必要というのはこのチームだけでなく、全チームで共通しての意見でした。

2つの観点で比較してみたチーム

このチームは、2つの観点で、グループにわけて比較してみていました。

  1. 教科書や生成AIを使って関数などの構文を学んで1からつくる「構文」グループと大体のコードを生成AIに書いてもらってそこから学んでいく「大枠」グループとで比較
  2. PythonのList関数を例にAIが作ったゲームのコードから学ぶ「実用的な例で学ぶ」グループと「情報Ⅰの教科書で学ぶ」グループとで比較

それぞれの検証結果は以下の通りとのこと。

  1. 「構文」VS「大枠」

2024 06 tankyu 01

  1. 「実用的な例で学ぶ」VS「情報Ⅰの教科書で学ぶ」

2024 06 tankyu 02

生成AIを使ったプログラミング学習の利点について、以下のような意見が出されました。

  • 基礎的なことは自分で学ぶ必要がある
  • AIのみだとプログラミング学習に効果的ではなく、自分の知っている知識を発展させるために補助的に使うのがよい

このチームもやはり「基礎を身に着けてから生成AI」という意見でした。

プログラミングにおいて必要な力を考えたチーム

このチームは、生成AIを使ったプログラミング学習の効果を検証するために、以下のようなプログラミングにおいて必要な力を考えたうえで検証に臨んでいました。

2024 06 tankyu literacy

生成AIを使ったプログラミング学習の利点について、以下のような意見が出されました。

  • 知識不足や細かなミス、エラーを的確に添削してくれる
  • 基礎を応用させた、実用的で自由なコードを試すことができる
  • コードの組み方、形式を学んでいると、応用した内容も理解できる

課題としては以下のような意見が出されました。

  • (初めての言語だったので)構造を理解していないため、自力で再現できない
  • コードの形式がわからないままだと、学んだ内容を応用しずらい

このチームもやはり「基礎知識がないと生成AIだけでは学習できない」という意見でした。

このチームは、さらに「自分たちが知識を十分にもっている分野で生成AIを使うとどうなるか」についても試してみていました。その結果も踏まえて、生成AIを使ったプログラミング学習をするには、

  • 聞くべきことを見つける力
  • 聞きたいことを言語化する力
  • たくさんの情報を取捨選択する力
  • 情報を理解する力
  • 情報を活用する力

が必要であるという考察を発表してくれました。生成AIがより活用される世の中で必要とされる力が示唆されているように思えます。

おわりに

発表会がひととおり終わった後、チームごとにふりかえる時間をとって、黒板にそれぞれ感想を書いてもらいました。(クリックすると別ウィンドウで拡大表示されます) 2024 06 tankyu board

他チームの感想をみて、共感したり新たな発見があったりしたようです。各クラスから希望者が集まっての探究活動で初対面からのスタートだったため、活動開始当初はコミュニケーションに苦労している様子もうかがえましたが、最後はチームメンバーで協力している様子が伝わってきました。私たちも多くの学びを得ることができました。ありがとうございました。

みなさん、3か月間おつかれさまでした!

※ 昨年度の様子はこちらで紹介しています


今野 奈穂子
K3Tunnelの中のヒト。つくるのが好き。100回以上の出張授業講師を経験。