第十九夜 経験で学ぶ

 工学系の大学では、1年次に理系の教養として、代数学、幾何学などの数学の授業があり、その後、専門分野に応じて、応用数学の授業がなされると思います。 筆者の大学1年次というと半世紀も昔のことで、数学の授業で習得したことなど、ほとんど忘れてしまっています。ただ、高校生の時に習得した微積分の内容に比 べて、大学数学で習った微分の概念が全く違った世界の出来事のように思えて、その非連続性に驚いたことだけ、強く印象に残っています。その後の応用数学では、 再び高校生の時に習った微積分の授業と連続する感じがして、懐かしさを覚えた記憶があります。考えてみれば、大学1年次の理系の教養としての授業は、物理も 化学も、高度に抽象化されていて、現実離れした印象を強く受けました。これは私が学んだ大学では、大学1年次の教養の授業の多くは、理学部系の教授が担当し ており、工学的応用を睨んだ工学部の教授が担当していなかったからかもしれません。筆者は私が学んだ大学のみならず、日本の多くの理系の大学の1年次の教養 としての数学や物理、化学の授業の内容が、現在、どのようなものかは、知りません。したがって筆者の経験が、現代の大学生に当てはまるか否かは、分かりませ んので悪しからず。

 筆者にとっては、この抽象化された数学、物理、化学の授業は、高校生の時までの、具体的な内容で、現実の社会に容易く投影できるものであったものが、まさ に豹変して高度に抽象化、一般化されており、きっと美しいものであるとは思いますが、このような一般化、抽象化を探求する理学の世界にうんざりさせられまし た。この現実感のない大学での講義が、「人に役立つ機能を科学で実現する工学」の世界に、筆者が、強い魅力を感じるようになったきっかけと思っています。さ て、このようなことを書いていて、数値流体力学、CFDにも大いに関係する計算機プログラムについて、大学でどのようなことを教えているのか、教えるべきなのか という話題を思い出しました。

 半世紀前は、汎用計算機が誕生し、急速な発展を遂げる時期です。筆者の計算機プログラミングとの出会いは、「算法通論」という名前の講義でした。これは名前 の通り、巨大な代数方程式を掃き出し法で求めること、定義点にない関数値を補間補外により算出する方法などの算法を、IBM開発のFORTRANを使って、汎用計算用の プログラムを作成し、実行してプログラミングの初歩を理解することを目的としていました。汎用計算機のメモリーやバス、演算器の構造や、これを支えるオペレー ティングシステムに関する知識ゼロで始まります。ともかくIBMのパンチカードにFORTRANで作成したプラグラムを打ち込み、カードリーダでバッチジョブとして、プ ログラムとデータを読み込ませると、ラインプリンターに結果が打ち出されるという素朴な授業でした。この授業は実際に計算機を操作し、意図した結果を出すとい うことで極めて具体的で、即物的であり、筆者などはこの授業で計算機に関わることが、一度で好きになりました。FORTRANはノートに書いた算法の数式展開をそのま まプログラムに展開でき、わずかに繰り返し操作や条件分岐を付け加えるだけでプログラムが作成できます。既往の数式展開と類似性が高いため、習得の際の困難がほ とんどありません。好きになれば計算機の構造、動作の原理も知りたくなります。

 しかし、一時期、私が学んだ大学では、計算機やプログラムに関わる最初の講義は、プログラム言語としての論理性が高く構造化言語として知られているPASCALを対 象としました。汎用計算機における科学技術計算で、PASCALを用いたプログラムは限られています。またPASCALでは、それまで学んだ既往の数式展開では暗黙に仮定さ れている様々な定義を明示的に定義する必要があるなど、明白な違いがあります。PASCALの習得は計算機科学的には合理的でも、FORTRANのような過去の学習経験の類似 性から来る容易性に劣り、構造の理解に時間がかかります。計算機プログラムにそれほどの興味を持たない学生は表面的な理解で済ませることも多くなります。PASCALの 理解は中途半端、FORTRANは知らない学生が多く生まれます。学年が進んで、計算機シミュレーションや計算機によるデータ処理が必須である大学での最終学年やその先の 大学院では、FORTRANなどの実践的なプログラムを使えない学生に往生し、混乱しました。挙句は、初期の計算機教育としてのプログラム言語としてPASCALの習得とPASCAL から見た計算機の構造の理解に固執する講義に、計算機利用を前提する分野からの異論が繰り返されました。

 筆者は、このような経験をもとに、人の物事に対する理解に対して、次のように解釈しています。人は実社会、実生活で経験した出来事に対して、絶えず類似性を探しま す。経験した出来事を類似したところがないかと過去の経験に当てはめて、類似した現象を探し出し、類似した現象をとりまとめる性質があり、類似性で物事を理解する習 癖があります。いつも、自分の周りを通り過ぎる出来事に対して、何が似ていて、何が違うのかを観察し、何が原因で何が結果になるかを解釈し、原因のわずかな違いが結 果の違いに表れているものとして、類似の現象には同一の原理が働いていると解釈し、記憶し、理解するというものです。このプロセスには、どれだけ類似した現象を度々、 経験するかが重要です。いきなり、一般化、抽象化された原理を提示されても、原因のわずかな振れ幅が結果の違いの振れ幅に繋がるかを経験していないと、この原理を、 経験された知識、理解された知識として受け入れることは難しいと思います。まず、経験する。それも数多く経験し、類似性の中の違いを認識する経験を通して抽象化され た一般的な原理が見えてきて、理解が進むのではないと考えます。類似パターンを十分経験する前に、突然、完成された一般化原理を提示されても、なかなか身につかない ということです。

 経験してください。CFD解析をいやというほど経験してください。見えてくるものがあります。