プログラミングを必修化するなら絶対に「逃れられないバグとの対面」は体験すべきだ、ってハナシ。

まいど、イオリンでござい。

最近、日本でプログラミング必修化の動きが本格化しつつある。

政府はコンピューターのプログラミング学習を小中学校で2020年から段階的に必修にする方針を固めた。人工知能(AI)などの普及を見据え、新しい技術を使いこなして付加価値の高い仕事につく人材を増やす狙いだ。

引用元: プログラミング必修化 政府方針、小中学校で20年から :日本経済新聞

海外では既にプログラミングを必修としているところがいくつもある。アメリカのいくつかの州ではNPO団体や教員が独自にプログラミング教育を導入したり、学校での必修を課している州も存在する。まだ指導要領等に収まっているところは少ないけれども、それでも「プログラミングの学習を義務化しよう」という動きはどんどん加速していくと思う。

プログラミングの必修化は時代に即した良い動きだと思う。でも、私は日本のプログラミング必修化については割と不安が大きいな。

というのも、現状の日本の教育ってほとんどが「正解はこれ!」というのを叩き込んでいくスタイルでしょ?けれども、プログラミングに「正解はこれ!」ってのはないから。アルゴリズム(解法)はあるけれどとっても多彩だし、状況に応じて正解は変化する。

例えばプログラムの実行速度は基本的に速いほうが良いけれども、ある程度待つことが許されるケースならば、実行速度の向上はそれなりで置いておいて一旦完成させたほうがいい。ただスマホアプリなど、実行速度が利用率に直結しやすいケースだと、他をある程度犠牲にしてでも実行速度の向上は追求すべきだ。

また、プログラミングにも「デザインパターン」と言って、「こーいう時はこーいう風にプログラミングしたほうがいい」という解法セットのようなものが提唱されてるけれども、それだって実のところ欠点もあるから使いどころを間違ってしまうとダメダメなプログラムになっちゃう。

だから、「正解は大体これ!」みたいな教え方をしていると、使えないどころか変な癖のついたプログラム技術が定着しかねない。それは怖いよね。

〜〜〜〜

じゃー何を教えたらいーの、ってハナシだけれども。

私はまず真っ先に叩き込むことは「バグ(不具合)の体験」だと思う。これはシーモア・パパートという方が提唱していることでもあるんだけれども、「プログラミングを行い、バグと対面し、それを改善し、またバグを発見し…」というサイクルを体験することがITと接する上でとっても重要なんじゃねーかな。

パパートは、子どもが学習できる言語やプログラムは、熟練者に機能的に劣る事はない、と主張している。また子どものプログラミング教育をためらう教師には「バグの体験こそコンピュータリテラシーには必要」と説いた。

引用元: シーモア・パパート – Wikipedia

私の大学時代の教授も、事あるごとに「バグがないシステムなんてないから!」と言っていた。私もそう思う。少なくとも、作成したシステムがどれだけ単純で、どれだけ自分に自身があっても、「バグがないシステムなんてない」という考えは常に忘れない。実際、色々と開発してきたけれども、バグがないシステムなんて無かったと思う。だからこそ入念にテストを重ねるわけだし。

ただ、今の世の中にはまだまだ「バグがないシステム」を信じている人が大勢いる。だからこそ「テスト」の工数を何かにつけて蔑ろにするし、「簡単な修正ならテストもあんまりしなくて良いでしょ」みたいな発想になっちゃうわけだよ。その結果、大炎上したり大損害が出たりするわけだ。

逃れられないバグとの邂逅体験は、「何かプログラミングすれば必ずバグが潜む」という心理を生む。この体験はもう、ITと接する上では必要不可欠だよ。

バグを体験することで、「最初からバグのないシステムはない」ということ、「バグを作らないのではなく、バグを作っても改善できる仕組み作りが重要だ」ということ、そして、それはプログラミングだけではなく世の中全部そうだということを学べれば、そのプログラミング学習は大成功だと思う。

逆に、これを体験させないなら、プログラミングを必修化しても意味はないとさえ私は思うよ。

〜〜〜〜

ちなみに、機械の不具合をさす「バグ」に関してだけれども、実際に機械に虫(Bug)が挟まっていたという事例も存在する。これなんかはもう、本当に防ぎようがねーよな。こーいう事例を見ると、やっぱり「バグがないシステムはない」というのを知ることは重要だと思う。

参考: バグ – Wikipedia

ばいびー☆

長野県は夏に行こうかな。涼しそう。

長野県は夏に行こうかな。涼しそう。