スクリーンショット_2018-12-15_8

「数学を使って遊ぶ力」を身につけるためのプログラミング教育

知識には、二種類あると思っています。

「知っているけどわかっていない知識」というものと、「知っていてわかってると思い込んでるだけの知識」というものです。結局、どちらも「わかってない」ということが共通しています。

昨年、ABC予想という数学史上の難問を初めて証明するために京都大学の望月新一先生が考案した宇宙際タイヒミュラー理論(IUT理論)の解説スライドを書くという仕事をさせていただきました。

その際、「IUT理論がどうして画期的なのか」ということを東京工業大学の加藤先生に事細かに解説いただいたのですが、もともと数学が苦手な私は、非常に驚きました。

加藤先生曰く、実は現代の最新数学であっても、「足し算とかけ算の関係は複雑すぎてよくわかっていない」のだそうです。

みなさんはそれを聞いてどう思うでしょうか?

私は仰天しました。

小学校のかなり最初の方に習う足し算と、かけ算は、まるで当たり前のもののように提示されますが、その本質的な関係性すら解明されていないというのは大きな驚きでした。

私たちは小学校で足し算とかけ算を習うわけですが、実はよくわかっていなかったわけです。

しかし、だからといって私たちが足し算とかけ算を「使えない」ということではありません。私たちが「わかっていない」ということと、それを「使えるかどうか」ということは違うわけです。

私たちの生活には、買い物をするときに足し算もかけ算も出てくるわけで、それを当たり前のように使っているわけですが、とことん突き詰めて行くと実はまだよくわかっていないほどに複雑なわけです。

「わかってなくても使える」という知識を、私は「実用的な知識」と呼ぶことにしています。

一般に数学は、中学校、高校へと進むにつれてどんどん高度になっていきます。

たとえば高校ではベクトルや行列を習うわけですが、それらを「なんに使うか」まで教えてくれる先生はなかなかいません。

これは「知っていてわかっているつもりだけど使えない知識」ということになります。

テストの問題がとけることと、その方法を実用的に使えるということの間には大きな開きがあります。

高校に進学すると、そういう「実用的でない知識」をたくさん覚えなくてはなりません。

それが一般に「数学に苦手意識を持つ」きっかけになります。

「将来役に立たないかもしれない数学の知識を、なんのために勉強するの?」という問いに、正しく答えてあげられる先生はほとんどいません。先生自体が、実用的な使い方を知らないからです。

しかしこれは非常に勿体無いことです。

学校で学ぶのは本質的な知識です。学問的に正しく、そして学問をやって行く上で常識となる前提知識の数学として、高校ではベクトルや行列や微積分といった概念を身につけなければなりません。

ところがその「実用的な使い方」を同時に知らなければ、宝の持ち腐れです。いっときの受験のための知識として詰め込んだ後は、忘れてしまいます。

我々は、学校外での教育として、まさしくこの「数学の実用的な使い方」を学ぶ方法として、プログラミングを教えようと考えているのです。

ベクトルや行列、微積分といった考え方は、プログラミングを学べば、たとえ「本質的な理解をしていなくても」「実用的な道具としての数学」として使うことができます。

単に試験にパスするための知識を身につけるのではなく、長い人生で一生付き合える道具としての知識を身につけるのに、プログラミングほど最適な教材はありません。

プログラミングを学ぶことで、「数学を使って遊ぶ力」を身につけて欲しいと私たちは考えています。

だからこそ私たちはビジュアル言語をあくまでも本格的なプログラミング言語への入り口としか考えていません。

「数学を使って遊ぶ力」をするためには、ビジュアル言語ではできることが少なすぎるからです。

私たちの教室では、ビジュアル言語で入門したあと、すぐにJavaScriptというプログラミング言語を学びます。なぜJavaScriptなのか、それについてはまた項を改めて説明させていただきたいと思います。



この記事が気に入ったらサポートをしてみませんか?