昨日のプログラミングの授業では、完全な自由制作にチャレンジしてもらった。昨日の生徒はプログラミングを初めて半年、どこまで自分で考えて、ロボットを組み立て、そのロボットをプログラムすることができるのか。
作るのは「リフトカー」
前方にある物体を持ち上げて、移動させ、指定した場所に置くというリフトカーを作ることに。
今年からプログラミングを始めて驚いたことは、子どもはどんどん吸収していくということ。if文や関数をどんどん使いこなせるようになる。また、ロボットの組み立ても速い。おそらくは大人の自分ならば、もう少し苦戦するのであろうと思うが、あっという間に組み立てる。彼が作ったリフトカーがこちら。
おそらくは「上手にリフトアップできないのでは・・・?」と見て心配になりましたが、今回は最初から最後まで自主制作してもらうことを決めていたので、最後に「こうしたほうが良かったのでは?」とアドバイスすることにして、どんどん組み立てて、プログラムも組んでもらっていきます。
すると・・・、
最初は組み上げたプログラムではうまく作動せず・・・。
ここからがプログラミング授業の醍醐味だと思います。
「最後まで諦めず、やり抜く頑張りを身につける」
完全なる自主制作なので、上手くいかないのは当然。これまでは、KOOVのアプリによる誘導もありながら完成させていきましたが、最初から組み上げていく。トライ・アンド・エラーを繰り返しながら最初に設定したゴールを目指します。
何回かプログラムを組み直していくと。
「関数を使ったほうがいいのかな・・・?」
小学生から関数という言葉が!
おそらくは中学生でも言葉は知っていても、「関数とは何か?」を知らない生徒はいるかもしれません。小学生が「関数」を理解してくれている。これもプログラミングの成果かもしれません。
「そうだね。そっちのほうがシンプルなプログラムが組めるから、エラーの理由がわかるかも」
こんなやり取りをしていくと徐々に形に。
さらに嬉しかったのは、自分から「加速度センサーを使ってみる。」と判断して途中で方向転換をできたこと。プログラムだけでは限界があるとみた彼は加速度センサーをKOOVに設置。加速度センセーは手前の緑のブロックの中に。こればゲーム機のwiiのように三次元に様々な角度に傾けることで、ロボットを操作できるもの。
もはや簡単ではないプログラムを組み立てていく彼に関心してしまいました。
最終的には時間オーバーで最後まで組み立てることはできませんでしたが、授業後、自分もプログラム例として1つ組んでみたので、次回彼が来るときに「こんなプログラムはどうだろう」」とプログラム例を提示してみようと思います。