Scratch Jrで4歳からのプログラミング学習

今年から子供の教育に焦点をあてた記事も書こうと思います。

プログラミング教育必修化について思うこと

昨今、義務教育課程でのプログラミングに関する教育の導入という話が出ていますが、この背景としてはIT人材の不足が挙げられます。

IT人材の最新動向と将来推計に関する調査結果を取りまとめました(経済産業省)

これについて色々思うことがあります。私が学生の時はセンター試験の数IAの終わりにBASICコードを埋める問題が申し訳程度についていただけでした。それから大学で計算機(コンピュータ)科学や関連する数学(代数学、集合論その他)を勉強しました。そして仕事もプログラマです。

IT業界は理系から文系まで広く門戸を開いているために、現場に居るプログラマのスキルはかなりばらつきがあります。IT人材の不足を補うという趣旨自体は理解できますが、現場の意見では10人の平均的スキルのプログラマを用意するよりも一人のすごくできるプログラマ(エンジニア)が居たほうがありがたいです。本当にできる人はたった一人で何十倍もの生産性を発揮することがあります。そういう人に必要な素養はやはり大学レベルの専門的な知識であって、義務教育レベルでどうこうできるものではないです。

だから義務教育でプログラミングを教えるのは無意味だとは思いません。それをきっかけとしてプログラマを目指して理系大や高専に進む人も出てくるでしょう。というか義務教育でできるのはそのきっかけ程度でしょうから、本当にプログラマになりたい人にとっては不足でしょうし、そもそもプログラマになりたいと主体的に思う人なんかは小さい頃からコンピュータやゲームの類によく触れているでしょうし、なんか義務教育でやるプログラミングっていう言葉の響きは中途半端な予感がするなぁ、意味あんのかなぁと思うのが正直なところです。

ちなみに、プログラマの考え方が仕事の効率化にプラスになるという主張も目にしますが、私は必ずしもそうとは思いません。仕事の効率化に具体的に結びつけるためには多少なりともスクリプトやコードを書けたり、コンピュータの扱いに長けてたりしないと難しいのではないかと思います。

ともあれ、少しでもプログラミングに興味をもつきっかけが増えるのはプラスで歓迎すべきことなんでしょう。

ビジュアルプログラミング言語

さて、プログラマになるために子供の頃からできることは何でしょうか。四則演算が理解できてキーボードとパソコンが使えるくらいの歳だったらば、PythonやHTML、JavaScriptあたりから触ってみるのが良いのではないかと思うのですが、おそらくそれは最低でも小学生くらいになっていないとできないと思います。それ以前の幼児でなにかできることはあるでしょうか。

ひとつは、ビジュアルプログラミング言語を触らせてみるというのが挙げられます。

ふつうプログラミングはソースコードと呼ばれる、知らない人には全然理解できない呪文のような文を書いていく必要があるのですが、ビジュアルプログラミングはその名の通りソースコードを書かなくともビジュアル的に分かりやすいインタフェースでプログラムを作っていくスタイルのプログラミング手法です。最近ぽっと出てきた概念ではなく、昔からプログラミング初学者や幼児教育を目的として研究されてきた分野です。私が大学生の時はViscuitというのが有名で、手軽に遊ぶのはこれがほぼ唯一の選択肢だったように記憶していますが、最近ではほかにも沢山の選択肢が増えてきました。

色々試しましたが、4歳くらいの子供にやらせるのはScratchJrというものが見た目も綺麗でわかりやすくて良いかな、と思いました。Androidアプリはこちらからダウンロードできます。その他、ChromeやiOSでも動きます。公式サイトから飛んでください。

上記が実際に遊んでいるところのスクリーンショットです。4才児でも、すこし教えてあげれば「ステージでキャラクターを繰り返しジャンプさせ、それをタップしたら『にゃー』と言わせる」というくらいのプログラムは作ってしまいます。英語ですが、英語を駆使しなければならない部分は皆無です。

プログラムは「旗をタップした時」「対象のオブジェクトをタップした時」「メッセージを受信した時」などのイベントに対して「移動する」「回転する」「拡大・縮小する」などのアクションを積み重ねていきます。それぞれのイベント、アクションはブロックで表されています。

上記の画像は「旗を押したらジャンプを繰り返す」「タップしたら録音音声を1回鳴らす」というプログラムが組み込まれています。どうです?視覚的にすぐにわかるでしょ。説明など一切見なくても使い方は理解できると思います。

いくつか手本をみせてやると、うちの子供は「このブロックをここに足したらどうなるんだ」「この数字を変えたら何が起こるんだ」と自分で色々いじくりまわし始めました。「とりあえずいじって覚える」というのはプログラマが好むやり方ですね。

ちなみに、厚切りジェイソン氏がEテレでやってるWhy!?プログラミングもScratchを使っているみたいです。ScratchはJrに比べてできることが多いのですが、少し難しいので小学生くらいでないと使えないかな?と思いました。