〜IくんのRobloxでの挑戦から感じたこと〜
こんにちは。
こどもプログラミング教室 すまいる・キッズのとどちゃんです。
最近は、AIを使えば、プログラムも作れる時代になってきました。
「それなら、もうプログラミングを学ばなくてもいいのでは?」
そんなことを、少し前の記事でも書いたと思います。
今日は、実際にレッスンの中で、IくんがAIを使ってコーディングに挑戦したときのお話です。
AIを使えば簡単にできると思いきや、思ったように動かず、少しはまってしまう場面がありました。
でも、その中にこそ、AI時代のプログラミング学習で大切にしたいことが、たくさん詰まっていたように感じます。
いつも先進的な取り組みをしてくれるIくん
Iくんは、いつも先進的な取り組みをしてくれます。
自分なりのアイデアを考えたり、オリジナルの改造に挑戦したり、発表の中でもたくさんのことを伝えようとしてくれたりします。
その姿勢は、本当に素晴らしいと思っています。
ただ、アイデアが出るからこそ、次に大切になるのは、それをどのように形にしていくかです。
「こうしたい」という思いを持つこと。
そして、それを実際に動く形にするために、いろいろな方法を試していくこと。
この部分を、これからさらに伸ばしていってほしいと思いながら、レッスンの中でも伝えています。
RobloxでAIを使ってみた
今回、IくんはRobloxでオリジナルの改造に取り組む中で、AIを使ってコード作成にも挑戦しました。
AIに聞いて、出てきたコードを使ってみる。
これは、今の時代ならではの、とても前向きな挑戦だと思います。
ただ、Robloxは、JavaScriptやPythonのように、ひとつの場所にコードを全部書けばよいというものではありません。
サーバー側で動くコードがあったり、オブジェクトの中に入るコードがあったり、パーツ同士の関係があったりします。
つまり、AIに質問するときにも、
「どのオブジェクトに入れるコードなのか」
「パーツの構造はどうなっているのか」
「サーバー側で動かしたいのか、クライアント側で動かしたいのか」
「今、どんな状態のプログラムなのか」
こうした前提条件を、かなり丁寧に伝える必要があります。
部分的なアイデアだけをAIに伝えても、出てきたコードが今の作品に合わないことがあります。
AIは学ぶ順番までは考えてくれない
今回も、AIが作ってくれたコードの中には、まだ習っていないグローバル変数が使われていたり、無名関数が使われていたり、別のオブジェクトをまたがる処理が入っていたりしました。
AIが作ってくれたコードではありますが、今の自分の知識だけでは、どこで何が動いているのかを理解するのが難しい部分もあります。
AIはとても便利です。
でも、必ずしも「学ぶ順番」に合わせて答えを出してくれるわけではありません。
基本の形を飛ばして、簡易的な書き方や、実務では便利だけれど少しレベルの高い方法を提示してくることもあります。
もちろん、それ自体が悪いわけではありません。
無名関数のような書き方は、コードを手早く書くうえではとても便利です。
三項条件のような書き方も、慣れている人にとっては短く書けて便利な場面があります。
ただ、アルゴリズムの基礎を学ぶ段階では、やはりまずはしっかり関数を定義し、引数を考え、それを呼び出すという手順を経験することが大切だと思っています。
「この処理には、どんな名前をつけるのか」
「何を引数として受け取るのか」
「どのタイミングで呼び出すのか」
「処理の流れはどうなっているのか」
こうしたことを一つひとつ考えることで、プログラムの構造が見えやすくなります。
当教室では「守」を大切にしています
守破離でいうなら、無名関数や三項条件のような便利な書き方は、「守」がある程度身についてから活きてくるものだと思います。
まずは基本の形を学ぶ。
そのあとで、より短く、より実用的な書き方を知っていく。
当教室では、この「守」の部分をとても大切にしています。
基本の構文を知る。
関数を定義する。
引数を考える。
処理の流れを順番に追う。
自分の言葉で説明できるようにする。
この土台があるからこそ、AIが出してきたコードを読み解いたり、自分に合う形に直したりできるようになります。
情報Ⅰでも、基本的な構文や考え方が大切にされているのは、まさにこの土台を作るためなのだと感じます。
うまくいかない経験も、大切な学び
今回、Iくんは、うまくいかない場面にも出会いました。
でも、ぼくはその「うまくいかない経験」も、とても大切だと思っています。
AIを使ったから、すぐに完成する。
AIに聞いたから、必ず正しいコードが出てくる。
そんなふうには、なかなかいきません。
出てきたコードにエラーが出ることもあります。
自分で打ち込んだ部分が間違っていることもあります。
コード自体は正しくても、入れる場所や前提条件が合っていないこともあります。
だからこそ、
「どこでエラーが出ているのか」
「何が原因なのか」
「AIの答えをそのまま使ってよいのか」
「今の自分に理解できる形に直せないか」
そうやって確認していく力が必要になります。
プログラムが動かなかったときに、ただ「とどちゃん、動かない」と丸ごと持ってくるのではなく、
「どこまでは動いたのか」
「何を変えたら動かなくなったのか」
「AIにはどんな条件でお願いしたのか」
「そのコードは、今の自分に理解できる内容なのか」
そういったことを一緒に整理していくことが大切になります。
最後は自分の知っている方法で形にした
今回も、最初はAIが作った少し難しいコードに挑戦しました。
でも最終的には、そのコードにこだわりすぎず、自分が知っているやり方に戻って、別の方法で改造を進めることができました。
これは、とても大切な判断です。
難しいものをそのまま使おうとして止まってしまうのではなく、今の自分にできる方法で考え直す。
そして、自分の力で形にしていく。
最後には、しっかりと機能を作り上げることができました。
その姿は本当に素晴らしかったです。
Iくんの先進的な取り組み、たくさんのアイデアを形にしようとする姿勢、そしてうまくいかない中でも最後まで取り組む力。
その一つひとつに、確かな成長を感じました。
AIは便利。でも万能ではない
AIを使えば便利です。
でも、AIは万能ではありません。
出てきたコードをそのまま信じるのではなく、チェックする力。
自分の作品に合うかどうかを考える力。
うまくいかなかったときに、別の方法を試す力。
こうした力が、これからますます大切になると思います。
子どもたちが、AIに関わらずに生きていく時代では、もうないのかもしれません。
だからこそ、AIを遠ざけるのではなく、機会があれば使ってみる。
でも、丸投げにするのではなく、自分で考えながら使う。
すまいる・キッズでは、そんなAIとの付き合い方も、少しずつ伝えていきたいと思っています。
AI時代だからこそ、基礎を飛ばすのではなく、基礎を大切にする。
今日のIくんの挑戦を見て、改めてその大切さを感じました。
コメント