子供にプログラミングを教えるのであれば

最近は学校教育でプログラミング必修、とかなるらしいので、あちこちでその話題を聞くんだが、正直なところ、この程度の理解では、そりゃ面白くもなんともなかろうなぁ、と思うわけですよ。

まずね。人間が物事を理解するのは「分析(Analyze)と統合(Integration)」という基本があるんだぜ、ってことがわかってないんじゃないかと思うのね。これは西洋の科学の基本のところなんだな。日本語で「科学」って訳した人、すごいねぇ。ちゃんと本質をわかってます。西洋の科学の基本概念は「ツリー構造」なんですよね。ほら、フォルダとファイルなんて、そういう感じでしょ。コンピュータのソフトウエア世界そのものが、この思想で出来てるわけです。プログラミングでいえば、クラスとか、構造化とかって、そういうことだよね。

「科学(Science)」ってのは、「科」する学問なんざますよ。「科」ってのは、ほら、草木の分類とかで「~科~目の」なんて言うじゃないですか。あの「科」です。その意味は「分けて、分けたそれぞれに名前をつける」ことなんです。そうして分けたそれぞれのものが別のものだと認識する。そして、わけられたものも、またさらにわけられて。。。。で、結局どうなるかというと、わけられたものの構造は「より簡単になる」わけで、人間が理解しやすくなる(はず)って言うことなんですね。だから「分ける」「分けたものに名前をつける」「名前をつけることによって、わけられたものどうしが別のものであると認識する」わけです。分かった?なんつって。こうやって、ツリー構造の幹から枝に向かうわけですね。概念的にね。これを「分析(Analyze)」と言うわけですな。

で、分けて、違うものと認識する、というのが前提だから、同じ名前のファイルとかって、同じフォルダの中の同じレベルの場所に作れないようになってるよね。そういうことだよ。昔のコンピュータサイエンス関係の本には「named」っていう単語がいっぱい出てきた。「名前が付けられた」ってことね。これが重要な意味を持つのは、「分類」がそれによってなされるからだね。

反対に、このツリー構造の枝で別れたものを組み合わせて幹の方に向かう、複雑なものを作っていくのは「統合(Integration)」っていうのね。

近代から現代に至る「科学」のそれは根本的な哲学なんですわ。コンピュータの構造とかプログラミングも、要するにそういうものが根底にあって、それで作られているわけね。まずはさ、子供にここを理解してもらわんと、困っちゃうわけです。

しかし、だ。この「科学」という人間の叡智も、ビックラこいたのが、生物の世界。言い換えれば、自然科学のほとんどだわな。分析していきゃわかるだろ、らくしょー、とか思って分けて分けて分けて分けまくった先には「C,H,N,O」っていう4つの元素しかなかった。いくら分けても、人間てものがどうできているか、まるでわかんなかったんだね。逆に、わけていってシンプルにしたら、かえってわかんなくなっちゃった。この方法じゃわからん、ってことがわかったんだな。人間とか生物の秘密は、実は分けてもわかんなかった。「生物の秘密」は実は「分けてもわからず、その組み合わせにあった」から、分けて分けて分けても、かえってわからなくなっちゃったんだ、というのが、やっと最近わかってきたわけですね。

まぁ、そういう「生物学」の世界の話はともかくだな、その前段階としての「西洋的科学を支える哲学」ってのは、難しい概念でもなんでもないので、まずはそれを教えて欲しいわけですよ。それがわかると、みんなそのアナロジーでできてるのがコンピュータとかプログラミング言語なんで、どんどんわかっていくんだよ。そう「ツリー構造」という概念がなぜ西洋の科学の本質として使われてきたか?それでコンピュータがいかにできているか、ってのを学んで欲しいなぁ、と思うわけです。

 


このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください