言語ゲーム

とあるエンジニアが嘘ばかり書く日記

Twitter: @propella

再びメタトイ

今まで100回くらいメタトイについて書いてきたと思うが、手元のディレクトリを grep してみるとまだ 42 回だった。書き足りないみたいなので繰り返しですがまた書きます。

# メタトイとは何か?

コンピュータ上で作られた玩具をメタトイと呼びます。玩具とは楽しみの為の道具と言った意味合いで、真面目や実用的な物であっても構いません。玩具という言葉を使う理由は、出来上がった物の正確さや機能に捕らわれず過程を楽しむ事に着目したいからです。

コンピュータの上では色々な楽しみがあります。絵を描いたりゲームをしたり。何故そんな事が出来るのかと言うと、コンピュータソフトを使い分ける事で様々な道具に変身する事が出来るからです。このように道具として万能に見えるコンピュータですが、制限もあります。コンピュータが万能であるのはあくまでも限られた情報の世界だけで、私達とやり取り出来るのは制限されたデバイスからの限られた色や音の情報でしかありません。

一方で、コンピュータならではの大きな特徴もあります。それらの道具を実現するソフトがまたソフトの上で作られるという点は他のメディアには無い点です。。コンピュータはデジタル情報の制限と引き換えにこのようなメタな性質を獲得しました。メタトイを作るとは、このような道具で道具を作る事が出来るという性質を利用して、玩具を作る過程自体を工夫して楽しんでしまおうという事です。

# メタトイズワークショップとは何か

(本音を言うと、教育なんて言葉を使うのはおこがましいわけですが) コンピュータ教育とはどういった事でしょうか? コンピュータを使った教育は、当初カリキュラムをコンピュータを使っていかに効率よく生徒に学ばせるかという点が着目されていました。いわば教科書や問題集の代わりとしてのコンピュータです。一方ではパパードのLOGOのような、子供の自然な視点とコンピュータの自由さを融合した新たな視点に基づいた教育も広まっています。

メタトイズワークショップもコンピュータ教育の一つの試みですが、数学や物理の効率的な学習手段を提供するという事以上に、コンピュータ自体の性質に根ざした概念を伝える事に重点が置かれています。例えば、特に重要な概念として汎化があげられます。例えば、画面上のあるコースを走れる車を作った後に、その車を別のコースでも走れるようにしたり、車の為に作った画面探索のプログラムを他の用途に転用する事によって、最初のアイデアをより広い用途に応用する事が出来るようになります。

汎化とは、ある問題を目の前にした時に、この問題は他の問題と同じ手法で解けるのではないか、他の大きな問題の一部なのではないかと考えを深め、知識を組織化して行く過程です。これは知的活動の基礎となる抽象的な概念ですが、メタトイを作る過程で遊びながら実験を繰り返す事により具体的な物として体験する事が出来ます。メタトイズワークショップとは、このメタトイを作る過程をスムーズに導入するための試みです。

# メタトイズ環境とは何か

メタトイズ環境とは、メタトイを作る為に適したオーサリング環境で、Squeak etoys の上に実装されます。メタトイとそのコンピュータ環境は直交していて、どのようなコンピュータであってもメタトイを制作する事は可能です。しかしメタトイズワークショップをスムーズに行うためには、まずメタトイ作りに入る前に出来るだけ早く環境の操作に慣れるという点と、制作時に不必要な制限をユーザに感じさせないように、以下の方針でインタフェースを洗練させる事にしました。

独学が可能である。ユーザは教師がいない場所、例えばネットワークに繋がれた自宅等でも十分に環境を操作する技術を学ぶ事が出来ます。このためには、覚えるべき要素や選択肢が出来るだけ少なくする必要があります。ユーザはマニュアルを読む事ではなく、自由に操作する事によって環境の振る舞いを学習するので、特に最初の段階において、動作を制限して不要なエラーを出さない事が重要だと考えます。この点において etoys が最初から持つタイルスクリプティングは有効な機能です。

簡潔である。少ない選択肢で自由度を上げるにはある操作を覚えた際に関連した他の作業も似たようなやり方で出来る事が必要です。これはインタフェースの直交性を上げる事、つまり、あるはずの機能があるべき所にあるようにする事によって実現可能になります。ユーザは今までの経験から連想を働かせる事によって知らない機能を発見する事が出来ます。

見本が例示されている。ユーザはマニュアルを読んだり教師に教わる事ではなく、用意された例題や友人の作品を参考に体験的に学びます。なぜなら、学習の動機は驚きや楽しみであるべきで、その為には完全に動く例から発見していくべきだと考えるからです。環境はその為に例を共有する仕組みを提供します。また、etoys のインタフェース自体が良い例題に成り得ます。

改良の一つの目標としては、etoys を etoys 自体で実装する事が上げられます。現在の etoys から漸次的にそこまで洗練させるのは困難ですが、もしも実現可能であればユーザはより大きな可能性を得る事になります。

# というわけで業務連絡ですが、
イントロダクションはこんな感じに変更しますのでレビューお願いします。> A氏