独習コンピュータ教程 (TED Talks)

Shimon Schocken / 青木靖 訳
2012年6月

祖父のサルマン・ショケンです。貧しく学のない家庭に生まれ、6人兄弟で、14歳の時には家計を助けるため学校をやめなければならず、その後学校に戻ることはありませんでした。代わりに祖父は輝くデパートの帝国を築き上げました。彼は完璧主義者で、どの店舗もバウハウス様式の珠玉の建築でした。彼はまた究極の独学者で、他のあらゆることと同様盛大にやりました。彼は若く無名の学究者を身の回りに置いていました。マルティン・ブーバー、シュムエル・アグノン、フランツ・カフカ。彼らに月給を払って文筆に専念できるようにしていたのです。30年代に何が起きようとしているか悟った彼は、すべてを置いて家族と共にドイツを去りました。彼のデパートは没収されました。彼は残りの人生を、芸術と文化の飽くなき追求に費やしました。この中学校中退者は82歳で亡くなりましたが、ものすごい知識人であり、エルサレムにあるヘブライ大学の共同創立者兼初代学長であり、評判の高い出版社で後にランダムハウスに買収されたショケン・ブックスの創業者でした。まさに独学の力です。

こちらは両親です。彼らもまた、大学教育を享受してはいません。家庭を築くこと、国を作ることにあまりに忙しかったのです。それでもサルマン同様、生涯に渡って粘り強い独学者でした。家には何千冊という本やレコードや美術作品で溢れていました。父が言っていたのを良く覚えています。「近所の人がみんなテレビを買ったら、うちもFMラジオを買うことにしよう」(笑)

これは私です。最初のそろばんを手にしているところです。父に言わせたならiPadの十分な代替品というところでしょう。(笑) 私が家で学んだことのひとつは、教育者は必ずしも教える必要はないということです。自ら学ぶ自然な能力を刺激するリソースと環境を与えればいいのです。独習し、自分で探求し、自分で成長すること。それが、優れた教育のもたらすべきものです。

それで今日は、素晴らしい同僚のノーム・ニサンと一緒に作った、独習コンピュータ・サイエンス・コースについて話したいと思います。写真を見てお分かりと思いますが、ノームも私も、幼い頃から基本原理に強く惹かれていました。長い時間をかけて科学や技術に対する知識を磨いてきましたが、この基本原理に対する畏敬の念はますます深まるばかりです。12年前のことです。ノームと私は既にコンピュータサイエンスの教授になっていましたが、共に同じ現象に不満を抱いていました。コンピュータがますます複雑になっていく中で、学生たちは木を見て森を見失っていたのです。たくさんのレイヤで覆われたクローズドでプロプライエタリなソフトウェアのブラックボックスであるPCやMacをいじっていても、コンピュータの魂に触れることはできません。ノームと私が思い付いたのは、コンピュータがどのように働くか骨の髄まで学生に理解させたければ、最良の方法はおそらく、完全な動作する汎用的で有用なコンピュータを、ハードもソフトも含め、基本原理から始めて一から作らせるということです。

まず出発点を決めなければなりません。それでノームと私は、私たちの伽藍の基礎として、最もシンプルな要素を選ぶことにしました。それはNANDと呼ばれるものです。これは4種類の入出力状態からなる単純な論理ゲートです。この旅路は、学生にこう言って始めます。「神は人にNANDを与え、“コンピュータを作れ” と命じられた。どのようにしてかと聞くと、神は答えて言われた。“一段ずつ進め”」。この助言に従って、ちっぽけなNANDゲートから始めて、入念に用意された一連のプロジェクトを通じて学生たちを導いていきます。チップセット、ハードウェア・プラットフォーム、アセンブラ、仮想マシン、基本的なオペレーティングシステム、Javaに似たシンプルな言語Jackのためのコンパイラ。

そして旅路の最後には、Jackを使って様々な楽しいゲームを作ります。ピンポンゲームやヘビゲームやテトリスなどです。それで遊ぶのがどれほど楽しいか想像できるでしょう。そのテトリスはJACK言語を使って自分で書いたもので、それをマシン語にコンパイルするコンパイラも自分で書いたものであり、それを動かすマシンもまた、何千個かのNANDゲートから自分で作り上げたものです。基本原理から始めてとても複雑で有用なシステムをすべて自力で作り上げるというのは、個人としてものすごく達成感があります。

ノームと私はこの階段を準備し、ツールやインフラを作り、学生が一期で完成できるようにするため5年間取り組みました。これを実現するため力を貸してくれたチームです。コツが何かというと、コンピュータの構成を分解し、個々に仕様を定め構築しユニットテストできるたくさんの独立したモジュールにするということです。ノームと私は最初からそれらの構成要素をすべてオープンソースとしてWebで無料公開しようと決めていました。チップ仕様、API、プロジェクト記述、ソフトウェアツール、 ハードウェアシミュレータ、CPUエミュレータ、何百というスライド、講義資料・・・すべてをWebで公開し、必要なものを何でも持っていってしたいことを何でもするよう、世界の人々に呼びかけました。すると素晴らしいことが起きました。世界中の人々がやってきたのです。あっという間に何千という人々が自分のマシンを作り上げました。Nand2Tetrisは世界最初のMOOC (大規模オープン・オンライン・コース) となりました。もっとも、そのようなものをMOOCと呼ぶようになるとは、7年前に私たちには知る由もありませんでしたが。私たちはただ、様々な独自のコースが私たちの教材を元にして次々と現れるのを眺めていました。

たとえばインドのケララ在住のエンジニアのプラモード・C・Eは勉強会を組織して、彼の指導の元みんなでコンピュータを作りました。ムンバイのエンジニアのパラグ・シャーは、私たちのプロジェクトをもっと小さな飲み込みやすい部分にばらして、DIYコンピュータサイエンスプログラムとして提供しています。こういったコースに惹かれる人の多くはハッカー精神を持っています。物事の働く仕組みを知りたがり、グループで取り組むのを好みます。このワシントンDCのハッカークラブのように。彼らは私たちの教材を使ってコミュニティコースを提供しています。教材はオープンソースで広く入手可能なので、中にはとても変わった予想外の使い方をする人もいます。広州のユ・ファンミンは、このコンピュータを作るのにFPGA技術を使い、どうやったのか解説するビデオを作りました。ベン・クラドックは、CPUアーキテクチャの内部を見せる素敵なゲームを開発しました。とても複雑な3次元迷路で、Minecraft 3Dシミュレータエンジンを使って作られています。Minecraftコミュニティでこのプロジェクトが話題になって、彼はメディア上のちょっとした有名人になりました。

実にたくさんの人がNand2Tetris巡礼の旅に出て、そこで人生を変えるような体験をしています。たとえばダン・ラウンズは、音楽と数学を学んだミシガン州イーストランシングの人ですが、何週間か前に私たちのウェブサイトで達成報告をしました。読んでお聞かせしましょう。彼はこう書いています。「このコースに取り組むことにしたのは、コンピュータの理解は読み書きや計算のように重要なものだと思ったからでした。そしてやり遂げました。何かにこれほど熱心に取り組んだことも、こんなに大きな挑戦をしたこともありませんでした。でも、今自分にどれだけのことができるかを思うとき、他のことにもチャレンジできると感じます。Nand2Tetrisをやろうと思っている人は、確かに大変ですが、きっと大きな変化を経験するはずです」。ダンは、このコースをウェブ上で学んだ独習者たちの持つ自発性や牽引力を良く表しており、とても感銘を受けます。というのも、彼らは成績などまるで気にしていないからです。ただ1つの動機で彼らはやっています。学ぶことへの情熱です。

それを思う時、従来の大学の成績評価には不満を感じます。私はうんざりしています。みんな成績にこだわっていて、それはデータにこだわっているからですが、成績評価は失敗する楽しみを奪ってしまいます。しかし学びの大きな部分は失敗することから得られるのです。チャーチルに言わせると、「勇気とは情熱を失わずに負け続けられる能力」なのです。(笑) そしてジョイスによれば、「間違いは発見への入り口」です。それなのに、みんな間違いを許容せず、成績を崇め立てています。それで B+ だとか A- だとかをかき集めて、それを3.4みたいな1個の数字にまとめ、額にスタンプで押して、それがその人を表すというのです。私に言わせると、そんなのは行きすぎたナンセンスで、成績付けは人の自尊心を踏みにじるものです。

だから私は逆の話をしたいと思います。私が今やっているプロジェクトをお見せしましょう。前のとは違うものですが、基本は共通しています。独習する、やることで学ぶ、自分で探求する、コミュニティを構築する。このプロジェクトでは幼小中高の数学教育を扱っています。タブレットを使いますが、それというのも数学は手を動かして学ぶものだと信じているからです。これがそうです。たくさんのモバイルアプリを開発していて、それぞれ数学の特定の概念を解説しています。

たとえば「面積」を見てみましょう。面積のような概念を扱う時、私たちは様々なツールも一緒に提供して、子どもたちが実験しながら学んでいけるようにしています。面積を知りたい時、自然な方法は同じタイルを敷き詰めてタイルの数を数えるということでしょう。この小さなエクササイズで面積の概念に対する基本的なイメージを与えることができます。先に進んで、平行四辺形の面積はどうすれば分かるでしょう? タイルを敷き詰めようとしてもうまくいきません。代わりに、いろいろなツールを使って試行錯誤します。やっているうちに、ある変換方法を見つけられるでしょう。切り離して、位置を変え、貼り合わせると、前にやったようにタイルを敷き詰めることができます。(拍手) この変換によって図形の面積は変わらないので、このアプリで遊ぶ6歳児は、平行四辺形の面積を計算する巧妙なアルゴリズムを自分で発見することになるわけです。ちなみに私たちは教師を置き換えようと思っているわけではなく、力を与えたいと思っているのです。

さらに進んで、三角形の面積はどうでしょう? 試行錯誤を繰り返すうちに、ヒントをもらって、あるいは自力で子どもたちは見つけます。元の図形のコピーを作ってそれをひっくり返し、貼り合わせると、前と同じやり方が使えるようになります。切って、位置を変え、貼り合わせ、タイルを敷き詰める。この変換で面積は元の2倍になっているので、三角形の面積はこの長方形の面積の半分だと分かります。それを自分で探求することによって見つけるのです。

幾何学の有用な知識を学べるのに加え、子どもたちは還元のような洗練された科学的方法に触れることになります。これは複雑な問題を単純な、あるいは一般化した問題へと変換する技術で、あらゆる科学分野の核にあるものです。あるいは変換に対して不変な性質を見つけるかもしれません。そういったことは小さな子どもでも、このようなモバイルアプリを使うことで可能になるのです。

現在私たちがやっているのは、まず幼小中高の数学カリキュラムを、こういったたくさんのアプリへと分解するということです。私たちだけで全部作ることはできないので、オーサリング・ツールを用意しました。作家や、親や、あるいは数学教育に関心のある人は誰でも、そのツールを使うことで、このようなアプリをタブレット上でプログラミングせずに作ることができます。最終的には、適応力のあるエコシステムを作り上げ、進歩していく学習スタイルに合わせて、様々な学習者と様々なアプリをマッチングできるようにします。このプロジェクトの推進力となっているのは、私の同僚のシュムリク・ロンドンです。私の祖父が90年前にそうしたように、うまくやるコツは優れた人を身の回りに置くということです。結局のところ人がすべてだからです。

何年か前にテルアビブの街を歩いていてこの落書きを見つけました。とても訴えるものがあるので、私はいつも学生に言って聞かせていますが、皆さんにもお教えしたいと思います。“mensch” という言葉を知っている人がどれくらいいるかわかりませんが、それは基本的には「人間らしくあり、正しいことをする」ということです。この落書きにはこう書かれています。「ハイテクなんてつまらない。最も重要なのはmenschであること」。どうもありがとうございました。(拍手)

Tweet このエントリーをはてなブックマークに追加
home  rss  

オリジナル:  Shimon Schocken: The self-organizing computer course