「チ。」を読んで諸々思う所はあるが1、それに触発されてあまり関係ないことも考え込んだりしている。その一つが、初学者に物事を教えるのにはどうするのが良いのか、ということ。大学院生時代に学部新入生にプログラミングを教える授業を受け持っていたり、今も時々プログラミングを人に教える事があったりする2が、ずっと解決されない疑問である。
中でも、やっている事に感動してもらいたいという、半ば教える側のエゴともいえる思いについて。尚、私は教育学の専門ではないので、頓珍漢な事を言っていてもご容赦頂きたい。
感動体験を与えたい
「私の感動を、必死に伝えてる。」 --魚豊 チ。-地球の運動について 第7集 小学館
プログラミングを人に教えていて常に悩むのは、教本的なものに沿って単に教えているだけで真に身につくのか、という事である。演習問題を出して、実際に手を動かしてプログラムを書いてもらう、といった事も交えるが、それだけで良いのか。
そんな事を考えるに至った原体験は幾つかある。まず一つは、前々回エントリ・前回エントリでも触れた再帰呼び出しの閃きである。とある問題を与えられて、それをプログラムで解く方法論を考えるという課題があった。その問題は、その頃の私が予め知っていたプログラミング方法論だけでは解けない。数時間考え続け、そのうちに関数の中からその関数自身を呼び出す再帰呼び出しの考え方に気付いた。この時の目が開かれる感覚、その感動と言ったらない。そうして体得した再帰呼び出しは一発で私のプログラミング方法論に加わり、それを要する様々なプログラムに自然に活かせるようになった。
もう一つの原体験としては三角関数の加法定理及び関連定理に関するものがある。高校生当時、何のために存在するのか見当のつかなかったものの一つである。その割に覚える公式は多く複雑で3、その時はそこで挫折したのだが、大学生で再びこれに触れる事になる。UHF帯パッシブRFID4は、タグが読取機からの電波を反射5する際に情報を載せる仕組みで、そのタグからの応答波を読取機からの電波の周波数から少しずらした所に出すことができる。サブキャリアというこの仕組みは加法定理を使って数式表現できる。これを知った時の、ああこうして使うのか、という感動もまた大きかった。
その点では、RFID技術を初めて知った時の感動それ自体もまた大きいものだった。その感動は、RFID技術の応用用途を考える研究を推進する原動力になったし、今も持ち続けている。
思うにこうした感動は、その感動をもたらした知を強く人に定着させる事ができるし、さらにそこから先にある知を探求する原動力となる。なればこそ、物事について初学者に教える時に、なんとかこの感動を教え手側から与えられないかと思うのである。
そんな無茶を言うな
しかし、上記のようには思っているものの、これには以下のように容易に様々な反駁が自ら思いつく。
反駁①:効率が悪い
まず第一に浮かぶのはこれである。先述の再帰の閃きを得るのに、私は数時間頭を抱え続けていたわけだが、所謂普通の授業のような形で教えてしまえばそれだけである。件の問題を解くために私が長時間悩んでいられたのは、当時は研究室に属していない、サークル活動もしていない、時間がいくらでもある大学生だったからだ。課題という形で、個人による授業時間外での思索であったから、ということも言うまでもない。もちろん、それによって単に授業で教えられたのとは比べ物にならないほどの理解が得られたのは事実であり、単純に時間効率が悪いとは言えない気もする。ただそれは、それが個人の学びだったら、の話であり、対集団でかつ時限付きの学習目標があるとしたら6、そんな悠長なことはしていられまい、とも思う。
反駁②:教える側への要求が高い
上記の加法定理によるサブキャリアの数式表現の例、加法定理を教える教員誰しもに、類似の具体的応用例に基づく説明を求めるのは酷である。高校数学レベルの話題に対する具体的応用例は数学以外の諸分野における専門的な所にあり、様々な物事について、同様に説明できないと教えられなくなるというのは無茶である。それを説明できたとしても、元々説明したい事に行き着くには遠回りであり、反駁①に通じるが効率も悪い。そもそも、その説明に対して受け手がピンと来るかも疑わしい。加法定理とサブキャリアの話が私にピンと来たのは、私がしばらくRFID技術に関わりを持っていたからに他ならない。
反駁③:その感動を持てる人は独学できる
ここで言うところの感動が知を追求する原動力になるとは先にも述べたが、ならば、その感動を感じられるならば、その人はその物事について最早他者からの教えを要さないのかもしれない。その原動力に衝き動かされて独学していける。ただこれには、最初の感動がどのように与えられるか、という問題はある。また、独学の結果として理解の方向性が明後日の方に向きかねない、という懸念もある。
反駁④:そもそもお前初学者じゃないだろ
初学者という話をしている割に、先に例示した私の原体験が初学者のものかと言われると微妙である。再帰の閃きについて言えば、それを得る以前に三年超程度のプログラミング独学経験7はあった。そこから一つ大きなステップアップとなる経験であったことに違いはないが、それ以前が全くの初学者だったとは言い切れない。加法定理とサブキャリアの話も、その話題に至る以前に数年程度はRFID技術に触れていた。また挫折してちゃんとは覚えていなかったとはいえ、加法定理というものの存在自体も知っていた。反駁②にも通じるが、その経験無くして先述の感動があったとも思えない。
感動なき過程も悪ではない
また、私は反復練習的な学習方法に批判的な訳ではない。むしろ、上記の反駁からするに、必要な過程であろうとも思っている。
例えば掛け算九九、多くの小学生は掛け算の計算としての意味の説明は受けつつも、その理解とは別に単なる暗記として九九を覚えるのではないかと思う。それこそ九九の歌など歌いながら。その暗記作業自体には、九九表の線対称的美しさ8に思い至る余裕はない。とはいえ、九九くらいは覚えておかないと今後の発展的な内容を進めるのに差し支える訳で、理屈を捏ねて九九を覚えないなどという選択肢はない。そうした必要知が様々に積み重なった末に、ある時振り返ると、その知識が具体的に役に立つ場面に気付いて感動する。ここではこれを「積み重ねて振り返る系感動」と呼ぶ事にする。
また、反復練習そのものが生む感動もあるように思う。プログラミングの例えだと、大学生だった頃にとある人が、デザインパターンの本など読む前にまずはプログラム1万行9書いてみろ、そうしたら勝手に身に付いている、という趣旨の発言をしていた。これは個人的には共感できる所である。がむしゃらに様々なプログラムを書き漁った経験から、それらに適用できる美しい共通構造が見出されるという節はある。それは結果的にデザインパターンの再発明ではあるのだが、反復練習、さらにいえばトライ&エラーの繰り返しの結果としてその感動に至っている。ここではこれを「車輪の再発明10系感動」と呼ぶ事にする。
そのように考えると、上述した私の原体験もこれらに整理できるように思える。再帰の閃きは、それまでのプログラミング経験や課題に対する数時間の思索の繰り返しの中で思いついたという点において、「車輪の再発明系感動」である。加法定理とサブキャリアの話は、積み重ねの基礎部分である加法定理の理解がガタガタだったので後から補強しなければならなかったものの、「積み重ねて振り返る系感動」である。学習過程の早いうちから感動を与えたいと思う私の原体験も、よくよく考えてみればこのように、それ自体には感動のない過程も存在した末に得られたものであった。
最初の感動はいつ来るか
しかしそれでも、一度あの感動を味わった身としては、学習者に対して何とかして早いうちにその感動を味わってほしいのである。一度それを味わってしまいさえすれば、それに続く知の探求は甘美なものになる。その感動なき反復練習は、必要であるとはいえ、無味乾燥な苦行ともなりかねない11。どうにか早くその感動に行き着いてもらえないか、そこに至るまでのモチベーションをどう維持するのか、というのは、きっと世の先生という肩書を持つ人全てが考えている事で、そこには私の個人的な思索など及ばぬ積み重ねがあるのだろう。
悩みは尽きない。
- 「チ。」の感想自体も前回のエントリだけではまだまだ書き足りないが、書く事に飽きない為にも、その場その場で書きたいと思ったことをバラバラと書き散らかす方針。↩
- 本業ではない。↩
- 倍角公式など、加法定理さえ覚えれば導出できるものは多いが、いちいち導出していられないのである。↩
- 前々回のエントリで触れた通り当時の研究ネタの一つ。といっても、今回触れるような領域については大雑把に知っている程度であり、研究対象にしていた訳ではない。↩
- これはとても雑な表現。↩
- それも大学のような高等教育ではなく、初等・中等教育のように参加者に様々な物事を習得させねばならず、かつ無下に落伍させることもできない場面においては、特に。↩
- 今から思えばかなり拗れた理解をしてはいたが、再帰呼び出しの考え方の前提たる関数の考え方は分かっていた。↩
- 掛け算の可換則に関して所謂「掛ける数」「掛けられる数」論争についてはまた思うところがあるので別途書きたい。↩
- 10万行か、100万行だったかもしれない。↩
- 車輪の再発明という言葉はシステム開発界隈では兎角悪い文脈で使われがちだが、こと教育・学習という観点においては悪ではあるまいと思っている。↩
- 実際に高校生の私は加法定理でめげたわけで。↩