コンピュータをもっと自由に触れられれば、もっと興味が湧いてくる。コンピュータの使い方を覚えることが目的ではなく、もっと便利に、もっと創造性を持ってコンピュータを操れるようになる。
「コンピュータサイエンスをすべての子どもたちに」というコンセプトで、12月11日に世界中のアップルストアで実施された「Hour of Code」イベントでは、子ども向けに1時間の無料プログラミングワークショップが開催された。日本のアップルストアでも予約制のワークショップにはたくさんの子どもたちが訪れた。
この「Hour of Code」は、プログラミング教育の普及を目指すCode.orgが主導しており、ウェブサイトで実行できる様々な教材や、学校教育に導入することができるようにするキットなどを配布している。今回アップルストアで実施されたワークショップでも、Code.orgのウェブサイトにあるプログラミング導入の教材を、iPadを使って学ぶスタイルで行われた。取材したアップルストア銀座では、夕方、学校帰りの時間帯に参加した6人の小学生・中学生が親子で訪れ、プログラミングに触れる体験を楽しんだ。
プログラミングってなんだろう?
ワークショップは、アップルストアで普段パーソナルトレーニングで利用するテーブルを囲んでの少人数制で行われた。ストアが用意したiPad miniを各自が使い、アップルストアのスタッフが講師としてプログラミングの問題に取り組んでいくスタイルだ。
まずコード、プログラミングとはなにか、という簡単な説明から始まる。最も簡単に言えば「iPadやiPhoneといった機械を、自分の思い通りにするための言葉」だ。
なかでも、「料理」に例えるとより分かりやすいかもしれない。料理は材料を覚えてレシピを見ながら習得していく。すると、例えばレストランなどでおいしい料理が出されたときに、どんな材料を、どのように調理したか、ということが分かるようになる。
もちろんただ「おいしい」ということも重要だが、なぜおいしいのかというところまで分かり、あるいはその調理方法を自分の料理に取り入れることも出来るようになる。何が起きているかイメージが湧くようになると、何がすごいのかが分かり、また自分でも試せるようになる。
こうしたサイクルが生まれることでコンピュータサイエンス、プログラミングそのものに興味を持つ子どもが増えることは、急速に発展しているとは言えまだまだ新しい分野であるテクノロジー業界の将来に重要なことだ。ゆえに、Code.orgはプログラミングに触れる子どもたちを増やそうとしており、またAppleもこの活動をサポートしているのだ。
人気ゲームのキャラクターを動かしてみよう
Code.orgが用意したウェブ教材は、皆さんもPC、Mac、スマートフォン、タブレットからアクセスすることができる(studio.code.ac.jp)。アップルストアで使われたのは、「Hour of Code」用のコンテンツだ。
このコンテンツでは、アングリーバードなどの人気ゲームのキャラクターを、自分が作ったブロック型のプログラミングを駆使して動かそうというテーマで、非常に簡単に作業を進められる。
普段こうした「ゲーム内のキャラクターを動かす」には、十字キーやタッチパネル、あるいは傾きセンサーを使うものが多い。しかしiPadの画面の上でレッド(アングリーバードの鳥のキャラクター)をなぞっても、動いてくれない。自分でプログラムを作らなければならないのだ。
プログラミングと行っても、はじめはとても簡単。例えば、1問目は、「前方に移動する」というブロックを2つ並べて2マス進むようにすればクリアとなる。その後ステージが進むにつれて、「右に回る」「左に回る」といったブロックを駆使して、動作の順序を組み合わせてゴールするなど、複雑性が増していく。
そして、繰り返し(for)や、条件設定(while)といった、プログラミングの行数をより短くシンプルにするための仕組みを活用し、「前方に移動する」を「5回繰り返す」といったプログラムを作れるようになるところで、1時間のワークショップは終了した。
正解は一つではない世界
各問題には、学ぶべきコードの書き方に関する「狙い」が用意されている。プログラミングには、より短い行数で仕上げた方が良いという価値観があるからだ。しかし、鳥のキャラクターが、5マス先の緑のキャラクターにたどり着ければ、どんな書き方をしても正解なのだ。
前述の「前方に移動する」というブロックを5つ並べてももちろんよい。あるいは「前方に移動する」を「5回繰り返す」という繰り返しを使う方法もある。さらに、「前方に移動する」を「緑の豚にぶつかるまで繰り返す」という条件を設定することも可能だ。答えは1つではなく、様々なやり方が存在する。つまり答えにたどり着く自由な発想が許されている世界だ、ということも、ワークショップの中で子どもたちに伝えられた。
画面内のブロックで組み立てるコードで、鳥が指示通り動いてくれること、その動き方を自分で自由に決められる。プログラミングの楽しさを体験した子どもたちは「面白かった」「考え方が変わった」「不思議な体験をした」という感想を、目を輝かせながら述べていた。
プログラミングの普及に向けて
今回活用したCode.orgのHour of Codeはプログラミングの初期導入の教材だった。そのため、マウスやタッチパネルの画面でブロックを組み立てればできあがる仕組みであった。 良い機能だなと思ったのは、ブロックを組み立てたプログラムが正解すると、自分で組み立てたブロックが実際のJavaScriptではどのような表現になるのか、というコードを表示する機能が付いていた点だ。
例えば「繰り返し」はforで表現され、「条件」はwhileで表現される。またこれらを使うと格段にプログラムの行数が減ることも分かるのだ。こうして、実現ごとの関連性を意識させながら、より複雑なプログラムへと少しずつ進歩していくことができるようになる。 今回のワークショップを見ていても、プログラミングが初めてだ、という子どもたちであっても、途中からはアップルストアのスタッフの説明を待たずにすいすいステージをクリアしながら進んでいく様子が見受けられた。
もちろん1時間で何かが大きく変わる訳ではない。しかし今回来た子どもたちが、家に帰って、あるいは翌日、引き続きCode.orgの教材にアクセスして続きにひとりで取り組むことも十分にできる。さらに興味が増せば、民間でプログラミングを教える教室やイベントも増えており、ここへの参加も可能だ。子どもたちは加速度的に、プログラミングのスキルを向上させていくだろう。
プログラミングを学校に導入する際のハードルは、むしろ指導する教師の側にあるのではないか、と考える事ができる。Code.orgが教員向けに、プログラミングの授業を導入するための教材を提供しているのもそのためだ。
今後、学校教育の中で、プログラミングをどのような位置づけにするか、いかに人材育成をするのか、行政も含めた課題の迅速な解決を考えていかなければならない。
松村太郎(まつむらたろう)
1980年生まれ・米国カリフォルニア州バークレー在住のジャーナリスト・著者。慶應義塾大学政策・メディア研究科修士課程修了。慶應義塾大学SFC研究所上席所員(訪問)、キャスタリア株式会社取締役研究責任者、ビジネス・ブレークスルー大学講師。近著に「LinkedInスタートブック」(日経BP)、「スマートフォン新時代」(NTT出版)、「ソーシャルラーニング入門」(日経BP)など。ウェブサイトはこちら / Twitter @taromatsumura