SIGGRAPH

SIGGRAPHのねただが、読み方の話ではない。

http://www.cs.utah.edu/~michael/leaving.htmlへの言及を五十嵐さんその他のところで見たため。著者の彼は、SIGGRAPHのtechnical paperのreviewの仕方に矛盾を感じて悔しい思いもしたので、Computer Graphicsのエリアを離れることにした、という話。

"hot"であるねたが過剰にもてはやされることがある、というのはプログラミング言語の分野でも同じかもしれん。余り新しいねたを言挙げするのは問題もあるので古い話を持ち出すが、OOPSLAでも「Javaにmulti-methodを導入してみた」とかいう話があったりして、「Javaという言葉がタイトルについていれば中身がどんなに意味がなくても許されるのか」、という疑問を持ったりしたこともあるし。

Science Envyという、「分野の名前に"Science"と名乗っているものはchemistryとかphysicsみたいな本物の科学へのジェラシーがある」という意味の言葉があるが、computer scienceはまあ確かに真の科学ではない。科学とは、どの理論が良さそうかどうかの最終判断は「宇宙・自然そのものが下す」というものであるのだが、「プログラミング言語の使いやすさ」なんかはある程度のevidenceをもって「科学的」に主張はできるものの、人間の審美眼に頼るところも多いし、情報というものの定義にほとんど「人間」というものが入っているようなものなわけなので、「使えるかどうか」という判断も人間の役に立つかどうか、というものなわけだし。

京都賞には「思想・芸術部門」、「基礎科学部門」、「先端技術部門」の3つがあるのだが、某受賞者は、これらは「究極的に人間のみが審判を下すもの」か「究極的に自然と宇宙が審判を下すもの」か、あるいは「自然がもたらす制約の中で、人間の審美眼による審判も仰ぐもの」か、という違いがあると言っていた。コンピューティングは最後のものに入る。

型理論なんかは「数学」として、「外世界による審判は必要なく、その体系内で矛盾がなく美しければよい」という理論としてはよいものなわけだが、プログラミングとはUIでありコミュニケーションツールであると思った場合、例えば「"int x, y; x = 0; y = 0"と書いたほうが、"int x, y; y = 0; x = 0"と書くよりも良い」、というような「practice」に関わるところまではカバーできないものではある(そんなことはやっている人にとっては当たり前だが)。要は、静的型言語と動的型言語のどちらがよいか、という議論は「科学」にはなりえず、人間のジャッジメントは入るものだ、ということである。彼が書いているように"at the end the success or failure of any specific technique is, quite literally, in the eye of beholder."ということだ。プログラミング言語では、CGほど「見た感じ結果が良さそうに見える」という開き直りをしない話も多いのでたちが悪いかもしれん。

それはともかく、「SIGGRAPHに投稿して落とされたから、改訂して1年後のSIGGRAPHに出す」という行動を取る研究者が出てしまうのが確かにシステム上の弊害だな。彼の書くようにひとつの"superconference"がある、というのは、分野の発展そのものを考える場合にはあまりよろしくないのだろう。

フライト

今回の帰りはANA便。成田の新しいターミナルは、新しい。チェックインは数分で終了。

食べ物やのシステムは、番号札を渡して、できたら番号を呼んで取りに越させるようになっているのだが、日本語と英語で呼んでも気が付かない人が多く見受けられる。昔のように、机の上に建てる札を渡しておき、お店の人が持っていくシステムにも一理あるかもしれん。

ANAのラウンジでは無料で無線LANが使える。よしよし。

機内は残念ながら混んでいる。ANA便の悪いところは、乗り込んでからゲートを離れるまでの間、ずっと単調な「ふにゃにゃにゃにゃーにゃにゃー」というメロディーが流れ続けることだな。

とか余裕をかましていたら、エンジンの不調で2時間くらい足止めされてしまった。離陸前に異常が発見されて良かったよ。

Seymour Papertの講演 (7/20)

先週行われたSqueakFestにおけるSeymour Papertの講演について、公約してしまったので要旨をまとめます。メモから一気に起こしただけなので、またミスなど多数あるかも。

Seymourの講演。Alanとはもう40年近くの付き合いになる。最初に子供のためにコンピュータを使うと言い出したときは、millionaireの子供だけのものとなるのでは、と言われたが、もちろんそのときからいずれ万人のものになることは時間の問題であるということは分かっていたわけである。

かえるを水の中に入れて、ゆっくり熱するとかえるは機会を逃して死んでしまう。コンピュータを学校にゆっくり導入しようとしても、生体が異物に対して防御システムを発動するように、コンピュータによる変化に抵抗してしまう。今あるものが「普通」だと思うと変化が起こせない。

常に「コンピュータをどうやって取り入れていくか(how to integrate)」という話し方をする人ばかりだった。今の学校システムが所与のものであると思っていて、コンピュータを使ってどうやって既存のシステムを「改善」するか、という考え方だった。コンピュータが既存のカリキュラムの手伝いをするものなのか、あるいは古臭いものに変えてしまうのか?改革は不可能なのか?

"develop mental educataion"に関する論文もたくさん書かれて、learning by doingのことなどを取り上げていたが、結局「どうやってlearning by doingをするか」ということをきっちりと記述しようとするものが多かった。自己矛盾である。

大きなゴールを胸に、小さなステップを繰り返してゴールに近づくやり方が良い。

Alanと私は92年ごろSydneyで行われたコンピュータと教育に関する会議でキーノートをしたが、「これがコンピュータと教育に関する最後の会議であって欲しい」と言ってみた。なにしろ紙と教育に関する会議はないわけだし。

大きな疑問を持つべきである。このプロジェクトにおいてほんとうに何をすべきなのかというのが大きな疑問である。大きな疑問ほど、あなたのすることにいろいろな意味を与えてくれる。

68年ごろに、ソビエトスプートニクによって強い危機感が芽生えて、組織的に新しい数学の教え方をする、というNew Mathematicsというものがもてはやされたことがある。本来はパニックを起こすような危機ではまったくなかったのだが、なぜか余りにも定式化と抽象概念を強調したNew Mathematicsに飛びついたわけである。

数学は、数学として生まれたわけではなく、他の事をする際の数学的考え方として生まれた。ナイル川の氾濫後に測量したり、ピラミッドを建てたりという。その後、少しずつ純粋な数学に変質していった。これは長い時間をかけた進化的論過程といえる。

さて、もし子供に数学を教える場合、子供自身にこの進化過程を模倣させる、というのはどうだろうか。まずは数学を道具として使わせ(learning by doing)、それから純粋的な数学に進ませる、という。

ダビンチは素晴らしい発明家で、いろいろな飛行機のデザインを描いたものを残しているのだが、もし彼が描いたものを今の技術で作ったとしても、どれも実際には飛ばない。それは、彼の時代の技術ではそれを作って試して欠点を改良する、つまりデバッグすることができなかったわけである。ライト兄弟の時には十分な工具が周りにあった、という利点があった。アイディアだけでも駄目で、技術だけでも駄目である。

New Mathはすでに子供にとって十分形式的なものをさらに形式化しようとしてしまった。進化論的ではない。親が理解できなかったという問題があり、親がその手法を信頼できなかった。何であれ、親が疑うようなものはうまくいかない。

コンピュータは親にとっても受け入れやすいものだった。これを定式化するのではなく、使うことを考える。

分数同士の割り算などで、しばしば頭に来た小学生が先生に「なんでこんなこと勉強しなくちゃいけないの?」と聞くことがある。先生の答え方によっては、先生自身が学習の妨げになる。例えば、「将来スーパーマーケットで買い物をするときに必要になるでしょ」というような答えをすると、子供はすぐにそれを嘘と見抜いてしまう。

私が育ったころは、ラテン語ギリシャ語を習わない子供は「落ちこぼれ」とみなされた。ラテン語は大人になった後使うために学ぶのではないが、それを学ぶことには他の目的がある。

Howard Wong(?)という中国出身の数学者の友人がいて、彼が数学でやる数学的操作はまったくもってすばらしいものだった。が、彼に話を聞くと、11歳になるまで数学は習わず、古典を学んでいたという。他にもどうような中国出身の数学者がいた。

Tele Mexというメキシコの電話会社が、アナログネットワークからデジタルネットワークに転換しようとするときに、大量の保守担当者を再教育したが、彼らは10倍速く学んだ。アナログネットワークで培った感覚がデジタルネットワークを学ぶときに応用できた。

さて、本当の代替案ということも考えなくてはならない。子供を教えるときに、週に3時間時間を割いて1人の子を教えるのであれば、その子は素晴らしい進歩を見せるが、さて、10億人の子供たちだったらどうしたらよいだろうか。その子供の一生をサポートするには?このようなシステムを作るためには、責任を持って戦わなくてはならない。

数学を子供が愛せるようなものにしよう。まずは実際に楽しめる数学的なものの考え方というところからはじめよう。車が円を描くプログラムを書かせているとき、子供がそれを数学だと意識するようにしよう。そして、子供が自分に関係のある話だと(あるいはタートルを自分自身だと)思うようにしよう。これは余り多くの先生が理解しているわけではないが。

物理的なタートルが世界の中を歩いているとしよう。タートルがこの机を回り込んで動くようにしたい場合、Newton以前のやり方では、まず机の位置を求めておいて、指定された方向に計算された距離進み、90度曲がり、というようなプログラムになるが、ちゃんと指定した距離進めるわけでもなく、90度も正確に曲がれるわけではないのでうまくいかない。一番うまく行くやり方はちょっとずつ進んでは机に当たったかどうか調べ、当たったら遠ざかるように、離れたら近づくように曲がりながら進んでいくことである。同様に、光源がどこかにあり、そちらのほうに進んで行きたい場合、Newton以前のやり方は、光源の位置を正確に求めてから、角度を決めてそちらに進むようにすることであるが、これも少しずつ進んでは向きを修正するやり方のほうが良い。面白いのは不確かな局所的知識と不正確な移動・回転の繰り返しでもただしく目的が果たせることである。

真のempowermentが重要だ。学校ではしばしばpowerful ideaをdispowerしてしまう。何が真のpowerなのかを同定しなくてはいけない。

子供に実際に体を動かさせるのは一案だ。スケートボードをする子供なら360度が一回転ということは知っている、これを使ってみよう。三角形の内角の和は180度だと教わるが外角の和は360度である。タートルが進むやり方を考えれば、3回120度回る、というように考えたほうが分かりやすい。内角が180度だと教えるのは、既存のシステムにおもねっているだけである。また、実世界では角度は動的だったり計算される値だったりする。

内臓脂肪(suet)を主食にしている村があって、みなそれをいろいろな料理法で工夫して食べている。医者(suet doctor)は、内臓脂肪を食べる人に特化した技術を磨いているが、本来はもっと良いやり方がある。一度教育関係者の会議があったときUri Wilenskyは、「ここにいる人みんなsuet doctorだ、と言ったことがある。

Al Goreの映画(環境破壊と温暖化に関するやつ)の映像はとても強力である。皆分かっていても、映像で見せられると反応が違う。$100 Laptopは、成功したらアメリカはパニックに起こせるくらいになるだろう。

というところではなしは終わり。質疑のうちいくつかは以下の通り。

Q: $100 Laptopにはどのようなソフトが載るのか?
A: まだ余りエネルギーのある議論はされていない。タートルプログラミングやシミュレーションのようなものは載るだろうと考えている。

Q: Piagetについて。
A: Piagetが書いたことは、例えば乳児期の知見などは彼自身の子供を観察しただけのものがおおく、現時点で文字通り受け取れるものばかりではないが、面白いアイディアはたくさんある。Piagetのグループが、子供がどのように数字の概念を獲得していくのかを研究しようとしたとき、他の皆は「認知心理学者を雇おう」といったが、Piagetは「いや、数学者を雇おう」と言ったので、私が参加することになった。これは彼のものに関する考え方が非常にしっかりしていたことの現われと思う。