以前、"6歳からのPython"というエントリーで、娘にPythonを教えようとして挫折した話を書きました。その後も、なにかいいものが無いかなと探していたところ、SCRATCHというものを発見。MITのメディアラボが開発した、8歳以上が対象という開発環境です。
似たようなものとして Squeak Etoys があり、使ってみたことがあるのですが、Smalltalkというマイナーが言語がベースで、いろいろ独特なので、入門用としてはどうかなぁと思っていました。SCRATCHもSqueakベースですが、表面上はSmalltalkっぽさは無く、CやJavaのような普通の手続き型のプログラム言語(+オブジェクト指向)であり、僕にはこちらのほうが取っ付きやすいと思えます。普通の言語へのステップアップもしやすいでしょうし。
SCRATCHの難点は、昨年公開されたばかりなので資料が少なく、日本語版も無いことです。でもなんとかなるでしょう。逆に考えれば、英語の勉強になっていいかもしれん。そもそも、たいていのプログラム言語は英語ベースですしね。
さっそく、リリカにやらせてみました。"Getting Started"の内容をざっと説明して、あとは好きにやらせてアドバイスする、という安直な教え方をしたのですが、リリカは理解したようで、いろんなキャラを呼び出して、動きをつけたり音を鳴らしたりしていました。
ブロック状のコマンドを組み合わせると、それが順次実行されることは、驚くほどあっさり理解しました。ループの概念もすぐに分かったようです。処理の構造が、視覚的にわかるのは大きいですね。結果がキャラクタの動きとなって、すぐに出ますし。カット&トライもやりやすいです。
Squeak EtoysはUI(ユーザーインタフェイス)が独特で、けっこう難しいと感じましたが、SCRATCHのUIはよく練られています。特にお絵かきツールの使いやすさに感心しました。なにげない機能ですが、こういうところにセンスが出るんだよな。子供が迷いにくいように操作をシンプルにしつつ、それなりの機能が盛り込まれています。リリカはこの手のツールは初めてのはずですが、最低限のことを教えたら、あとはどんどん使っていました。
リリカはこのお絵かきツールが気に入って、もっぱら絵を描いて楽しんでいました。画面に出ているキャラクタはすべてリリカ作です。まぁ、そういう入り方もアリでしょう。 ひとしきり絵を描いたあとで、それぞれのオブジェクトに動きを設定して、一斉に動かしたりしています。それだけでも面白いですね。
コンテンツ(キャラクタやサウンドなど)を呼び出すためのファイルブラウザには、改善の余地があります。ベタにファイル構造を見せているだけなので、容易に迷うのですね。内部管理されたコンテンツを選ぶ操作と、外部ファイル(PC上の普通のファイル)をインポートする操作は分離するべきでしょう。
ともあれ、Getting Startedの内容はリリカは把握したようです。正味2時間くらいやったでしょうか。次は、キー入力による制御や分岐について教えようと思っています。ぐっと難しくなりますが、ついてこれるかな… 最終的には、簡単なゲームを作るのが目標です。
あの・・トヲル先生・・・
私がまだ理解していないんですけど・・・
私だけ置いていかないで下さい・・・
投稿情報: ちあき♪ | 2008年4 月 3日 (木) 07:41
ここ↓を見たら使い方は分かるはずなので、覚えてリリカに教えてあげもいいよ。
http://scratch.wik.is/@api/deki/files/19/=ScratchReferenceGuide.pdf
投稿情報: トヲル | 2008年4 月 3日 (木) 17:08
こんにちは。はじめまして。
今、私は日本語版Scratchのお手伝いしています。
お嬢様がお使いになっているご様子を大変興味深く読ませていただきました。たしかにEtoysにくらべてScratchは劇的に使いやすくなっています。私はこれをEtoysのMIT流解釈と再構成と考えています(実は中心となっているプログラマはSqueakのコアメンバと同じ人だったりします)。
アランさんは見た目とか使いやすさよりもアイデアや思想を優先する人なので、このように立ち止まってじっくりと実装する人が必要なのかもしれません。
その反面、Scratchが捨ててしまったところ、具体的には、環境と言語が同じものでできていて、どこまでも分解可能なところなどは、分かりやすさとのトレードオフとはいえ、惜しまれるところです(子供は分解するのが好きですから)。
公式の日本語版(というよりマルチバイトを含む多言語版)のリリースまであとしばらくかかりますが、蜂須賀さんという方が独自にひらがな化したものがありますので、お使いになってみるのもよいかもしれません。
http://www.asu.ac.jp/hachi/scratchJP.html
投稿情報: abee | 2008年4 月 9日 (水) 15:07
abeeさん、はじめまして!
リンク先にあった日記を拝見したのですが、Squeak界隈で有名な方なのですね。コメント頂いてとても光栄ですが、Etoysの悪口を書いてしまっているので焦っています。
>>その反面、Scratchが捨ててしまったところ、具体的には、環境と言語が同じものでできていて、どこまでも分解可能なところなどは、分かりやすさとのトレードオフとはいえ、惜しまれるところです(子供は分解するのが好きですから)。
smalltalkであることを捨ててしまったってことなのでしょうね。でもそのおかげで分かりやすくなったのだと思えます。
僕が仕事でUIなど作るときも、”統一されたポリシー”と”その場の使いやすさ”のどちらを取るかは、常に悩みます。永遠のテーマかもしれません。
日本語化、期待してます。現状、SPEAKなどの吹きだしに日本語が出ないのが残念なのですよね。
投稿情報: トヲル | 2008年4 月10日 (木) 21:53
スクラッチはオブジェクト指向。 さらに「オブジェクト指向は問題解決のプロセス」ということで試しに有名中学の理科の入試問題(日能研がWeb公開)している「アリの問題」を解いてみました。
その結果わかったことは、「アリをオブジェクト」に描くだけで簡単にいけました。(オブジェクトを理解するのに小学生で十分)
もちろん論理的に整合あるアニメになります。
逆に「単なるアリの絵」で描こうとすると動きを1匹1匹描かなければならないのでプログラムが長くてややこしくなります。
こういうところが、たぶんロボット接続に生きてくるとおもいます。
このマニュアルは「お母さんが子供に教える」レベルのもので日本語です。
(このマニュアルの共同開発は米国カーネギーメロン大学、カルフォルニア州立大学)
投稿情報: 古居久男 | 2008年10 月28日 (火) 15:29