2015年12月23日水曜日

プログラミング教育について

本エントリは特に技術的な内容ではない。

技術畑なので偉そうなことも言えないが、プログラマ/エンジニア的視点で見えている社会というものも、それなりにある。

今日は、最近よく話題に上る、プログラミング教育について私の考えていることを書きたい。

長いので読んでられない人向けに3行のまとめも付けておいた。下から2つ目の副題にある(なお最後の副題は日記である)。

プログラミング教育がもたらすもの

私がプログラマだから思うのだろうか、プログラミング教育にみんな過剰に期待し過ぎに思える。

プログラミングを学ばせたからといって論理的に考えたりできるようになるわけではない。もちろん別に非論理的になるわけでもない。

少なくとも、よく言う「理屈に沿って物を考える」という意味における論理的な態度と、プログラミングが、特に結びつくように私には思えない。

しかしながらプログラミング教育は意味があることだと私は思う。なぜなら、現代の多くのものは、プログラムされて動いているからである。

多面視的な態度

教育の効能とはなんだろうか。教育の段階に応じて様々にあるだろうが、重要なもののうちの一つに、物の見方が増えるという効果が挙げられるだろう。

例えば一台の自動車がある。内燃機関で燃料が起こす燃焼の物理的・化学的な理論。前進しながらハンドルをを切ったときの軌跡を描く数式。自動車やエンジンが変えた社会ともたらした新たな問題、それ以前、以降を比較する歴史の知識。

このように、高校卒業程度の教育によって、一つのものに対して、その構成する要素や、する挙動、それにより構成されるより大きな構造に思いを巡らすことができる。

ところで、現代の自動車とセットになるのは、大抵カーナビゲーションシステムだろう。ところがこのナビゲーションシステムの「システム」がどう構成されどう動いているのか(念のため言っておくと、GPSがなぜ動くかとか相対性理論とか、そういう話ではない)思いを巡らせるための教育というのは、現在のところあまり充実していない。少なくともいわゆる「5教科」より充実していないだろう。

教育の効能の一つが、現代の様々な事象の見方を増やすことであるとするならば、その教育の一つに現代の構成要素の一つであるプログラミングが含まれないことが、そろそろ問題視されてくる頃合いではないだろうか。少なくとも情報技術はその著しい成長速度によって、ずいぶんと成熟した技術・産業となっている。

教育の効能を保ち続け欠けさせないために、教育が教育であるために、プログラミング教育という要素を取り入れなければいけない時代になってきているわけである。

論理的な態度

プログラミング教育によって論理的な態度が身に着くわけではないように思える、と言った。しかし、現代のこの状況において、プログラミング教育は結果として、論理的思考力を高めることもあるだろう。

私の考える理由はこうだ。

まず、単純に言って、多面視的態度を身に着けることは考える量が増えることであり、同時に論理的思考力も鍛えられる。これを疑ってかかる人は少ないと思う。見える面が増えれば、理屈も増え、理屈同士の繋がりを筋道立って考えられる力も鍛えられる、そういうわけだ。

次に、プログラミングすることは、要素の繋がりと動きの手順を考えてシステム(物事の進行の仕組み)を形作ることである。そして現代はシステム化が重要な社会で、秀でている人間は論理的だとみなされやすい。もちろんシステムを作ることに精通するためには、多面的な視点を持つことは最重要とも言える程度に重要なわけだから、先に挙げたものを別の言い方をしただけとも言えるが。

まとめ

私たちの身の回りは、既存の教育カリキュラムには乏しい「プログラミング」によって構成されるものがほとんどを占める社会になっている。

教育が、その効能の一つである「物の多面的見方を養うこと」を保ち続けるために、カリキュラムを現実の社会に即したものに更新していくのは大事なことである。

論理的思考能力は、プログラミング教育そのものではなく「現代の物事を多面的に見られること」で養われる。

日記:鬼は笑えど

日記のようなものは最後に書くのがこのブログのスタイルである。

このブログをたくさんの人に読んでほしいとかはもう始めから考えてなかったのだけど、とある友人が最近ブログを始めて、そこそこに読んでもらえていると聞き、にわかにブログを書こうという気力が出てきた次第、というわけだ。

昔から文章を書くのは好きな方なので、なるべく読んでくださるであろう方々のほうを向きながら、書いていきたい所存である。

もっとも、明日にはやる気をなくしているかもしれないが、そんなことはこの副題の通りである。