プログラミングの思考法と教育

教育の場や社会人の間でプログラミングが注目を集めています(どちらが先にという話は置いておいて)。日本社会にとっては将来的に需要がまだまだ増えるのだろうと思います。なので大人が学び始めることについては大いに賛成です。

では子どもたちがプログラミングを学ぶ意義はどこにあるのか?これまでもツイッターなどで挙げてきましたが、再度まとめてみます(自分のため)。

まず、よく言われているのは「『プログラミング学習』は目的ではない」ということ。これは多くのメディアでも指摘されていますが、具体的に言えば、プログラミングは考え方を学ぶ手段とされています。そのため、プログラミングを学習する中で大切なのは、「プログラミングとは何か」「どうすれば意図したようになるのか」「当初考えていた方法がうまくいかなかった時にどう対処するのか」という点かと思います。簡潔に言い換えるならば「基本的知識の習得」「企画・計画」「制作」「運営」「課題可決」のサイクルを手法として習得するということになるでしょう。

このようなスキルはこれまでも多くの科目で取り上げられてきました。特に私が専門としてきた社会科では、「課題解決」や「批判的思考能力」「論理的思考力」などすでに試みられてきた手法です。「そんなことはこれまでの授業ですでに実践してきた!」とおっしゃる教科の方も多いかと思います。PDCAサイクルもその1つと考えて良いでしょう。そのため、プログラミングをやる意義があるのかという意見が出るのは仕方のないことです。

あえてここではプラスに考え、プログラミング学習独自の意義を提示したいと思います。それは「自ら目標を設定し、その達成のための手段を自身で定義し、実践できるようになることができる」ということです。

総合的な学習でも同様な言葉が出てきました。しかし、既存の学習環境は、教員が提示した目標に達するかどうかが基準にありました。考えていくテーマも教員が結局提示することになっていました。もしくは課題を生徒が決めたとしてもそのプロセスの真偽をしっかり見極めて教育をしていくのは非常に困難でした。しかし、プログラミングは目標が自ら設定でき、かつ具体物として見えるという点に大きな意義があります。思考のプロセスで誤りがあればすぐに間違っていたと気付けるのです。

なぜこのような言い方をするのかというと、思考のプロセスに誤りがあると気づかせるのは非常に難しいからです。因果関係や相関関係など適切な説明がなされているのかを教員が吟味することは非常に難解なのです。それが小学生や中学生のレベルで言語で示されたり、頭の中で考えたものであれば尚更です。私は性格上、曖昧な言い回しがあると、「それはどういうこと?」と突っ込んでしまいます(笑)。言語化するのも1つの能力であることは承知の上です。しかし、それでも具体物での証明に敵うものはありません。

具体物を示された時、初めて人間は納得します。逆に具体物のないものはいつまでも抽象論、もしくは仮説としてその人の中に残り続けます。

仮説で「理解した」と言えますか?

「そんなこと言い出したら何もできない(怒)!」という方も多いでしょうが、でもそこを突き詰めていくことは大切な気がします。

名著「知られざる教育〜抽象への抵抗〜」上田薫 著 また紹介します。

この記事が気に入ったらサポートをしてみませんか?