事例343

生成 AI を活用したプログラミング教育の実践

東京学芸大学附属高校 飯田秀延先生

新たな言語習得の負担を軽減するために、生成AIを活用する

本校1年生の「情報I」の授業において、プログラミングの学習は、2学期の初めから10時間前後で行っています。多くの学校より少々多めかもしれません。

 

※クリックすると拡大します。

 

昨年度のプログラミングの授業では、Pythonを6時間、Processingを4時間行いました。

 

Pythonの学習では、全員で情報オリンピック予選の課題に取り組みました。一方で、プログラミングの学習の最後に「プログラミングは楽しい」という印象を持ってもらうためにProcessing(※)で動画やゲームの作品制作を行いました。

 

https://processing.org/

 

やってみると、確かにProcessingは楽しいのですが、プログラミング初学者にとってはPythonの学習に加えて、新たな言語(Processing)を習得しなければならないことになります。ある程度のプログラミングのスキルがないと「こういうことがやりたい」と思っても、スキルが足りないと実現できません。かと言って、新しい言語をもう一度最初から学び直すほどプログラミングに時間をかけることもできません。

 

そこで、今回は新たな言語習得の部分を生成AIで補助することで、「やりたいこと」を実現するためのスキルを補えないか、ということを試してみた、という実践です。よくある「生成AIでノーコードプログラミング」を行うのではなく、あくまで新たな言語習得の補助として生成AIを使う、という位置付けです。

 

 

今回の実践の目的は、先ほど申し上げたように、新たなプログラミング言語を習得する負担を軽減して、生徒がやりたいことの実現に導くことによって学習効果が高まるのではないか、ということを検証することです。

 

制作時間はProcessing の学習を含めて4時間、評価は「技術」「努力」「芸術性」の観点で、各5段階の相互評価を行いました。

 

制作過程では何を調べてもよい、友達に聞いてもよい、生成AIを使っても使わなくてもよい、ただし公序良俗に反しないように、という条件で行いました。

 

【生徒の作品紹介】

生徒は非常に楽しく取り組み、いろいろな作品を作ることでできました。相互評価はギャラリーウォーク方式で行いました。1人1台パソコンに表示したものをポスターセッションのように制作者がアピールし、それを見て回って、お互いに評価をするという方式です。

 

 

大多数の生徒が相談相手としての生成AIの有用性を実感。自分の考えを深めることにもつながる

 

授業後のアンケートで、実際に生成AIを使ったかを聞いてみると、9割弱の生徒が使っていました。

 

使わなかった生徒の理由もいろいろあって、「あえて自分の力のみでやってみたかった」「使うまでもなくやりたいことが実現できたから」といったような積極的な理由で使わなかった生徒もいましたが、一方で「やってみて、嘘っぽいからイヤだ」とか、「そもそもログインができなかった」いう生徒も5%ほどいました。

 

あとは、「これは先生の罠で、これを使うと減点するに違いないと思った」という生徒が1人いました(笑)。どれくらいの割合で使ったかは別として、結果的に、ほとんどの生徒が使ってみたようです。

 

 

生成AIを使った理由の主なものとしては、「Processingの使い方の細かいところが分からなくて、ヒントがほしかった」ということでした。ただ、全て任せるのでなく、「こだわりたかったところは、自分で調整した」といったような使い方をしている生徒も少なからずいました。「試しに使ってみたら言うことを全て聞いてくれて嬉しかった」という生徒もいました。

 

 

生成AIを使ってみての感想は、半数の生徒が肯定的なものでした。そして、肯定・否定両方の感想を答えた生徒と合わせると、大多数の生徒が生成AIに対して肯定的に評価していました。逆に「全然駄目」といったような否定的な感想のみを答えた生徒は16%でした。

 

 

生徒たちの具体的な感想をいくつか紹介します。「使ってみて良かった点」としては、「自分の思い描くものを作らせるのは難しかったけれど、逆に思いも寄らなかったアイデアが出てきた」とか、「抽象的な要望でも答えてくれる」「お願いすると、ちゃんと言うことを聞いてくれた」ということで、生徒自身もプロンプトの入れ方をだんだん学習していたようです。

 

 

他にも、「かなり想像どおりのコードを書いてくれたのでよかった。以前の文脈を読み込んでコードを書いてくれた」というものがありました。

 

印象的だったのが、こちらの赤字のコメントです。これを書いた生徒は、Pythonでは、実行するとまず英語のエラーメッセージが出てきて、それを読んで頑張ってデバッグするという、我々にとっても非常に苦痛な時間があって、心が折れていたようですが、生成AIが出してきたコードであれば最初から動いてくれるので「実行ボタンを押すのがワクワクして楽しかった」と言っていました。

 

 

生徒は、生成AIの存在を、「隣の人や、2、3人でやっているときに、1人ちょっと詳しい人がいて、いろいろ教えてくれるような感じ」ととらえていて、ペアプログラミングで相談に乗ってもらう感覚だったようです。8割以上の生徒が、「生成AIをプログラミングの補助に使うことによって、自分の考えを優先しながらAIを活用できた」「AIを使いながらも、自分の知識を深めることができた」と答えてくれました。

 

 

生徒の感想からも、新たなプログラム言語を習得するときに生成AIを補助的に活用することにより、やりたいことが実現でき、それによって学習効果を高められることは、大いに期待できると感じられました。

 

ただ一方で、やはり基本的なコーディングの知識は必要だと思います。

 

今回も、Pythonの学習を6時間しっかりやった後にProcessingで生成AIを使ったので、Pythonの学習によってプログラミングの基本は押さえられていたと考えています。

 

 

プログラミングが得意な生徒は、本当に生成AIをうまく使いこなせるのか?

 

プログラミング教育の場や、プログラマーの現場では、もともと「基本的なコーディング知識は必要」と言われてきました。

 

こちらは、6月8日のYahoo!のニュースに出ていた記事です。「プログラミングが得意な生徒ほど生成AIをうまく使いこなせるか」という実験をした、という記事です。

 

この記事によれば、「コーディングの初心者は、生成AIに振り回されていた」「ある程度AIをうまく使えている生徒は、そこそこコーディングの知識がある」など、我々が「そういうものだ」と思っていた通りの結果でした。

 

 

そこで、今回は、「プログラミングが得意な生徒ほど生成AIをうまく使いこなせる」という仮定に基づいて、生成AIを使ったProcessingのプログラミングの相互評価の結果と、この後に行った期末考査「情報I」のプログラミングの得点の関係を分析してみました。

 

本当は「プログラミングの相互評価と期末考査の得点には相関がありました」という発表をしようと思ったのですが、相関係数は0.21で、「ほとんど関係がない」と「やや関係がある」の中間くらい、全くないよりは多少あるかな、といった程度でした。

 

それなら、プログラミングの評価が上位の、やる気がある(とみられる)生徒だけで見ればどうか、ということで、相互評価の上位100人で相関を取ると、相関係数0.06とさらに低くなります。では下位の生徒はどうかというと、これも全然関係がない。

 

逆に、期末考査の成績上位と下位で、それぞれAIをうまく使いこなせたかどうかを調べてみました。期末考査の成績上位の生徒におけるプログラミングの成績の相関も「ないことはない」という程度でした。

 

※クリックすると拡大します。

 

これらの結果から、今回の授業について言えば、最初の仮定の「プログラミングが得意であること」と、「生成AIをうまく使いこなせること」というのは、あまり関係がないかもしれない、ということになります。

 

 

ひょっとすると、プロンプトの書き方の良し悪しが関係するかもしれない、ということで、国語の成績との相関を調べてみました。結果、相関係数は0.10で、先ほど「情報」の相関係数が0.21でしたから、もっと低い。近いのが「地学基礎」と「歴史総合」(0.20)くらいでした。

 

あくまで今回の授業に関しての結果ですけれど、生成AIをうまく使うことと学校の成績にはあまり関係がないという結果になりました。

 

この発表にあたって、かなりいろいろとデータを精査してみたのですが、これといった相関関係は見つかりませんでした。

 

 

困ってしまって、同僚に相談したところ、「それこそ生成AIに聞いてみたらどうか」と言われたので、聞いてみました。

 

こちらが生成AIの評価です。「学習アプローチが違うんじゃないか」「興味や動機が違うんじゃないか」「成績評価がおかしい」「教育カリキュラムがおかしい」等など。

 

あとは、個々の適性や才能云々と言っていますが、要するに、私もうすうす感じていたのですが、「今回の評価基準が良くない」ということのようです。

 

 

生成AIをうまく使うということに対する評価をどうするのか、というのは悩ましいところです。

 

つまり、我々は生成AIを使って出てきた作品(アウトプット)は評価できますが、そのために生成AIをどれだけうまく使ったのか、あるいは使うことによってどれだけ作品が良くなったのか、というのをどのように評価するのか、というところが問題です。

 

 

アウトプットの評価はできるが、使いこなす力の評価基準はわからない

~そもそも使いこなせることを評価する必要はあるのか

 

今回の実践における課題は、「生成AIをうまく使いこなせることの適切な評価基準は何なのか」ということです。

 

ただ、最近個人的に思うのは、そもそもAIをうまく使いこなせることを評価する必要があるのか、ということです。

 

恐らく、電卓が登場したときも、「電卓を使うと計算能力が落ちる」とか「そろばんはどうするんだ」「授業中に電卓を使わせるのはいかがなものか」といった議論があったのではないかと思います。

 

しかし現在では、計算力を問う問題は別にして、問題を解く上で「電卓をうまく使っているか」という観点では評価しませんよね。ひょっとすると、あと数年もしたら、生成AIをうまく使いこなせること自体を評価する必要がなくなるのではないか、とも感じています。

 

 

結論としては、まず、基本的なコーディングの知識を取得している生徒を前提として、プログラミングの授業に生成AIを活用するのは、非常に有効でした。

 

特に、生成AIを使うことによって、生徒の感覚を優先しながら活用したり、あるいは生成AIを使いながら自分の知識を深めたりすることができ、一から言語の勉強をしなくても、非常に短時間でプログラミングの学習効果を高めることが期待できることが分かりました。この点ではぜひお薦めです。

 

ただ、評価をどうするか、ということは考えなければいけないので、実践されるときには、何をどのように評価するか、ということをよく考えて使われるのがよいかと思います。

 

質疑応答

 

Q1.大学教員

非常に興味深い実践でした。最後のお話は、要するに今までの教科・科目の評価では測れなかった力を新たに発見したということではないでしょうか。他の教科・科目とは全然相関がないけれど、生成AIを使う力がある、ということが分かったら、従来は誰も見出していなかった能力や軸を発見したと言えないでしょうか。

 

さらに、その力を測る方法が見つかったら、次の次くらいの学習指導要領に取り入れられたらいいなと思いました。

 

A1.飯田先生

ありがとうございます。まだ新しい力を発見したとまでは言えないです。ただ、この力を何らかの指標で測ることができるとよいと思っています。

 

 

Q2.大学教員

プログラム演習については、今非常に危機的な状況だと思います。というのは、生成AIは今ものすごい能力を持っていて、実際プロンプトを適切に入れれば、その通りのプログラムを書いてきます。

 

なので、生成AIの使い方をプログラムの教育の中で扱うのは、危険性と有用性の両面があり、その部分のバランスに関する発表というのは、本当に素晴らしいと思いました。

 

1点気になったのは、先ほど見せていただいた生徒が作ったゲームの中に、既存のキャラクターが出てきたものがありましたが、それらの著作権や肖像権の扱い方の部分については、どのように説明されているのでしょうか。

 

A2.飯田先生

今回の活動に関しては、「授業の中だけだぞ」ということで念を押して使っています。特にSNSに出したりしないように、といったところは、事前に言い含めています。

 

 

Q3-1.大学教員

ちょっと本題から逸れるかもしれませんが、アート作品の相互評価で、「技術」と「努力」と「芸術性」の3項目で評価をされたということでしたが、そもそも芸術性というものが相互評価できるのか、ということが気になりました。 

 

というのは、例えばパリオリンピックの開会式でマリーアントワネットの首の演出が批判を浴びました。あれはアートであることは間違いないけれど、あまり受け入れられなかった、ということですよね。そうすると、相互評価の観点として「芸術性」を入れるのは、果たして良いのだろうか。あるいは、相互評価の観点としては良いとしても、情報科の評価ポイントとしてはどうなのだろう、という気持ちがあります。

 

A3-1.飯田先生

ありがとうございます、確かにそうですね。具体的な観点としては、「カラーバリアフリーに配慮しているか」「コントラストがついているか」といったことは、一応生徒に説明しています。

 

Q3-2.大学教員

生徒に「芸術性」という形で評価させると、デザインというよりも、アートっぽい、きれいなものの方が評価が高くなるのではないかと思いました。ありがとうございました。

 

A3-2.飯田先生

(Q3-2を受けて、後日)次回からは、生徒に誤解を与えないように、「芸術性」ではなく「情報デザイン」と表記を変更することにします。

 

 

 

第17回全国高等学校情報教育研究会全国大会(愛知大会)分科会発表