MITメディアラボがプロジェクトを推進

子どもたちがOSS活動、プログラミング言語「Scratch」が開く未来

本当の意味でコンピュータリテラシーがあるというのは、つまりプログラミングができるということだ――。“パーソナル・コンピュータ”という概念の生みの親で、先進的なプログラミング言語「Smalltalk」やGUIというインターフェイスの開発者としても知られるコンピュータ科学者のアラン・ケイ博士は、そう言い切る。コンピュータに囲まれて育ったわれわれの子どもたちは、コンピュータリテラシーを持つ初めての世代になるだろう、と。

ケイ博士の議論は、“リテラシー”という言葉がもともと指していた文字の読み書き能力の歴史を振り返れば説得力を持つ。今では小中学生でもケータイで文字を書き送っているが、文字の歴史のほとんどの期間、非専門家が文字を読み書きする時代が来るとは、誰も想像すらできなかった。文字は、一部の特別な訓練を受けた人々だけが扱いうるものだった。グーテンベルクの活版印刷技術の発明から数えても約500年。先進国で読み書きが一般化したのは最近のことだ。文字にしろコンピュータにしろ、新しいテクノロジを使いこなすには数世代を要する、というのがケイ博士の指摘だ。

いま現在専門家だけが行っているプログラミングも、いずれは誰もが行うようになる。できあいのソフトウェアだけを使っているわれわれ第1世代は、文字でいえば、読むのがやっとという世代に過ぎない。ただし、現在職業的に文章を書く人がいるのと同じで職業プログラマが完全に失業するわけではないだろうという。

ケイ博士は、こうした理念に基づいて、子どもたちにコンピュータリテラシーを教える教育を長年続けている。アップル在籍時代の1995年には教育向けのオブジェクト指向プログラミング言語、「Squeak」（スクイーク）を発表、各地で講演や教育活動を展開している。Squeakは画面上にブロックを並べることでオブジェクトや、オブジェクトに送るメッセージを設定でき、ビジュアルな環境でプログラミングできる。

Squeakの発展系「Scratch」の日本語版が登場

MITメディアラボのミッチェル・レズニック教授

ケイ博士のライフワークであるコンピュータリテラシー教育の系譜に連なるのが、先進的なコンピュータ研究で知られるMITメディアラボのミッチェル・レズニック（Mitchel Resnick）教授が推進する教育用プログラミング環境「Scratch」（スクラッチ）だ。

1月17日に東京で行われたMITメディアラボの研究成果発表の場に登場したレズニック教授は、現在教育が抱えている大きな問題の1つはカリキュラムや教材が前世紀初頭の古い社会を前提としていることにあると指摘する。現在、経済成長を支えているのは金融革命にしろITやバイオ、ナノテクなど技術分野にしろ、知的なイノベーションだ。しかし学校のカリキュラムは相変わらず知識偏重のままで、知的創造の訓練はない。むしろ、ブロックを組み替え、絵を描き散らして遊んでいる幼稚園児たちこそが、理想的な学習をしているのだという。

レズニック教授はいう。「子どもたちは、まずあれこれと頭で考え、作り、そして遊びます。作ったものを、ほかの子どもたちと共有して、またそこで考える。そうしたサイクルの中で多くのことを学びます。こうしたモデルを物理的な環境だけでなく、仮想環境でも作りたかったのです」。教授がMITで属している研究グループの名前は「ライフロング・キンダーガーテン・グループ」、つまり生涯学習ならぬ、“生涯幼稚園”だ。

MITメディアラボから世に出た物理的な教育用おもちゃでは、「MINDSTORM」が挙げられる。センサーやアクチュエータを制御するプログラミングが可能なロボットとしてレゴ社から発売され、商業的にも成功を収めた。「電子的なおもちゃはいくらでもありますが、それらの多くは、あらかじめプログラムされたことしかできず、子どもたちは反応を見て楽しむだけです」。

ぬいぐるみを使ったデモンストレーション

そう話すと教授はおもむろに壇上のテーブルに用意してあった猫のぬいぐるみに歩み寄り、頭に手をかざした。「ニャー」。ぬいぐるみには光センサーが備わっており、一定以上の光量が検出されれば“ニャー”と鳴くとプログラミングしてある。こうしたおもちゃに触れて自分でプログラムすることで、子どもたちは科学技術に対する理解を深めるのだという。ツールを与えられた子どもたちは往々にして大人の想像を超える作品を作るものだという。

多くの電子的おもちゃが非プログラマブルであるのと同様に、PCの世界もゲームにしろウェブにしろ、子どもたちが創造的遊びができるツールは少ない。Scratchは、そうした数少ないツールの1つだという。

Scratchでは、命令は、すべて短冊状のブロックで表現される。この短冊を自由に並べて、「forever」「when」「if」などのループ・制御構造ブロックで囲むことで処理の流れを表現する。ループに新たに命令を追加すると、いちばん外側のループブロックが自然に大きくなるなど、非常に直感的なインターフェイスだ。例えば、マウスを左右にスライドすることで写真にマウスの移動量に応じたエフェクトをかけるといった処理が行える。

命令群はあらかじめ用意されているものだけでなく、追加開発することでハードウェアの制御も行える。例えばNECはMITメディアラボとの共同研究として、同社の小型ロボット「PaPeRo」向けの命令群を試作。Scratchを用いてPaPeRoを音楽に合わせて踊らせたり、人間の顔がある方や声がする方を振り向かせるなどのデモンストレーションを行っている。

Scratchの画面例。左の命令群から、中央のプログラム処理記述エリアにドラッグ＆ドロップしてプログラムする。色分けされていて、ブロック構造が一目瞭然

日本語対応版も登場。この例では右にある画像に対してアクションやエフェクトを定義している。マウスを移動すると顔写真に回転エフェクトがかかる。「ずっと」は無限ループで、C言語でいうwhile(!0)に相当する

NECはMITとの共同研究で小型ロボット「PaPeRo」をScratchで操作するデモンストレーションを公開

YouTube型サイトでオープンソース的発展

Scratchには、Scratch版YouTubeともいうべき、プロジェクト共有サイトがある。自分が作成したプログラムを公開して、他の子どもたちと共有する場だ。人気ランキングやコメント欄があるなど、今どきのコミュニティサイトだ。Scratchの画面上には「Share」ボタンがあり、ワンクリックで自分のプロジェクトをアップロードできる仕組みが用意されている。

驚くのは、このコミュニティの活発さだ。レズニック教授によれば、昨年5月に英語版Scratchをリリースして以来、すでに6000を超えるプロジェクトが登録されているという。中には多くのクローンゲームがあり、テトリスに似たゲームもある。最初は白黒表示の素朴な実装だったものが、どんどんバージョンアップされ、カラー表示やスコア表示に対応したものが登場するなど、子どもたちがオープンソースコミュニティ的な「プログラムの共有と開発」を行っているのだという。

同サイトのユーザーの年齢層は12才にピークがあるものの、幅広い年齢層のユーザーがいるという。レズニック教授は、Scratchを子どもたちのためだけではなく、これまで自分でPCやハードウェアをプログラムする術を持たなかったあらゆる年齢層に対して提供していきたいと話す。

自分が作成したプログラムを公開、共有できるScratchのコミュニティサイト。参加者の年齢でいちばん多いのは12才、登録プロジェクト数は6000を超えるという

テトリスに似たゲームは、複数人によってバージョンアップが行われ、カラー化、スコア表示対応など機能が増えていった（左がオリジナルバージョン、右がカラー化したバージョン）。子どもたちがオープンソースコミュニティに似た活動を行っている

創造的な社会へ向けて

Scratchに限らずプログラミング言語用インターフェイスを用意すれば、エアコンやテレビ、HDDレコーダーといった家電を自由に操作することができる。現在、そうした手段が提供されていないのは技術的制約というよりも、「一般ユーザーにはプログラミングができない」という暗黙の前提があるからに過ぎない。子ども時代にScratchのような環境でプログラミングの概念を学んだ子どもが成長し、ユーザーの大半となれば、HDDレコーダーの足りない機能を自分で実装したいと考える人が増えるかもしれない。そうなればケイ博士がいうように誰もが何らかのプログラミングをする時代がやってくるだろう。レズニック教授はいう。「物理的な世界であろうと仮想的な世界であろうと、ありのままのものを使うだけでなく、次の世代の子どもたちには自分たちを取り巻く世界をコントロールできるようになってほしい。そうすることで、未来の偉大な思想家や開発者が創造的な社会を作っていく下地ができてくるのだと思います」。

関連リンク Scratch

（＠IT 西村賢） 情報をお寄せください：