見出し画像

不完全な生成AIをつかって学ぶこと

先にポンコツ生成AIによる要約。

公開後修正して、AIによる要約をこの記事の最初に持って来ました。
お時間ある方は、この要約がどの程度正しいか読み進めてみてください。

かわけん
要約して箇条書きにして。

ChatGPT
* 学校では生成AIを積極的に授業に取り入れているが、同じ誤答が多く出てきたことが教員に気づかせ、その原因を調査し、元の情報源の会社に連絡して訂正を求めた。
* 学生の経験から、技術とズルとのイタチごっこを経験し、技術を活用してでも正しい学習を促進することの重要性を感じる。
* プログラミング学習について、視覚的・感覚的にプログラミングができるシステムやサービスが増えていることに触れる。
* 生成AIを使ったプログラミング学習に関する経験を共有し、質問の仕方やコミュニケーションの重要性を強調する。
* 不完全な生成AIだからこそ、学習者がAIと共に成長する価値を見出すことができる。

かわけん
もう少し詳しく書いてよ。

ChatGPT
・ 学校での生成AIの活用では、授業中に同じような誤答が複数回出現したことが教員に気づかせた。教員はこの問題を徹底的に調査し、なぜ誤答が出たのかを解明するため、元の情報源の会社にも連絡をとり、訂正を求めた。この取り組みによって、生成AIの誤解が解消され、学習の品質が向上した。
・著者の経験から、過去の学校生活で技術とズルのイタチごっこを経験し、正しい学習を促進するために技術を活用することの重要性を理解した。これは、プログラミング学習においても同様であり、技術を使っても正しい学習を重視すべきだと認識した。
・プログラミング学習に関して、視覚的・感覚的にプログラミングができるシステムやサービスが増えている。例えば、scratchのようなブロックを組み合わせるアプリケーションや、Tinkeredのような
Arduinoのプログラミングをサポートするサービスがある。これらのサービスは、従来の黒い画面にコードを書くプログラミングとは異なり、より直感的で初心者にも優しいインターフェースを提供している。
・生成AIを使ったプログラミング学習について、著者は自身の経験を共有している。著者は無料の生成
AIを使ってプログラムを書かせたり、質問をしたりする中で、プログラミングの理解が深まったと述べている。AIとの対話を通じて、著者は質問の仕方やコミュニケーションの重要性を学んだ。
・最後に、不完全な生成AIだからこそ、学習者がAIと共に成長する価値を見いだせると著者は述べている。生成AIはまだ発展途上であり、完璧ではないが、それでも学習者がAIと協力して問題を解決し、成長することができる。

生成AIで誤答連発?!

友人がこんな記事を紹介していました。

この学校では授業の中で生成AI (Chat-GPTなど)を積極的に使った取り組みをされているようです。
ところが、その中で学年の半数超から同じような誤答が出てきたことに気づいた教員。
生成AIによって誤解が生じていることに気づいただけでなく、生成AIがなぜその誤答を出したかを調べ、元ソースと思われるホームページの会社にもコンタクトをとって訂正、その後生成AIをつかって学習する上での注意点なども生徒と確認できたとのこと。

素晴らしい取り組みだなぁと思います。

技術とのイタチごっこ

前にもどっかに書きましたが、高校時代に古典の教員がとても厳しく、
毎回予習をしておかないと”酷い目”(詳細略)にあう、そんな授業でした。

その是非以上に僕はとにかく古典ができず、毎回ビクビクしながら授業を受けていたわけです。(その教員には卒業後めちゃくちゃお世話になる)

当時ようやっと「常時接続」のインターネットが我が家にやってきた時代、僕は閃きました。
古典の教科書の内容の現代語訳が載っているページを探し出し、
100%満点の予習をして授業にのぞみました。ググってコピペです。

よせばいいのに、そのノートを高校生の僕は得意げにクラスで自慢していました。
僕の周りにいるような連中は、やはり僕の周りにいるような連中ですから、そのノートを一言一句写したノートが、クラス中の僕のような男子に広まりました。

しかしいざ授業が始まると、いつもはトンチンカンな答えばかりのはずなのに、次々に完璧な現代語訳が続き、4人目くらいのMくんが回答したとき、教員に
「これ、自分で調べてないな。他のクラスのノートをみただろ?」
と、勘づかれました。

クラス中の同じノートを持つ男子に緊張がはしりました。
小学校、中学校も同じだったMくんは、こともあろうに
「かわけんのノートを見ました」
と、のたまいました。

結局うまく言い逃れができて”酷い目”にこそ合わなかったものの、
「次からはところどころ間違ったノートにしよう」
と、18歳のかわけんは学びました。
「今後何があってもMくんにノートは見せるまい」
と、18歳のかわけんは学びました。

まだまだ、「ググる」なんて言葉がなかった時代、教員も思いつかないズルを思いついた18歳の自分を褒めた上でドロップキックしてやりたいです。

そんなふうに、技術とズルとはイタチごっこな訳です。
ズルで終わらないために、冒頭のような取り組みは素晴らしいと思います。


プログラミング学習

scratchの例

「プログラミング学習」について、僕はなんの専門知識もないのですが、
↑の画像のようにブロックを組み合わせることでプログラムを作成するアプリケーションやサービスなどが「プログラミングの入り口」となることは多いようです。

また教育目的だけでなく、実用されるレベルでも視覚的・感覚的にプログラミング出来るようなシステムもあるようで、↓のような昔ながらの「黒い画面にプログラミング言語の羅列」だけが「プログラミング」ではなくなってきているらしい。

昔ながらのプログラミングっぽい画面


生成AIにプログラミングしてもらう

これはまた別の友人から教わったのですが、工場の製造管理などの過程で、その場その場でプログラムを組むのがその友人の職場では当たり前になっている、とのこと。

「お前、いつプログラミングなんて勉強した?」
と聞くと、最初に基本的なことだけ詳しい人に教えてもらい、実際にプログラミングするのはChat-GPT (生成AI)を使っていると言います。

こう見えて「アプリケーションの設計」で修士論文を書いたアタクシ、
自慢じゃないですがプログラムは1行も書けません。何度かチャレンジしようと試みたものの、その度に結局は逃げ回ってきました。

ところがこの生成AIでのプログラミングなら僕にもできそうです。

ちょうど、車のカメラを切り替えるためにあれこれDIYしようとしていたので、
Arduino (アルデュイーノ)という「もっとシンプルに、もっと安価に、技術者でない学生でもデジタルなものを作ることができるようにする」ことを目的として開発されたシステムを使って電子工作してみることにしました。


Tinkeredを使ってみる

このTinkeredというサービスではscratchのようにブロックを並べるだけでArduinoのプログラミングを作成することができます。また実際に書いたプログラムを画面上でシミュレーションすることも出来ます。
scratchと違うところは、ブロックを並べるだけではなく、ブロックによって組まれたプログラムのコードを確認したり、
実際にコードを書いてプログラミングを作ることができます。←ここが大きい!

Tinkeredの画面

自分が作りたいものと、Arduinoのピンの仕組みなど基本的なことだけ調べておいて、
それを生成AIに丸なげしてみました。



生成AIに投げてみた。


無料の生成AI (ChatGPT3.5)にとりあえず質問してみると、早速コードを書いてくれました。

僕の思惑ではこのままコピペして、はい!できた!のつもりでしたが、
全くうまく動作してくれません。(無料版だから?)

そこで、質問文を色々と付け加えたり変更してみたりします。

以下、ChatGPTとの禅問答


エラーが出たときには、そのエラーを貼り付けると、エラーの原因を教えてくれます。


この過程で、当初は「1行もコードなんて書けねぇし意味わかんねぇよ!」と思っていた僕が、
「どこがおかしいんだろう」
「それぞれの動作はどのコードに対応しているんだろう」
と、プログラムの画面を読むようになりました。

また、生成AIの方も、僕が繰り返す質問から、僕が作りたい回路を少しずつ理解していきます。


頼りないAIに頼る

もしかしたら有料版の最新のChat-GPTなら、最初から正しいプログラムを書いてくれたかもしれませんが、
ちょっと頼りないChat-GPT3.5が相手なので、もっと頼りない僕も何とかして伝えようとします。作りたい部品、こいつに何とか伝えないと、手に入らないから。
言語の習得は、”伝えたい”が先にある」
という教育、特別支援では当たり前なことを、身をもって経験する訳です。

プロンプトとも言いますが、どう質問するか、によって生成AIの回答が変わります。
つまり、質問が上手になればなるほど、求める答えに近づく訳です。

質問が上手になるためには、AIが作ったプログラミングコードを読んだり、あるいは自分で調べてみたりすることが必要で、
プログラムの処理がどのように行われるか、を踏まえた質問をすると、正確になっていくことに気づきました。

うまくいった質問

そしてようやく、思っていた通りのプラグラムを組むことができました。

この質問文、実はプログラムをそのまんま日本語にしたようなものなんですね。
Chat-GPTに何度もプログラムを書かせてはコピペし、
動かない理由を探っては質問を変え、していると、
質問文も「プログラミングっぽく書く」ことでうまくいくことに僕が気づいた訳です。
そして「プログラミングっぽい質問文」を書くには、どういった順序で処理が行われ、何が抜けるとエラーが起きるか、などにも気づくんです。


不完全な生成AIだからできること

今後生成AIがどんどん賢くなっていったとしても、この対話型の生成AIの場合はこちらの質問がAIにとって「分かりやすい表現」であるほど、正確に伝わり、求める答えに近づくというのは変わらないと思います。

ただ、やはりその精度は上がっていくでしょうし、僕がやりとりしているようなプログラミングの入門レベルの質問に関しては、一発で答えを出せるようになる日は遠くないと思います。

そうなんです。
今2024年のポンコツで頼りない不完全な生成AIだからこそ、入門レベルのプログラミングでさえまともな答えを出せないから、こちらも一緒に成長する。(せざるを得ない)

僕が古典で「次からはところどころ間違えよう」とした際、ところどころ間違えるには、簡単なところと間違いやすそうなところを理解してないとダメなことに気づきました。そして「楽な予習なんてないんだ」ということに気づきました。

僕の古典はともかく、生成AIを使った教育現場での問題・課題はこの1年で相当取り上げられてきました。

冒頭の中学校の例しかり、大学のレポートのコピペ問題しかり。

生成AIは今後どんどん進歩するのは明らかですから、これを使わない方法、避ける方法よりも、これらをうまく使う方法に教育現場もシフトチェンジが必要。

そして結局それらをうまく使うには、使う側にも最低限以上の知識や思考が求められる訳です。
カンニングペーパーを作るのに、教科書の全ページをコピーする訳にいかないのと同じ。
漢字を知らないと、漢字変換を使えないのと同じ。

10年後どころか、1年後、2年後にはまた状況は変わってくるかもしれませんが、
この生成AIがポンコツで頼りない不完全な今だからこそ、
「生成AIと共に学ぶ・成長する」ってのはとても価値があるように思うんです。

長くなったのでChatGPTに要約してもらった

せっかくなので相変わらず冗長な僕のnote記事、生成AIに要約してもらいました。

ちょっと味気ないので、甘えてみました。

もっともらしく見えるからこそ、元の文もAIの要約も全部読まないといけません。
それが、何かいいなぁって思うんです。

この記事も古典のノートのように、すぐに昔話になっちゃうでしょうね。

この記事が気に入ったらサポートをしてみませんか?