おがさわらなるひこのオープンソースとかプログラミングとか印刷技術とか

おがさわらなるひこ @naru0ga が技術系で興味を持ったりなんだりしたことをたまーに書くブログです。最近はてなダイアリー放置しすぎて記事書くたびにはてな記法忘れるのではてなブログに移行しました。

クリエイティブ・コモンズ・ライセンス
特に断りがない場合は、本ブログの筆者によるコンテンツは クリエイティブ・コモンズ 表示 - 継承 4.0 国際 ライセンスの下に提供されています。

SCRATCH DAY in Tokyo 2009

やっと書く暇ができた……というか気力がでてきました。

SCRATCH というのは MIT のメディアラボで開発された教育用プログラミング環境です。製作者における説明はこちらの About ページに簡潔にまとまっています

こいつのサイコーにクールなところは、プログラミングといいつつ、「プログラムコードを書く」という概念を完全に捨て去っていることです。
自分で自由に動かせる「スプライト」と、そのスプライトに動きの指示を行う「パレット」(それから背景)で実現され、「パレット」を並べるだけでどんどんプログラムができてしまう。パレットには十分な材料があり(普通の制御構造や、判断式などは一通り揃っている)一方でスプライトやサウンドはあらかじめ用意されたもの以外に自分で取り込んだり、もちろんマウスで書くことだって可能で、対象である子供たちの想像力を膨らませてくれます。
試しにパレットの例。こんな感じでほとんどマウスのドラグアンドドロップだけでパレットへ動作が指示できる。すごく面白いです。

ちなみにこの手の環境に感心がある方は Squeak がぱっと思い浮かぶかもしれませんが、SCRATCH は Squeak VM を使ってはいますがいわゆる「言語」色を捨てているところが潔いですね。
代わりなにか言語処理系自体を改造する(例えば何か機能を追加したくて新規にパレットを追加する)のはかなり大変(というか SCRATCH の処理系として fork せざるを得ない)というのが欠点でしょうか。

詳しくは Software Design 2009年3月号に後述の阿部さんが記事を書いてるのでご一読あれ(オイラはこいつで SCRATCH の存在を知りました)。

Software Design (ソフトウエア デザイン) 2009年 03月号 [雑誌]

Software Design (ソフトウエア デザイン) 2009年 03月号 [雑誌]


さて前説が長くなりました。

SCRATCH の開発チームである MIT メディアラボ ライフロング・キンダーガーデングループが、もっと多くの子供たちに触れてもらおう、もっと多くの大人たちに SCRATCH の存在を知ってもらおう、ということでSCRATCH DAY 2009 というイベントを5/16 に企画しました。これは同じ日に SCRATCH で遊ぶだけでなく、他の国の会場をストリーミング中継して相互に結ぶなどして SCRATCH の仲間をつないでいこうというイベントです。

そこで、これに呼応する形で、以前より SCRATCH による子供教育に取り組んできていた埼玉県川口市のメディア教育施設「メディアセブン」さんが主催して、SCRATCH DAY in Tokyo 2009 というイベントが行われたので、いそいそと出かけてきた次第でございます。


なおすべてのプレゼンテーションはこちらにまとめていただいています*1。当日の ust 中継の URL もありますのでよろしかったらぜひどうぞ。


なお当日の進行役はアラン・ケイの直弟子でバリバリの Smalltalker、Squeak KEdu および SCRATCH の日本語化を担当されている阿部和弘さんに行っていただきました。
メディアセブンで普段から SCRATCH による教育を推進されている中山さんをはじめとするメディアセブンのみなさま、スピーカーの皆様には素晴らしいイベントを開催していただき心より感謝したいと思います。

Scratch Day キーノート

MIT SCRATCH チームののミッチェル・レズニックおよびカナン・ブレナンよりキーノートスピーチがありました。日本語字幕付なのでわたしの無粋な解説などは抜きでごらんください。
http://dotsub.com/view/740f5787-2046-471c-a7f3-663619289873

新しい教育用ビジュアル言語のスタンダード「Scratch」 by 阿部和弘さん

プレゼン資料はこちら なのですが、これって実は SCRATCH のプロジェクトそのものなんですね。まあ当たり前と言えば当たり前なんだけど、プレゼン書くこともできちゃいますよと。
しかもこれは SCRATCH のサイトなのですが、別に SCRATCH の実行環境なくても動くんですね*2Flash にでも変換してるのかな。

ので逐語的にだらだら書くのは止めてキーワードのみ抽出。

SCRATCH の開発者、ミッチェル・レズニック
  • LEGO MINDSTORM の中の人*3
  • シーモア・パパートの直系の弟子
シーモア・パパート
スローガン
  • IMAGINE
  • PROGRAM
  • SHARE
    • これ重要!
    • 作ったものを人と共有し、意見をもらってフィードバック
    • さらには人のプログラムを元に新たなプログラムを生み出すことも (REMIX!)
公式サイト
  • YouTube ライクな「共有」システムを実現
  • SCRATCH の画面でこのボタンをぽちっと押してちょこちょこっと設定を書くと公式サイトに up される

  • 公開されたプロジェクトに対しては
    • お気に入り登録
    • ランクづけ
    • コメント機能
    • REMIX
      • そのプロジェクトを元に別のプロジェクトを作る
      • ただし人のプロジェクトは上書きできず fork することになる
      • たくさん fork されたプロジェクトは評価される
Pico Board
  • こんな感じの基板

  • センサーからの入力を拾って SCRATCH で扱うことができる

「ゼロからはじめようスクラッチ プログラミング」by 石原 正雄さん

石原さんは株式会社 ラーニングシステム代表取締役であります。(株)ラーニングシステムってどこかで来たことがあると思ったら LEGO Mindstorm の代理店さんだったのね。

まぁハンズオンなのでここでぐだぐだ書くことはありませんが、一個だけ注意。

Linux 版の SCRATCH は Experimental Implementation なので音が出ないとか終了できない (^^;) とかいろいろハマります。

なお終了できない不具合はどこかのページで書いてあったのですが、apt で squeak 入れて、/usr/bin/scratch は単なるシェルスクリプトなので、そこで起動している squeak VMsqueakVM に差し替えれば治るようですが、もしかして Pico Board が動かなくなるとか副作用があるかもしれません。

「高校生を対象とした教育実践の報告 〜おにいさんScratch×おねえさんScratch〜」by 杉浦 学さん

これも資料ページの PDF 見てもらった方が早いと思うのでくだくだ書きません。面白かったのは:

  • やっぱり男子生徒はゲームが好き
    • どんなにしょぼいゲームでも自分が作ったゲームとなるとひたすら遊んでいる
    • 週末をすべて SCRATCH に注ぎ込む生徒も出る
    • 「情報」の授業の三学期だけでプログラミングを教えることは可能!
  • 一方で女子生徒は課題設定が難しい
    • 下手にゲームとか言われると引かれるし
    • ので、ちょっと可愛い電子ペットなんかでやってみた
    • どちらかというと一齣だけの体験学習だったので、女子高生もプログラミングに食いついてくれるかはまだ未知数
      • どんなになるか楽しみですね (^^)

てなとこかな。

学ぶことが楽しい!はじめてのScratch (on Linux) 〜ScratchとPicoボードを使った楽器作りの授業〜

今度は先の発表とは異なり小学校での事例。
しかも Knoppix/OSP を用いてということで、なかなか茨の道。
というのは先に書いたとおり、Linux 版は experimental implementation *7 で肝心要のサウンドが出ない。

そこで阿部さんをはじめとする squeak-ja のメンバーに協力してもらって、なんとかサウンドが鳴る Linux 版を作ったと。素晴らしい。
SCRATCH は来月 1.4 が出るとのことなので、盛り込まれてくれるといいな。
ということで低予算 (有休 PC の再利用) で SCRATCH で授業をできるということになりましたと。

そしてこの課題設定の面白いのが Pico Board を使って楽器を作らせるというもの。作った楽器で演奏会をするという。
こうすると子供たちの創造力はむしろ SCRATCH のプログラムよりもどうやって楽器を実現するかに向かい、アルミフォイルで導通を検知するしくみを教えてやらせてみると、いろんな音の鳴らし方を考えるのではなく、スイッチや鍵盤をどう面白く作り上げるか、という方に向かうらしい。
これはちょっと教育側としては意図 (= 限られたセンサーしか持たない Pico Board でどうやって多音階演奏可能な楽器を実現するか) とずれてしまったので、課題曲を設定するなどしたらいいかもしれない、などという考察があげられていました。

それにしても小学生で Linux で制御基板をつかったプログラミングの授業ができちゃうんだから、子供も SCRATCH もポテンシャルは高いなぁ。

公共施設における「こどもプログラミングサークル スクラッチ」の取り組み by 中山晴奈さん

中山さんは今回の SCRATCH DAY in Tokyo の開催スタッフの一人であり、SCRATCH による子供社会教育を実践してきた方です。

メディアセブンとは

基本的には資料ページにあるメディアセブンの紹介*8 を見ていただければよいのですが、

  • 基本的には川口市立図書館の付属施設
  • 主な事業
    • PC や DVD 再生機のレンタル
    • メディアに関わる様々なワーキンググループ
      • 大人向けトークライブ
      • 子供向けにゲストを呼んだワークショップ
      • SCRATCH をはじめとする体験教室 8PC だけでなく、自然観察、社会見学なども含む)

今の子供たちには三つの「間」が足りない
「仲間」「間(ま)」「時間」
ワークショップはこれらを与える場として重要!!!

なぜ SCRATCH なのか?
  • そもそも中山さんはデザインの出で、プログラミングとか関心はなかった
  • 大学時代の友人が VJ をやっていて、「これ使えるんじゃないかな?」ということで話題になり興味を持つ
  • ML などで勉強
  • メディアセブンでの活動ということで提案し今に至る

もともとプログラム畑じゃない人が子供たちを指導してどんどんプログラムを生み出すって活動ができているところがやっぱり SCRATCH の威力なんだろうなって思いました。

「こどもスクラッチ」とのコラボレーション

ということで裏番組で進行していた「こどもスクラッチ」の見学へ。
タイトルのとおり2時間枠でメンターのお兄さんお姉さんがつきながら、一本ゲームを作りましょう、という催し。
これの発表会を見学させてもらいました。

子供たちの学年は小学生でけっこう広い範囲にばらけている感じ。
兄弟で来てる子とかもいたのかな。
複数回来ている子もいれば、今日 SCRATCH 触るの始めて、って子もいて、なかなか多様でした。

内容はメディアセブンの SCRATCH ギャラリーを見てもらうといいと思うのですが、2時間で仕上げたとは思えない力作ぞろい。
完成しなかった子も、スプライト一生懸命書き込んでみたり、自分の思った動きをさせるために長いスクリプト書いてたり、本当に一生懸命やっているのが印象的でした。

これは真面目な話、すごいことだなーって思いました。
子供の教育じゃなくて、社会教育とかそっちにも使えないだろうか。
具体的にはプログラマじゃない人にプログラミングの喜びを教える道具にならないだろうか。
そう思わされてしまう魔力がありました。

PaPeRo 君との対話コーナー

PaPeRo とは NEC が開発している個人用ロボットですなんかかわいい

まあそれはさておき本来は自律型ロボットなんですが、わざわざ脳みそを抜いて (って書くとなんかヤだな)、それで SCRATCH に PaPeRo 君を制御するためのパレット (例えば「xxxxと喋って」とか「首を回して」とか) を追加して、SCRATCH で制御できるようにしよう、という研究が今行われているわけです。
さらに夏頃になると研究所にある PaPeRo 君を Web CAM で写しながら、SCRATCH で好きな動きをさせるという Web サイトもオープン予定だとか。

NEC の研究所の方に伺ったところ、SCRATCH ももちろん非常に楽しいけれども、フィードバックが大きければ大きいほどプログラミングの喜びというのは生まれてくる。SCRATCH の素晴らしい所はスプライトをすごく簡単に動かせてしまうところだけど、それが実際のロボットだったらどうだろうか。自律型ロボットとはまた違う楽しさがあるのではないか、ということでこういう研究をやっているとのことでした。

SCRATCH 1.4

キーノートスピーチで「来月リリース予定」と言われていた 1.4 ですが、阿部さんがデモしてくれました。

  • NetBook にも適合する小さな画面
  • LEGO との協調:モータやセンサを制御できる*9
  • 写真機能:写真を撮ってそれをスプライトにできたりする

個人的には Linux 方面をもうちょっと頑張って欲しいです。コミュニティのみなさんガンバレ!

おまけ:OMPC

先ほどもちょろっと書きましたが、ネグロポンテの OMPC。
始めて実物見ましたが、すごいよくできてます。
発展途上国のみんなにコンピュータを与えて教育するにはどんなスペックが必要かがすごい考えられている。

例としては:

  • コネクタ類はすべてカバーされるようになっていて、閉じると簡易防水になる。急な雨でも安心
  • 屋外授業だとパソコンは膝の上に置くことになるので、暑くならないように、ロジックボードは液晶パネル側に配置してある
  • タッチパネルが三個所に分かれているのは、綴り方の練習に使いやすいように。
  • 半反射型液晶採用により、バックライトを消灯したら直射日光でも見やすい。この状態だとバッテリーが10時間持つ。

単純に小さくてただ安いだけの Netbook とは違い、本当にニーズに対して真摯に取り組んだ製品だと思いました。
さすがネグロポンテ、ただの山師ではありません。


ということで楽しい行事でした。
報告がおくれてしまって主宰者側の皆様すみません。
ありがとうございました!

*1:これは質疑応答で私が質問して、公開の許可をいただいてもらいました。こんなことでもコミュニティ貢献……なのかな?

*2:たぶん。私の SCRATCH 環境だと音が鳴らない (後述) のにこのプレゼンだと音が鳴っていることからの推察。

*3:そういや MINDSTORM もブロックを組み合わせてプログラミングする方式だったかも!

*4:「心の社会」などの著書で有名。

*5:MINDSTORM の前身に LEGO LOGO ってプロジェクトあったね。

*6:すでに真理を覚えるのではなく、自分の体験として学び会得していくのが教育である、という考え方。工学の分野ではかなりの真理だと思うけど、科学教育としては異論も多いみたいですね。

*7:阿部さんに聞いたところ、experimental であると同時に、OMPC (元メディアラボ所長:ニコラス・ネグロポンテが推進する100ドルPCプロジェクト。OS は Linux) のためのベースラインだという面もあるとのこと。

*8:ちなみにこのページ自体もWebページで本を作る BCCS というサービスがメディアセブンと提携して作った物だそうです。

*9:Mindstorm とは違う製品になるようです。ラーニングシステムさんで代理店になる予定だとか。