小学生の息子がプログラミングを勉強して良かった沢山のこと
息子は小3の時にロボカップというロボットを使ってサッカーをして対決する大会に出場しました。
ロボットと言っても車型のロボットです。プログラミングを使って自分が考える勝てるロボットに仕上げます。
ボランティアでやり方を教えてくれる団体があるので、そこに通ってロボカップ用のプログラミングを学びました。パソコンにアプリをダウンロードしてこのような画面でプログラミングをして、USBでロボットとパソコンを繋いで指令をインプットします。
ロボットの底面にラインセンサーを取り付けます。ラインセンサーは文字通り線を認識するセンサーです。線を描いてあるところを認識するのではなく、色によって光の反射率が異なるので、認識したい線の光の反射率を設定して『センサーがこの反射率のものを感じたらその上をこのスピードでこれだけ進む』みたいなプログラムをして使います。
ロボカップサッカーで使われるボールには赤外線が付いているので、赤外線センサーも搭載します。『赤外線を感じたらこのスピードでこれだけ進む』というようなプログラミングをします。
以下の動画では、ラインセンサーを使って黒いラインを認識したら止まってターンする設定をして、赤外線センサーを使って赤外線を感じたら前進という設定にしています。
そもそも、プログラミングって何の役に立つのかという話ですが、プログラミングはありとあらゆるモノに使われています。身近なものだと自動ドアは、センサーの前に物体を認識したら何秒間ドアを開けるというプログラミングです。最近ではアルコールを自動でスプレーしてくれる機械も、35度から40度の物体を感じたら、1秒間スプレーするとかプログラミングがされています。部屋の温度が27度になったら27度をキープするというようなエアコンの設定もプログラミングです。お風呂を設定温度通りに希望した量の水で沸かすのもそうだし、スマホの色々な機能もそうです。
ロボカップをやり始めてから、息子はマンションの防犯カメラを見て「ほら、ここにセンサーがあるから、ここで人を感知したら録画するシステムになってるんだよ」とか「この自動ドアは人がマットに乗ったらスイッチになって開くのだね」とか、プログラミングの存在を意識するようになりました。
本屋でゲームが作れるプログラミングみたいな本を見つけてねだるので買ってあげたら、自分でシューティングゲームも作りました。
ある時、息子はプログラミングとサッカーの類似性に気が付きました。「ダディ、サッカーってプログラミングみたいだよね。だってさ『ボールを持ったら』『ゴールが空いてたらシュート』if not『前にスペースがあればドリブル』or 『フリーの味方にパス』and 『ボールをもらえる場所に走る』とかだよね」と言いました。プログラミングをやった事で、物事を論理的に考える力が磨かれました。
ロボカップ関連のイベントでロボット工学の権威の教授が来てレクチャーをしてくれた事がありました。その方は以前スペースシャトルの打ち上げや人工衛星の設置にも関わったと言っていました。
「プログラミングは凄い。プログラミングがあるから人間は他の星にロボットを派遣してロボットに現地の捜索をさせたりすることができるようになった。人間が行けないような暑すぎる場所とかにもロボットを入れてレスキューができたりする。ただし、プログラムをするのは人間だ。人間がちゃんとしてないでいい加減な人間ならプログラミングもいい加減なものになる。プログラミングに重大なミスがあればスペースシャトルは爆発して乗組員は死んでしまう。君たちは子どもで今やってるプログラミングは遊びだから失敗しても、あー残念で済むけど、これを仕事でやる場合には命がけでやらないといけない。今からやるプログラミングは君たちが自分で計算して正しく計算をできないと上手くいかない。スペースシャトルのプログラミングをしているつもりで、失敗したら乗組員を殺してしまうつもりで、責任を持って一生懸命やって欲しいです」
冒頭に教授が熱く語ってレクチャーは始まりました。プログラミングに必要な情報を渡されて、それに必要な情報を計算で出さないといけません。内容は小学3年生でも話をよく聞いていれば何とかできるレベルでした。
途中、教授が様子を見回っていて、息子の隣の子に話しかけました。
「何をすれば良いかわかってるかい?わからなければ聞いてくれよ。君が『まあいいわ』って思ったらスペースシャトルは爆発してしまうからね。わかってるかい?」
「はい大丈夫です」
「よしわかった。じゃあわからなければ必ず聞きに来いよ」
そして、それぞれに出した答えを発表する事になりました。息子は正解を出すことができていましたが、先ほど教授に話しかけられていた隣の子は正解を出せませんでした。教授がどういう考えでどんな順序で計算したかを説明してとその子に言ったらその子は「どうやってやったかはよくわからないけど多分これだと思った」と答えました。
「おい!多分じゃダメなんだよ!」教授が叫びました。
「キミはあんまりよくわかってないように見えたから、わからなければ聞きに来いと言ったんだ。スペースシャトルは爆発してしまうよと言ったじゃないか。どうしてそんないい加減な事をしたんだ。本番なら確実にキミのせいで人が死んでたんだぞ。子どもだからって甘えるな!ちゃんと正解できた子もいるし、正解できなくても聞きにきたりして最後まで成功しようとしていた子もいる。その考えじゃ何やってもダメな大人になる。今ここで学びなさい」
その子は号泣していましたが、僕はとても大切な事を教えてもらっているなと感じて見ていました。
イベントが終わると、泣いてしまった子の母親が「人のうちの子をこんなに泣かして最悪」と怒っていました。この時の親の受け取り方で素晴らしい学びにもできた筈ですが、こうなってしまうと教授はただの糞ジジイ扱いになってしまいます。僕には教授は愛を持ってその子に接してくれるように見えましたけどね。
息子はこの日から宇宙に少し興味を持つようになりました。中学3年生になった今でも宇宙飛行士の特集とかをテレビでやっていたら真剣に見るくらいこの日の経験が彼の中に残っています。
だいぶ話が脱線しました(笑) ロボカップの大会ですが、大会当日に一緒のチームの子がドタキャンをして、息子は2台のロボットを一人で操って大会に出場しました。かなり不利な状況でしたが1回だけ何とか勝つことができました。その時の動画です。
プログラミングを息子に学ばせてとても良かったです。
以上、『小学生の息子がプログラミングを勉強して良かった沢山のこと』をお伝えしました。