My Life After MIT Sloan

組織と個人のグローバル化から、イノベーション、起業家育成、技術経営まで。

五歳からのプログラミング@MITメディアラボ

2010-06-06 12:57:16 | 2. イノベーション・技術経営

プログラミングって、ある意味最強の表現手段なのだと思うときがある。

例えば先日書いた私の欲しい電子書籍のアプリ出版社が実現すべき電子教科書も、
私がプログラミングのような表現言語を持っていれば、私が見ている未来の世界を製品にすぐに実現して、世の中に広めることが出来るのに、と思う。
でも、私にはそういう表現手段が無いから、一生懸命、色んな言葉で表現するのだ。
それが、自分でモノが作れる人たちやコンテンツをもってる人たち(教科書会社とか)の目に届いて、一緒に未来を作っていければ・・と願いながら書いている。

もっとも私も一応FORTRANとかC++はかつては少しは書けたので(もう錆ついてるが)、
ちゃんと勉強すればObjective-CもJavaも書けるようになるのかもしれないが・・。

このように、いくら頭の中に未来のデバイスやアプリの姿を詳細まで想像できても、
プログラミングなどの表現手段を習得していなければ、実現するのが難しい。
どんなに音楽が好きで、曲をひらめいても、楽器が弾けなければ十分に表現できないのと同じだ。

しかしながら、プログラミングは一般的には習得が難しい。
良く分からない文字列が続いたり、カッコが羅列したり、多くの人にはイミフメイである。
ところがこの
プログラミングを、直観的に理解し、子供でも難なく使えるようなレベルにしよう、という試みが実はMITのメディアラボから生まれている。
その名もScratch。
(画像をクリックするとScratchのページ→
http://scratch.mit.edu/に行きます。
 日本語は、Language barで「日本語」を選択。)

この簡易化されたプログラムを使って、いま世界中の子供達やティーンズがゲームを作って、
次々に自分の作ったゲームをこのWebページ上で公開している。
現在の会員は約100万人、そのうちアクティブにゲームを作ってるのが17万人だという。
Scratchをダウンロードすれば、40ヶ国語以上の言語(もちろん日本語も含む)で利用できるから、世界中の子供達が使えるのだ。
(日本語の解説も公開されている→http://scratch.mit.edu/projects/0fg/931658

Scratchプロジェクトの中の人によると、意味のあるゲームを作っている最少年齢はなんと5歳だとか。
一番活発にゲームを作っているのは13歳から19歳のティーネイジャーだという。
既に100万を越えるプログラムが公開されていて、その数は一日に数千個ずつ増えている。

Scratchの特徴はプログラミングの命令が一つ一つのブロックになっていることだ。
まるでレゴブロックを組み合わせるようにして、プログラムを書くことが出来る。
プログラムのつまらない形式に捕われず、必要な概念を理解することができるわけだ。
(Scratchを産んだメディアラボの研究室のスポンサーはLEGO社で、スポンサー孝行でもある(笑))

こちらが、Scratchでのプログラミング画面なんだけど、真ん中の列が実際に書いてるスクリプト(命令群)
右側(半分で切れてるが)が、実際のゲームの完成画面。
そして、左側から必要な命令ブロックを真ん中のスクリプトにドラッグして、組み合わせればプログラムを書ける仕組みだ。

ブロックの形は、命令の意味が直感的にイメージしやすい形になっている。
例えば、どのプログラミング言語にも「For」という同じパターンを複数回繰り返させる命令があるが、
これは、他の命令ブロックを中に挟めるようなバインダーのような形をしている。
(図の右側のForeverとかRepeatとか書いてあるブロック)

ブロックに書いてあるのも、Repeat -- times とかWhen I receive..など、直感的に分かる自然言語だ。
Forとか、aを定義してからif a=XXとか分かりにくい(ごめん)言語を使う必要は無い。

こうやってプログラミングを図示して分かりやすくするソフトウェアは今までにもあったが、ここまでわかりやすい物は無かった。
やはり子供でもプログラミングできることをターゲットにしてるのが、この違いなんだろう。

更に、これが40ヶ国語に翻訳されてるので、Scratchの言語を「にほんご」にすれば、
「--回くりかえす」とか「--がにゅうりょくされたら」のように表示される。
だから言語のバリアは無い。
(個人的には日本語漢字版も作って欲しい→漢字版あるそうです!)

命令には、RepeatやSwitchのように何にでも使える命令もあれば、DanceとかWalkのように特殊な用途にしか使えないものもある。
これもレゴブロックと同じ発想で、水兵さんとか超特殊な用途にしか使わないブロックもあるが、何にでも使えるブロックもある、というわけだ。

このScratchの更にすごいのは、他の人が作ったプログラムを「Remix」して新しいプログラムを作れることだ。
他の人のゲームを見て、面白い、と思ったらそれを使って、さらに機能を付け加えたり、他のゲームと組み合わせたり出来るのだ。

実際にScratchで公開されてるゲームを見ていただければ分かるように、かなり色んなゲームが、これを使って作成可能だ。
もちろん、限界はあるが、その限界を感じるようになったら、他のプログラミング言語を習得すればいいだけのことだ。
Scratchで、プログラミングの考え方の基礎を身につけてれば、それはたやすいことだろう。

こういうソフトを使って、子供の頃から自然とプログラミングの考え方を習得し、
頭に思い描いている面白いアイディアを次々に製品にして実現することが出来たら、すごいんじゃないかと思う。

メディアラボでは、年に数回「Scratch Day」という、世界中のScratchファンの親子が集うゲーム作成の会をやっている。
もっとも、親子で来るような人の親は、エンジニアとか、Geekyな人が多いらしいけどね。
日本にも、このScratchの普及を進めてる団体があるので、子供にプログラミングの英才教育をしたい!という熱心な親御さんは是非ご参考ください。
(日本では対象年齢小学三年生~となっていますが)

個人的には、子供だけじゃなく、プログラミングやったことない大人に使って欲しいと思ってます。
今までプログラミングなんてやったこと無いけど、iPadアプリを作ってみたい、起業したい、
なんて漠然と考えてる大人が、プログラムの基礎を習得するのにとても便利なツールだと思います。
プログラムを書いて物が出来ることの喜びもすぐに共有できるし。

そういう人がどんどん増えたら、アプリ作成で起業したいなんて人も増えて、
日本の活性化に少し役立つのではないかと期待してるからです。
そして、プログラミングが普通に出来て、ものが作れる子供が今よりも増えたら、
Bill GatesやSteve Jobsが日本から生まれてくる日も遠くないと私は思ってます。

←面白かったら、クリックして、応援してください!



最新の画像もっと見る

7 Comments

コメント日が  古い順  |   新しい順
漢字もあります (abee)
2010-06-06 15:08:25
はじめまして、日本語版の作者です。ご紹介ありがとうございます。
翻訳についてですが「にほんご」の近くに「日本語」が見つかると思います。
あと、5歳でも使えた例も無いわけではないのですが、それは個人差で、Life Long Kindergartenでも一応8歳くらいからを推奨しています。これはピアジェの発達心理学における具体的操作期で物理量の保存概念が形成される頃にあたります。
私の観察でも、それ以下の場合はブロックをランダムに並べて、その動きを楽しむ感じになることが多いです。確かにScratchのブロックは簡単ですが、やはり抽象的な記号なので、これと具体的な動きがきちんと結びつくにはある程度の発達が必要です。小さい子には原田さんという方が作られたViscuitという言語がよいかもしれません。
http://www.viscuit.com/
あと、日本で活動をしている「こどもプログラミングサークル スクラッチ」のWebサイトはアドレスが変わっていますので、よろしければそちらをご案内いただけるとうれしいです。
http://scratch-ja.org/
よろしくお願いします。
返信する
ありがとうございます (Lilac)
2010-06-06 16:01:58
@Abeeさん
早速有難うございます。アドレス変更しておきました!
漢字版の存在も。

なるほど、物理量の保存概念がないと、確かにこういう概念を理解するのは難しいのかもしれませんね。
ちなみにMedia LabのScratchの中の人によると、関わってる一番小さい子供は3歳で、それはまだ、単にブロックを組み立ててる感覚でやっているだけのようです。
まともにプログラムを組んでいる人で、5歳の人もいるという表現でしたので、中には理解して書いている子供もいるのかもしれません・・。

いずれにせよ、子供だけでなく、大人もこれ使えますよね。
大人ほど、新しいことを学ぶのが困難になるので、こういうツールが役に立つのかも知れません。
返信する
Unknown (shu)
2010-06-06 16:46:39
はじめまして、プログラミング教育に興味をもってるカーネギーメロン大の学生です。自分はこういう感じで、大人の方々にプログラミングを教えるソフトを、iPad向けに開発しようとしています。

つい昨日からLilacさんのブログを読み始めました。これからも期待しております。
返信する
Unknown (Unknown)
2010-06-06 16:48:32
この話題を進めるなら、LOGOとタートル・グラフィックスについての総括もお願いします。
返信する
Unknown (かなめ)
2010-06-06 16:51:58
Scratch dayに実際に参加していて思いましたが、現Scratchのもう一つの魅力は、レゴのMind Storm等とリンクさせることで、子供達が実際にScratchでプログラミングした内容が、目の前のレゴブロックに伝わり、実際に動く!ということだと思います。

プログラミングというと、とかくモニターの中の現象に収まりがちですが、Scratch dayでは、小学校低学年くらいの男の子がレゴで組み立てた風車をScratchで回す、という内容のプログラミングをして、実際に動かしていました。

そして、動いているところを誇らしげに私に見せてくれた子供の顔を今でも覚えていて、なんかエンジニアとして、すごく純粋に感動を覚えました。

このように、『プログラミング』で、『現実に存在するモノを動かせる』んだ、という体験は何物にも代え難い貴重な体験だと私は思います。

ちなみに、私は、Scratchよりも大人にはMedia Lab産の『Processing』をお薦めします。
でも、子供ができたら、きっとScratchから教え込むと思います(笑)
返信する
8歳からのプログラミング (HW)
2010-06-06 21:27:18
私にとっては、8歳からこれをいじりだしたのがコンピュータとの出会いだった。
http://ja.wikipedia.org/wiki/MSX
ゲームのBASICプログラムを打ち込んで(当時は雑誌に載っていたプログラムを打ち込んでいたのです)改造したりしていました。

大したものを作らなかったけど、その頃いろいろいじっていたので、プログラミングはどうにかなるだろうと思えるのは、今、宝になっていますね。

今後もしばらくは、プログラミングができることが有用な武器になると思います。

ご紹介のものなどで、プログラミングに子供のころから触れる機会があるといいですね。
返信する
Unknown (Lilac)
2010-06-07 10:23:08
@Shuさん
是非、そういう教材作ってください!

@LOGO
スクラッチの前身ですね

@かなめさん
今日は有難うございました。
Mind Storm-実際の物理的に動く何かと組み合わせるというのは、子供にとってはかなり面白い敬虔だと思います。
私も6歳のとき、つくば万博のNEC館か何かで体験した、自分が命令したとおりにロボットが動く、というのが一つの原体験になってます。
プログラミングで現実のものを動かせるってエンジニアの醍醐味ですよね

@HWさん
確かに小さい頃の何かを作り上げた経験は、その後の自信になりますよね。
子供向け教材としてはかなり良いと思います。
返信する

post a comment

ブログ作成者から承認されるまでコメントは反映されません。