この記事は 『CRESCO Advent Calendar 2017』 14日目の記事です。
こんにちは、ビジネスイノベーションセンターのすがぴーです。
2020年に小学校でもプログラミング教育の必修化が始まりますね!
我が家にはチビが2人いますので、この流れはとても気になるところです。
文部科学省によると、プログラミング教育とは、
子供たちに、コンピュータに意図した処理を行うよう指示することができるということを体験させながら、将来どのような職業に就くとしても、時代を超えて普遍的に求められる力としての「プログラミング的思考」などを育むこと、との見解が出ています。
なるほど、プログラムを組むことが目的ではなく、論理的に考える力、を養うことが目的なのですね!
とはいえ、このプログラミング教育議論の背景には、各種先端技術の革新的発展による第4次産業革命に向けて、IT人材を育成するという目的もあるように思われます。
このプログラミング教育は、教科化するわけではなく、従来の算数や理科などの教科にからめて学習されるようです。また年次やどの科目に含めるのかなどの具体的な進め方は、各学校に任されるのが実態のようです。
親の立場としては、今後も目が離せませんね。
なにはともあれ、我々エンジニアの中では、子供にプログラミングを教えてみたいな~というご家庭も多いのではないでしょうか。我が家も息子(小2)にプログラムを教えよう!と思ったものの、java1.X時代の私には少々説明が難しいのです。。
そこで!
ご多分に漏れず、我が家もビジュアルプログラミング言語から始めることにしました。子供向けのビジュアルプログラミング言語といえば、米MITメディアラボが開発したScratch(スクラッチ)や、国内ではVISCUIT(ビスケット)などが有名でしょうか。ひとまず、子供が興味を示すかどうかもわからなかったので、フリーでかつ情報量も多いScratchを選択。

Scratchの初期画面です。役割(命令)のブロックをパズルのようにつなげて動きを作っていきます。動かし方はたくさん他に文献が出ていますのでここでは割愛します。では、試しに猫(Scratchキャット)を動かしてみます。

※動きましたねー
しかし、あまりおもしろくない…。もっとゲームっぽくできるはずだけど(汗)簡単に動かしてはみたものの、見よう見まねでプログラムの概念を子供に一から説明するのは難しい。まあ触ってみなよ、と放置したところ、お絵かきソフトになっちゃいました・・

※ジ〇ニャンが現れた。それ遊び方チガウ
そこで!!(2回目)
サイバーエージェント社の子会社であるCA Tech Kids社の主宰するTech Kids CAMP(短期体験コース)に参加することに。
Tech Kids CAMPとは、小学生のためのプログラミング体験ワークショップで、Scratchやマインクラフト(以下、マイクラ)でゲーム開発を楽しめる短期講座です。
低学年(1〜2年生)向けと、中高学年(3〜6年生)向けがあり、初心者でも丁寧に教えてくれるとのこと♪
早速申し込みを行い、教室スタート!Scratchは一人だけで、ほとんどがマイクラ。教室では明るい進行のお姉さんや大学生らしきメンターのお兄さん達がとてもフレンドリーに教えてくれます。秘伝の書(オリジナル参考書)をもらって、基本はそれに沿って内容を再現していく、という進め方です。

※開発タイムではメンターのお兄さんがしっかりサポート
1日目は、秘伝の書通りにブロックを組んでみて、動かしてみるところまで。自宅にプログラムを持って帰り、自宅のパソコンでいつものお絵かき(新しいコスチューム作り)を。さらにその作ったスプライトを自作ゲームの中に登場させられる!ということに気がついたあたりから、のめり込んでいったようで、お絵かきのアイコンを追加したり、ランダムに動かしたり、得点を表示させたり、END条件を埋め込んだり、といったことができるようになりました。
2日目は、自宅で組んだプログラムを会場に持っていき、少し修正を加えた後、プレゼンテーションに向けた練習を行います。プレゼンまで準備されているんですね!!常々、作るだけじゃなく発表するまでが工作だと理想を押し付けている教え込んでいる我が家にとってはアウトプットまで面倒を見てもらえて素晴らしいプログラムです。

※発表会の様子
プレゼンに向けて、作ったゲームを動かして動画を撮り、工夫したことや難しかったことをまとめます。そしてプレゼン大会では、少し高い台に登り、マイクを渡されて、動画を流しながら工夫したことなどをプレゼンし、最後は簡単な質疑応答と、メンターからのコメントをもらい、最後に記念撮影をして終了です。たった2日の短期プログラムでしたが、ツールの使い方は一通り覚えることができました。さすがプロですね。

※完成した おばけパニック
我が家はまだゲーム類を持っていないためマイクラの事前知識がなく、自宅でできるScratchを選びましたが、すでにマイクラでゲームを楽しんでいるご家庭では、マイクラから始めてみると身近なものを取り入れてプログラミングに触れられるのかもしれません。ちなみにマイクラの開発は通常のソフトではできず、MODと呼ばれる拡張データを入れる必要があります。
息子は周りが全員マイクラだったので、今度はマイクラやりたいな〜と他のプログラム言語(いや、ゲーム?)にも興味が出てきたようでした。
まず、自力で子供に教えるのは至難の業でした。。外部には専門のプログラミング教室が色々ありますので餅は餅屋に相談してみるのが早道かもしれません。
このScratch開発体験を通じて、繰り返し(for文)や条件分岐(if文)の概念を体験を通して学ぶことができたようです。驚いたことに、どこからどこまでのコードをコピーして複製すれば、どこの動きが複製できるか、を直感的にイメージできていたようです。さすがビジュアルプログラミング!
今後の学校におけるプラグラミングの必修化においても、コードを組むという通常のプログラミングではなく身近なものの中で、条件や分岐などのプログラミング思考を学ぶということになる可能性は高いですので、このようなゲームを通して子供の興味を引きつつ、論理的思考の基礎を体験させるというやり方が主流になっているのも頷けます。
他にもビジュアルプログラミング言語はたくさん出ていますので少しずつ試してみて、他の言語との違いなどについてもレポートしていけたらいいなと思います。