WHYではなく、HOWの思考

では、そのプログラミング教育の中核である「プログラミング的思考」とは何なのでしょう。
今日は、「プログラミング的思考」について、様々な定義をお伝えして比較します。

まず、文部科学省の定義です。

文部科学省の定義
自分が意図する一連の活動を実現するために、どのような動きの組合せが必要であり、一つ一つの動きに対応した記号を、どのように組み合わせたらいいのか、記号の組合せをどのように改善していけば、より意図した活動に近づくのか、といったことを論理的に考えていく力 出典:文部科学省(文科省)「小学校段階におけるプログラミング教育の在り方について(議論の取りまとめ)」

うーむ。もっとズバッといってよ、という文章です。
記号という言葉で、パソコンプログラムを少しばかり意識した定義だと思います。

次は、向山洋一氏が産経新聞の教育コラム「解答乱麻」において言及した定義です。

向山洋一氏の定義
プログラミング的思考とは、ゴールに向かって、一つずつステップを明確にしていく思考法。問題解決力ともいえますし、論理的思考力ともいえます。今回はそれを紙ではなくプログラミングソフトを使用して育てたいのです。

とても、わかりやすいです。
問題解決にアクセントを置き、その手段としてプログラミングソフトを位置づけています

さて、
ウェブで調べると、専門家であるプログラマーの方が定義しています。
その方は、一般的にプログラミング的思考と論理的思考、ロジカルシンキングがほぼ同じ意味で扱われていると指摘した上で、このように定義しています。

プログラマーの定義
プログラミング的思考は目的を達成する手段の中で、最も最適な解を考えること

教員支援ネットワーク T-KNIT https://t-knit.jp/column/logical-programming/

確かに、高次の目的としては、「最適」という視点が必要だと思います。
でも、その前に、とにかく目的を達成という段階があるのですが。

最後に、私の定義というか、プログラミング的思考の背景について考えたこと。

渡辺喜男の定義
WHY(原因を追及する)ではなく、HOW(目的を遂行する)の思考。
なぜそうなったのか理由を探るのではなく、どうすれば目的は達成できるかを探る思考。

学校での学習の多くは、WHYの学習です。
なぜ、ごんはどんぐりを置いたのか
なぜ、参勤交代は行われたのか
なぜ、空気鉄砲は飛ぶのか
・・・
学問て、もともと理由を問うことから始まっています。
ですから、WHYの学習が当然だと思います。

ですが、社会生活においては、WHYも大切ですが、HOWも大切です。
いや、HOWの方が多いと言ってよいと思います。
どうすれば、猛暑を乗り切れるのか
どうすれば、おいしいランチの店が捜せるのか
どうすれば、よく眠れるのか
どうすれば、充実した仕事ができるのか
・・・

このようなことを問題解決していく思考を扱う教科は、総合的な学習の時間でした。
プログラミング教育も、自ら問題解決していく子を目指しているのだと思うのです。