Infoseek 楽天

小学校で必要な「プログラミング的思考」とは何か? - 冷泉彰彦 プリンストン発 日本/アメリカ 新時代

ニューズウィーク日本版 2016年7月15日 17時20分

<小学校でのプログラミング教育の導入が文科省主導で検討されているが、それ以前に日本の数学教育には「マイナスの概念」を頑なに教えない等、前近代的な思想が残されていることが問題>

 日本社会が「IT化やAI(人工知能)で遅れをとっている」という危機感から、「小学校でプログラミング教育を」という意見があるようです。そうした風潮を受けて、文科省は「小学校段階における論理的思考力や創造性、問題解決能力等の育成とプログラミング教育に関する有識者会議」を設置して検討しています。

 気になってその議事録を見てみたのですが、全体としては「意外とまとも」な議論が進んでいました。例えば、

「プログラミング教育とは、子供たちに、コンピュータに意図した処理を行うよう指示することができるということを体験させながら、将来どのような職業に就くとしても、時代を超えて普遍的に求められる力としての『プログラミング的思考』などを育むことであり、コーディングを覚えることが目的ではない」

「これからの子供たちに求められるのは、これまでにないようなまったく新しい力ということではなく、従来からも重視されてきている読解力や論理的・創造的思考力、問題解決能力、人間性等について、加速度的に変化する社会の文脈の中での意義を改めて捉え直し、しっかりと発揮できるようにすることであると考えられる」

 という具合です。まったくその通りだと思います。では、小学校の段階で「取ってつけたように」コーディングなどの教育を追加するのではなく、これまでの教育をマイナーチェンジして「より深い思考力」なるものを目指せばいいのでしょうか?

 この点に関しても、この有識者会議では興味深い議論がされています。(参考:文科省のサイト)

 ですが、一つ非常に気になる点がありました。

【参考記事】数学の「できない子」を強制的に生み出す日本の教育

 それは「小学校で筆算を学習するということは、計算の手続きを一つ一つのステップに分解し、記憶し反復し、それぞれの過程を確実にこなしていくということであり、これは、プログラミングの一つ一つの要素に対応する。つまり、筆算の学習は、プログラミング的思考の素地を体験していることであり、プログラミングを用いずに計算を行うことが、プログラミング的思考につながっていく」という部分です。

 指摘としては正しいと思います。アメリカで教育活動を行っている私は、アメリカの算数・数学教育が、基礎的な概念が入るとすぐに先へ進んでしまい、中高では関数電卓に頼ってしまうなど、筆算による計算力を鍛えるという発想がないのは困ったものだと思っているからです。日本の教育において筆算を重視することはいいことですし、それが「プログラミング的思考」につながるというのも正しいと思います。

 問題は「小学校段階の筆算」です。筆算だけでなく、筆算重視を中心とした「小学校の算数」には問題が大ありだと思います。要するに「プログラミング的思考」の逆をやっているからです。



 例えば、筆算に定規を使えという方針が一部にあるようです。ノートを綺麗にするのが学力向上の基本だというのですが、中には、横書きの式における「+」や「-」「=」の記号まで定規で書けなどという指導もあるそうで、無茶な話だと思います。数学というのは個人が「論理という道具の使い手」になるためのものですが、これでは子どもを「形式の奴隷」にしてしまうだけです。

 別に100%否定するつもりはありません。手書きのノートが乱雑になってしまうために、計算が苦手になるような生徒には効果的な指導かもしれないからです。ですから、定規反対派の教員になると一律に禁止したりするそうですが、それも形式主義ということは変わりません。要するに計算というタスクの中にある「目に見えない論理」の軽視や、本質に外れた「縛り」が多すぎるのです。

 もっと深刻なのが、いわゆる「帰納的な思考法」を重視する余りに、「生活実感から概念に到達するまでのストーリー」が長すぎるという問題です。そして、そのストーリーに付き合わされる間は論理性と直感性が混じった思考が強いられるので、大変に非効率です。

 例えば、掛け算の場合は「30円のものが4個」という計算は「30かける4」がマルで、「4かける30」はバツだとか、割り算の場合も「一人2個ずつ配ると何人に配れるか?」という話と「5人に分けると一人あたり何個になるか?」という話を「わざわざ分けて」やっていたりします。

【参考記事】日本の生徒は「儀礼的」に教師に従っているだけ

 似たような問題としては、小学校では、マイナスの概念を扱わないことになっているということがあります。そこにあるのは「マイナス1個のリンゴ」というようなものを「目に見える形」で表現することはできない、従って生活実感から説明できない「抽象概念」だから小学校では扱わないという思想です。その思想が問題なのです。

 この頑固な思想ですが、70年代に一時的に「数学教育の現代化」という方針で集合論の導入などが行われましたが、その後「落ちこぼれを生む」などの理由で、「ゆとり」へと大きく方向性が変わっています。その際に集合論の教育は小中から「追放」されてしまい、今でも元には戻っていません。その「現代化否定論」というのが問題だと思います。

 プログラムというのは、最終的には人類の生活におけるニーズを満たすという目的で書くものですから、生活実感との関係は大切です。ですが、それはあくまで要件定義の外側の部分であって、アルゴリズムを作って実際に1ステップずつのプログラムを書くというのは、抽象的な論理の表現以上でも以下でもありません。

 とにかく乗法の場合は順序を入れ替えても結果は同じとか、「マイナスの概念」や「集合論の基礎」というような「最低限の抽象的な論理性」が教えられないのでは、「プログラミング的思考」も何もあったものではないと思います。

この記事の関連ニュース