コンテンツへスキップ
マイクロソフト業界別の記事

※ この記事は 2017年07月21日に DX LEADERS に掲載されたものです。

2017年2月、文部科学省は、2020年以降に施行されるプログラミング教育必修化を盛り込んだ学習指導要領改定案を発表した。プログラミングが必修化になる背景は、IT技術者の不足と、21世紀型スキルと呼ばれる、自分で問題を考え、情報を活用したり他者とコラボレーションしたりしながら正解がないことを解決していく力を持つことが大事である、という価値観が普及したことだといわれている。

海外でもプログラミング教育を熱心に行っている国家があり、中東のシリコンバレーと呼ばれるイスラエルは世界に先駆けてプログラミング教育をスタート。後進の教育にも余念がない。

大人がわからないことを子どもに教えることは、いまだかつてない

日本でも2020年からプログラミング教育がスタートするが、プログラミング教育の必要性や、期待することは人それぞれなのではないだろうか。

原田 康徳博士

「大人が必要だと思うことを教えることはあるが、大人がわかっていないことを義務教育で教えようとしているのがプログラミング。こういうことはいまだかつてない。」

そう語るのは、ビジュアルプログラミング言語 ビスケットの生みの親である原田 康徳博士だ。
原田氏は、2003年2月、NTTの研究所でビスケットの最初のバージョンを開発し、同社を退職後、合同会社デジタルポケットを設立。ビスケットの開発やワークショップに携わっている。

「中学校までで習うことは、大人は全員知らないといけない。義務教育としてそうするのであれば、大人に対してもプログラミングを教えるというのがあるべき姿ではないか。」と原田氏。

親が教えられないならまだしも、親が必要性を感じないため、プログラミングがないがしろにされる可能性もある。今回は、子どもが学ぶプログラミングと、プログラミング教育の背景、プログラミング教育が普及した未来予測に迫る。

コンピュータは本来、プログラムを作るための道具

子どもと一緒に学ぶプログラミングとはどういうものだろうか。原田氏が開発したビスケットは、「コンピュータってこういうものなんだ」を直感的に知ってもらうためプログラミングから数学と英語をなくしており、至ってシンプルな作りとなっている。

ビスケットには、「めがね」という部品がある。この「めがね」がプログラミングの基本であり、変化の仕方をコンピュータに教える。

簡単なプログラムの例を示すと、

  1. 好きな絵を描く
  2. 「めがね」の左側に描いた絵を配置する。
  3. 「めがね」の右側に描いた絵を配置する。

この場合は、魚を左向きに泳がせたいので、右のレンズの魚は左のレンズの魚の位置から左にずらして配置している。このずらす幅を大きくすれば魚は早く泳ぐ。

ビジュアルプログラミング言語 ビスケットの画面例

これだけの手順で魚を動かすことができる。
ただ、これがプログラミングなのか、と疑問に感じるだろう。実は原田氏は多くのことをビスケットで実現している。

驚いたのは、動く模様のアートである。
作り方は以下に載っているので、興味のある方はチャレンジしてほしい。

引用元:動く模様 | ビスケット開発室 / 模様1 – YouTube

この模様は、つい無心で見てしまう。美しさを感じる。なぜ美しいと感じるかというと、規則正しく、等間隔に動くからだ。

このアートをほかのプログラミング言語で実現するとなると、細かなパラメータ調整や、繰り返し処理の命令が必要であるため、複雑な手続きになる。しかしビスケットだと数ステップでできてしまう。

「ビスケットのようなツールを使えるということは、同じことを正確に繰り返すことができる装置を手に入れたということ。それを自由に扱える能力を持っている人と、持ってない人どっちがいいですか?という話です。持っているのに使わないというのは、自転車を買ったのに乗らないことと同じです。」(原田氏)

コンピュータは不思議な道具だ。もともとは、プログラミングをするための道具だった。

しかし、商業化が進み、安く、一般ユーザーにも使いやすい製品が多数世の中に出てきた。そのことにより、ビジネスの現場だけではなく家庭にもコンピュータが普及するようになった。ここまでコンピュータを一般化したことは多くの企業の努力があってこそだが、逆にコンピュータという優れた道具を自分で工夫せずに受け身で使うという現実を生み出した。今後、AIが進化していったときに、既存のアプリを使うだけの人ではなく、より便利なものを作れる人が重宝される時代になるのは間違いない。

プログラミング教育とは、人間が生み出した道具を正しく、より便利に使えるようになるための教育である。

これからはアプリも自分たちで作る時代に

さて、プログラミング教育の本質とはどういったところだろうか。

「専門家と市民との断絶の問題があります。たとえば、料理人と市民の間の壁はなめらかで、どういうことをすれば料理人になれるかというのが見えやすい。しかし、医療や法律は専門家と市民の間に完全に壁があり、知識の差が激しい。その代わり、簡単に一般の人を騙すことができないように、専門家にモラル・高い倫理性が必要とされています。国家試験を課して、彼らに対しては厳しく法律で縛っています。

一方で、コンピュータはどうでしょう。コンピュータは専門家と市民との間に高い壁があるが、法律などで縛られていないので、騙そうとすれば簡単に騙せてしまう。

しかし、今更法律で縛ることは難しいので、料理側に行くしかない。壁を取り払わないと社会構造上まずいことが起こります。豊かな情報化社会を目指すには、今のいびつな状態はよくないのです。」(原田氏)

そして、原田氏は、専門家でない人たちもプログラミングができるようになると、アプリの形が変わるのではないか、と語っている。今は出来上がった製品を売り出しているが、これからは機能だけを単体で売り出し、組み合わせはユーザーにおまかせ、ということが起こるという。

農家で作った野菜をスーパーに買いに行き、好きな料理は自分たちで作るように、他の誰かが作った機能をStoreのような場所で買い、自分が好きなようにアプリを作るということだ。

さらにそれが進むと、クックパッドのような「アプリレシピ集」サイトができ、だれでも身近に自分が好きなようにアレンジしたオリジナルアプリを使う時代がやってくるのかもしれない。

プログラミングのバリアフリー化を図るビスケット

現在、子ども向けのプログラミング言語として、様々なものが出ているが、何を選べばよいのか迷うのではないだろうか。

「ビスケットはおもちゃでいうと、KAPLA(R)ブロックに似ています。」(原田氏)

KAPLA(R)ブロックはフランス製の積み木で、ワンサイズの板(厚み1:幅3:長さ15)のみで構成されている。1種類の板からイメージしたものはなんでも作れる板であることから、欧米では「魔法の板」と呼ばれている。
ビスケットで作品を作るために必要なものは「めがね」のみ。シンプルなものを工夫して使うことがKAPLA(R)ブロックとの共通点といえる。

原田 康徳博士

「真逆のおもちゃはレゴ。レゴは多くのパーツが揃っています。それと近いプログラミング言語は、スクラッチ。スクラッチもレゴと同じく様々なパーツが存在しています。」

レゴのパーツは非常に多い。基本のブロックをはじめ、丸い形のブロックなど様々な部品が存在している。窓が欲しいと思えば、窓の部品を買うことができる。

スクラッチはMITメディアラボが開発したビジュアルプログラミング言語で、プログラミング教室などではおなじみの言語となっている。スクラッチはあらかじめ用意されている部品が多いため、レゴとよく似ているそうだ。

一つの部品を工夫して使う点で創造性を鍛えられるのはビスケット、パーツを組み合わせながらプログラミングのロジックを学ぶのであればスクラッチ、という形で目的に応じて選択するのがよさそうだ。

ビスケットを実際に見てみると、ふと疑問が沸く。ビジュアルプログラミング言語を使いこなせたとしても、数学と英語を使うプログラミング言語と出会ったときに結局壁にぶつかるのではないかと。

これについてはどうだろうか。

原田氏は、ビスケットで作ったテトリスのプログラムを見せてくれた。「ビスケットでここまでいけるとは思っていなかった」とのことだが、こちらも非常に興味深い。

テトリスのブロックのパターン、上下左右の移動パターン、回転のパターンを描き、「めがね」に組み込むことでテトリスができるそうだ。

これをJavaScriptで書くとなると非常に難しい。こちら(バリアフリープログラミング | ビスケット開発室)にJavaScriptでのプログラミングが書かれている。

まず、ブロックを示すために配列の知識が必要だ。ブロックを動かすための座標移動、回転させるために座標変換の知識がないと書くことができない。ここにはある程度の数学のバックグラウンド、演算知識が必要になる。JavaScriptなどのプログラミング言語は、作りたいものを抽象化する力が必要になる。ブロックの表現は0,1の配列で表現する、ブロックの左右移動は座標を移動する…などといったことだ。

ビスケットでは、めがねを60個用意すればテトリスを作ることができる。やりたいことを具体的にめがねの中で表現できればよい。
しかし、めがねを60個描くのは大変だ。もっと楽にできないだろうか。

ビスケットでは、「このもっと楽に」に着目。めがねの自動生成機能を開発中だそうだ。

小学生のうちは、めがねを60個描けばよい。具体的に何をしたいかを愚直に表現し、まずテトリスを完成させる。中学生で基本的な数学の知識を勉強し、物事を抽象的に考えられるようになってから自動生成を使えることを目指すという。習ったばかりの数学の知識を実践的に使える良いチャンスとも思える。

誰も考えなかったこと、大人が考えられない発想こそ歓迎し、承認する

月2回、渋谷にて開催されているこどもビスケット開発室の様子も見学させていただいた。子どもたちが思い思いにビスケットを自由自在に操り、たくさんのゲームを作っていた。

画面上を主人公が移動し、ボスが発射している弾に当たるとゲームオーバー。

主人公がマッチをゲットし、ゴールまでもっていくとクリアする、というような、かなり手の込んだゲームを作っていた。

ビジュアルプログラミング言語 ビスケットの画面例

ビスケットのプログラムには正解がないので、大人たちが「これは違うよ」などと言うことはなかった。こうしたらもっと面白くなるよ、いいね!といった声掛けが印象的であった。

お子様と一緒に参加していたお母様にもお話を伺った。

「子どもは2年くらいビスケットをやっている。楽しんで通っている。プログラミングの習い事というと、難しく思われてしまうけど、作っている最中はタブレットで絵を描いているように見えるので大人の付き添いもハードルも高くないです。」

筆者も子どもたちの作ったゲームをプレイさせてもらった。おそらく大人が考えると、知識がある分、かっこよく考えすぎることもあるのだと思う。自由に作るゲームのはずが、世の中の面白いゲームを模倣するような形になってしまうのかもしれない。

その点、子どもたちは自分が面白いと思うもの、自分がかっこいいと思う絵を純粋に書くので、2時間の教室の間に3つも4つもゲームを創作し、プレイしているのが印象的だった。

友達同士でお互いの作ったものを見せたり、原田氏自ら子どもたちのゲームをプレイしたりなど、大人も子どもも一緒に楽しめる習い事だと感じた。

原田 康徳博士

プログラミングを子どもと一緒に学びたい、また自分が教えたい、という親御さんもいるだろう。原田氏は、以下のケースがあると語る。

  1. 親が得意で子どもも得意
  2. 親が不得意で子どもが得意
  3. 親が不得意で子どもが不得意
  4. 親が得意で子どもが不得意

4. の場合「問題が出てくる。」と原田氏。

「コンピュータにおいて、不得意になるというのはあり得ないのです。たとえば、運動神経はある一定の速さで筋肉を動かさないといけないので、個人差や向き不向きがどうしても出てきます。おそらく小説家に似ています。小説家は、いい作品を書くためにはどんなに時間が掛かってもいいから。プログラミングも同じで、時間が掛かっても、だれも作ったことのないものを作ることが大事です。それが不得意な人はあまりいません。」

親が得意だからといって「なんでできないの」「もっと早く」という声かけはあまり効果的ではない。

「AIが台頭する今後の世の中では、だれも思いつかないことを思いつき、形にできる能力に価値が集まる」と原田氏。

子どもが親の想像を超えたことをしたときこそ、承認することが重要であるといえる。親と一緒にやることで、子どもの発想にびっくりすることや、この前までできなかったことが急にできるようになるといった成長を見ることもできるだろう。
びっくりしたことや、成長を感じた部分を子どもたちにフィードバックしつつ、独特の感性に着目しながら、大人も一緒に楽しんでみる。これがプログラミング教育の姿なのかもしれない。

取材・文:池田 優里