Island Life

2011/12/26

真の競争力

ちょいと前に、「競争に勝てる人材を育成したいなら、既存のルールの中で競争してはいけない、ルールを作れる人間を育てないと」というようなことを書いたんだけど (『教育について』)、 MITの石井教授がずっと力強く、より核心を突く言葉で語ってくれてた。

http://rikunabi-next.yahoo.co.jp/tech/docs/ct_s03600.jsp?p=002022

まず、競争に関しての考え方を改めること。100mトラックを人より早く走ることは、真の競争ではありません。誰も分け入ったことのない原野を一人切り開き、まだ生まれていない道を一人全力疾走すること。それが競争です。

石井氏のように、誰もまだ見たことのないような山をゼロから作り上げられる人は稀有だと思うけれど、そこまでできなくたって、誰も入ったことのない薮ってのは案外普通の道の脇にあったりするもんで、そういうところでも続けていれば案外おもしろいところに行けたりする。

T字路でみんなが右か左かで悩んでる時にけろっと真っ直ぐ歩いて行ってしまうような人間がちょっとばかり混ざってるのが、集団としては健全だろうなあ。

Tags: 社会, 教育

2011/12/22

ピアノレッスン28回目

レッスン前に歯医者の予約があり、クリスマス前で車が混んでた(感謝祭翌日からクリスマスまで、アメリカ人は買い物をしまくらないと落ち着かないらしい)せいで遅刻ぎりぎり。落ち着かないまま弾いたら「今日はとてもenergeticね、gymにでも行ってきたの?」。ふーむ、弾く前にフィジカルなエクササイズとかすると案外良いのかもしれん。

スケールとアルペジオはM=144。

曲はベルガマスクのPreludeを暗譜+up to speedで、あとMenuetをメトロノームでゆっくり。

Tag: Piano

2011/12/21

質問力を育てる

『質問の成長』で書いたように、知的成長と質問の程度はリンクしているように思える。質問の「良さ」をどのように定義するかは難しいが、質問された方が良い意味で唸ってしまう質問、というのは確かにある。

単に質問が成長の現れというだけでなく、良い質問の仕方を教えることはより知的に豊かな生活をもたらすことになるだろう。むしろ、知りたいという欲求を具体化したものが質問なのだから、質問の技能は好奇心という根源的な欲求 (Cf. 『行動の源』) を満たすための必須スキルとさえ言える。

学校で、質問の仕方というのをもっと教えれば良いのに、と思う。今はどうなっているんだろう。

たとえば、文芸作品を読むというのは、質問力鍛錬のために最適な課題だと思うのだ。役者として脚本に向かい合う時の基本的で有効なテクニックは "why?" である。なぜこの登場人物はここでこういう行動を取るのか。このシーンでこの出来事が起きるのはなぜか。なぜ作者はこのタイトルをつけたのか。ここにこのシーンがある意味は何か。まずwhyと問うてみよ、と脚本分析のクラスでは教わる (Cf. 『登場人物の気持ちを述べよ』)。そもそも教わらなくても、物語を楽しみだした頃の子供は盛んに「どうしてこの人はこうしたの?」という質問をしまくるのだから、それを徐々に体系的に育ててゆけば良いだけなのだが。

USに来た頃、職場で知り合って親しくなった友人がいるのだけれど、そいつの良いところというか私が一番気に入ったところは、何を話していても---仕事上の話でも映画の感想でもなんとはない雑談でも---ちょっとでも疑問があると "why?" と口を挟んでくるところだった。ともすれば曖昧に流すことに抵抗が無かった自分にとってはそれが新鮮だった。何となくそう思っていたことでも、"why?" と一度立ち止まってみると、気づかなかった前提や思い込みが見える。その前提を外すと、新しい発想が出てくる。

簡単なことなのだ。見えている景色の中にぼやけたところ、霞がかかったところが見つかったら、ちょっと立ち止まってwhyって言うだけでいい。まずはひっかかりに自分で気がつけること。whyが反射的に出るようになったら、対話をすることで何が見えていないのかを明確にしてゆく。それを続けていれば、自分の中で明確化できるようになって、より具体的な問いが出てくるようになる。

ところが国語の授業では生徒は専ら質問される側で、答えることだけを求められているかのようだ。もしかすると理想的には問いを自ら考えさせたいのだけれどリソースが足りなくてそこまで行けないだけかもしれないが。質問の良し悪しってのは答えの良し悪しよりも評価しにくいからなあ。でもそのせいで、国語の試験というのが出題者の意図の読み合い合戦になってしまっているのは残念なことだ。

質問者の意図を読んで答えを出すというスキルはそれはそれで実生活で役に立つ場面は多くて、実際、誰かの下で働く立場なら大部分の仕事は与えられた問いに何らかの形で答える(行動することを含む)ってことになるだろう。それも重要な仕事だ。けれども、全ての起源にあるのは問いだ。起業家や研究者、あるいは広く「今までに無かったものをつくるひと」にとって、成功はひとえに「どれだけ良い質問を見つけ出すか」にかかっている。Paul Grahamも言ってるしね。

世界を面白くする問いを見つけ出すんだ。素晴らしい仕事をした人は、ぼくらと違った世界を見ていたわけじゃない。ただこの世界の中の、ほんのちょっとした、でも不思議なことがらに気づいただけなんだ。

---『知っておきたかったこと』

Tags: 生活, 教育, 芝居, PaulGraham

2011/12/20

質問の成長

子供は何でも訊きたがるが、だんだん質問の仕方が変わってゆくのを観察するのはおもしろい。

最初はわからないことだらけで、未知のものを見ると反射的に質問するけれど、 何らかの答えが返ってきたらもうそれで満足するようで、 返事を聞き終わる頃にはもう次の対象に興味が移って別の質問をしたりする。 この頃の質問は全くランダムか、良くて緩い連想ゲームだ。こんな感じ:

[image]

そのうちだんだん知識が増えてきて、知識と知識のネットワークが出来てくるのだろうか。 一つの質問の答えを聞いて、それを踏まえて次の質問を出してくるようになる。 質問の方向は依然としてランダムウォークに近いけれど、履歴があるわけだ。

[image]

[image]

さらに進むと、おそらく脳内に知識のネットワークで作られた世界のモデルが 出来てきて、「欠けている知識」の存在がだんだん意識できるようになり、 「何を知りたいのか」というのがよりはっきりしてくるようだ。

[image]

何を知りたいのかはっきりしている、と言っても、それは脳内で欠けているものとして なんとなく意識されているだけで、言葉で明確に説明できるわけではない。 この段階では、質問をうまく組み立てられずに、 見当違いの答えがが返ってきて「ちがう、それじゃなくて!」なんて怒り出したりする。 けれどもうまく水を向けてやると、自分がどういう前提のもとで、どういう仮説を立てて、 その仮説を裏付けるもの(知識の穴を埋めるもの)として何が欲しいのか、 ということをだんだん説明できるようになる。

質問とは奥深いものだ。良い質問をするには、まず自分が何を知っていて 何を知らないのかを知らなければならず、次にその自分の知っていることと知らないことの 境界を言葉にして人に説明できないとならない。

でも、子供の知的能力の成長具合を見るのに、どういう質問をするかを見る、 というのは、単に知識を問うよりずっと有効であるように思う。

(続き→ 質問力を育てる)

Tags: 生活, 教育

2011/12/17

範囲の指定

Schemeでは「ここからここまで」という範囲を指定するのに、 始点(始点自身は含まれる)と終点(終点自身は含まれない)のhalf-open intervalを 使うことが多い。SRFI:13(string library)やSRFI:43(vector library) などの代表的なSRFIがそうだし、Gaucheもそれに合わせてる。これを [始点,終点) と書くことにしよう。

この他に代表的な流儀としては、始点と終点をともに含まれるとするclosed interval、 それから始点と長さがある。それぞれ [始点,終点], {始点,長さ} としよう。

SchemeではSRFI:1のiotaが例外的に{始点,長さ}を取る。但し引数順としては長さの方が先で、始点は省略可能、省略時0という形。3番目の引数としてステップを取ることもできる。

Pythonのarray slicingは[始点,終点)、オプショナルでステップ(ストライド)。

Common Lispのloopマクロは、[始点,終点][始点,終点)のどちらも使える。前者はfrom〜toとかfrom〜downto、後者はfrom〜belowとfrom〜above。

Rubyはどれも使える。配列でx[a,b]とやれば{始点,長さ}, さらにrangeオペレータが2種類あって[始点,終点][始点,終点)に対応。

この3方式は容易に相互変換可能なので、どれを採用するかは好みの問題、一貫性があればいいや、と今までは思っていた。

ところが、とあるAPIを考えていて、2つのパラメータで範囲指定させ、かつ昇順と降順の区別も出来たらいいな、と考えてたら、この3方式に表現力の違いがあることに気づいた。正確には、インデックスのround trip (-1, -2 など負のインデックスで、終端からの距離を数える場合。例えばpythonでa[0:-1]とやれば最後の要素を除いた配列が得られる、など) を使おうとした場合、だけれど。

  • {始点,長さ} は「長さが負の場合に降順とする」というルールを入れればすぐ対応できる。インデックスのround tripも特に問題ない。但し、「最後から3番目の要素を起点に最初の要素までを降順で」のように取りたい時に、範囲の長さを陽に与える必要がある (昇順なら、「長さ省略時が最後の要素まで」としておけるのに)。対称でないのはちょっと気持ちわるい。
  • [始点,終点] では 始点>終点 の時に降順とすることをすぐに思いつくが、round tripがあると単純な大小比較ができない。始点と終点をそれぞれmodulo(範囲の大きさ)した後で大小比較すれば何とかなる。若干、直感的でない場合は出てくる。
  • [始点,終点) が困りもの。ある値から逆順に先頭までを入れたい時には、「ゼロより一つ前」を終点として指定する必要がある。これを-1にしてしまうと、「終端からひとつ手前」を指定するのと区別がつかない。言い換えれば、この方式では「一番最後の要素+1」と「一番最初の要素-1」を別々に表現する必要があって、その分表記にバリエーションが必要になるということだ。end省略時に「最後の要素+1を指す」とする場合は多いが、「省略された」というのは1種類の情報でしかないので、降順を表現するのに別の情報が必要になる。

Luaみたいにインデックスを1からスタートすることにすれば0を「最初の要素のひとつ前」とすることが出来る。この点では1-ベースのインデクシングに利点があるとも言えるなあ。

Tag: Programming

More entries ...