あるごる

もはや今さら言っても仕方のないことだが、俺は小学校での英語教育とプログラミング教育に反対だ(´_ゝ`)

とくにプログラミング教育はまったくの無意味。
ずっとそう言い続けていたが、その理由としてより説得力のあるものを見つけた。

FORTRANの父、ジョン・バッカスの言葉だ。

彼はFORTRANもを含め、初期のプログラミング言語ノイマンのストアド型の構造に支配されていたことを嘆いていた。

ノイマンが現代のコンピュータにもたらした貢献は果てしなく大きい。
しかし同時に、それが足かせににもなってしまった。

バッカスは言う。
FORTRANをはじめとして、それに続く言語が20年に渡ってノイマンの概念から発展新たのはやむをえないことだが、残念なことだ。

 なぜ残念かといえば、長年この方法に慣れてしまうと、将来遥かに優れた知的能力と計算能力を提供するプログラミングを理解し、採用することが難しくなるからだ」

実際、16bitに慣れたプログラマが、GUIの32bitのプログラムに適応できなかったり、手続き型に慣れてしまってオブジェクト指向へと転換できない例はいくらでもある。

この大きな理由は、ソフトウエアに関してはいまだに確固たる科学的な分野が確立していないことだ。

コンピュータサイエンスはすでにある。
だがソフトウエア工学は、名前だけが独り歩きしちゃってる状況。

1968年、ブライアン・ランデルがはじめて「ソフトウエア工学」という言葉を使ったとき、あくまで科学として確立するためのカンフル剤として意図的に名付けたものだったが、すぐにこの言葉は既成事実となってしまった。

半世紀も経ってるのに、いまだソフトウエアには確立された科学的な論拠が存在しない。

いまのプログラミング手法が、10年先や20年先でも通用する保証は一切ないわけだ。

だからこそ逆に、古臭くて基礎的なコンピュータサイエンスが重要になってくる。
でもこのCSは数学を理解していないと意味がない。

たとえば計算量で使われるランダウのO記法では、対数や指数が分からないと何を評価しているのか理解できない。

Squeakなどのようなプログラミング言語に、子供のころから慣れさせておくのは賛成だ。
でも学校の「教育」でやることじゃない。

学校の「教育」にしてしまうと、問題解決の手段に「正解」があるものだと錯覚してしまう。

その教えられた「正解」が、上記のバッカスの言葉のように足かせとなり呪いとなってしまうこと、それが俺が学校でプログラミング教育することに反対する理由だ。

というか、教育者の人たちは、いま現在のプログラミング手法を教えて、10年20年後に彼らがIT分野で大成すると本気で思ってるのだろうか(´_ゝ`)