プログラミング教育って数学と相性悪くね?

今日はポエム書きます。Twitterで書こうかなと思ったけど長くなったのでブログで。

プログラミング教育を必修化させるとかなんとか、一部では盛り上がっているようですね。
誰が教えるんかな~、とは思っていますが、別に賛成でも反対でもないです。子供は大変そうだけど、家庭科や技術で習ったことを社会人になって覚えている人間がどの程度いるというのか。
例えば音楽なら楽典(音楽の基礎的な理論のこと)を少しは習うので、その辺の道行く大人であればそれなりに楽譜が読めてもよさそうなものですが、実態はお察しなのでプログラミングもそんなもんでしょう。

ここでふと思ったのはタイトルの「プログラミング教育って数学と相性悪くね?」ってことなんです。
正確に言えば、学校でやる数学の単元のうち相性が悪いものがいくつかあるように思うんですよね。幼少からプログラミングにどっぷりだと結構この相性問題はあるように思えて、小学校の時(90年代)からゴリゴリプログラムを書いていた私もその一人だったと思います。

まず根本的に、現行のコンピュータというのは離散系なんですよね。デジタルともいえますけれど、子供の時から寝ても覚めてもプログラムのことばっかり考えていると、脳みそもコンピュータ化してきます。
実装可能な仕様を考えたり、ソースを読みながら脳内でプログラムを実行する訓練を毎日続けていると、ありとあらゆる問題を整数(ないし有限桁の実数)と、有限のステップで解決する癖がついてきます(つきました)。

そういう脳みそだと、無限やその周辺のことを考えるのがしんどくなります。無限や極限、無限和なんかは苦手でしたね。気分的に。
あとillposed problemも大変嫌いになりました。具体的には(多項式の)因数分解です。これはComputer Visionという面白いillposed problemに触れることで解消できましたが、まぁOpenCV等がある現代の教育でどこまでその面白さに触れる機会があるかは謎です。

翻って、三角関数や行列なんかはまぁまぁ得意でした。子供がプログラミングを覚える理由たぶんNO1であるゲーム作っていると、この辺は強制的に挙動を覚えざるを得ないので慣れですね。

根本的に何かを学習するというということは、脳みそのニューロンの重みづけをそれに合うように調整するということです。
その場合別の何かの学習が容易になったり、あるいは難しくなったりすることは経験的に知られています。(脳科学では正の転移や負の転移とかいうそうです)

何事もできないよりはできる、知識は重荷にならない、という考え方はありますし私も基本的に何でも知りたい人なのでそっち派ですが、子供もそう考えてるとは限らないかな、と。
割と数学とかと補完的な文脈で語られていることが多いように思ったので、まぁジャンルによるよね~。というお話でした。

ただプログラミングの一つの側面として、現実世界を捨象したものをさらにコードという具体的な形に変換する、という動きがあります。
簡単に言えばモデル化することですが、これだけは本当に鍛えられます。

数学にしても工学的に使う際にはモデルを作るための材料になりがちですが、なんといってもプログラムの場合は実際に動かすことができる。しかも何度でも、電気代だけで。
これはなかなかない特性です。もしモデルを構築、運用する力を鍛えるためにプログラミングを、ということであればいいじゃないか、と思いますが、どうでしょうか。

IoTとかで財をなした企業とかがわさっと出たら今度は電子工作とかいうのかなぁ、とか思うとなんだかなぁという気持ちになることが無いわけではないですが・・・。

コメント

タイトルとURLをコピーしました