プログラミング的思考と論理的思考の違いとは?元プログラマーがわかりやすく解説

プログラミング的思考
この記事を書いた人
すまま

5歳・1歳を育てる、教育学部出身の元プログラマーママ

大学で教育を学び教職を目指した後、教育現場向けソフトウェアの開発に携わる。開発経験を通して、プログラマーは技術より「問題を分解して考える力」が重要だと実感し、おもちゃ選びや声かけにこだわるきっかけになりました。
現在は1歳・5歳の2児を育てながら、実際に試した知育おもちゃ・教材・声かけ方法を発信しています。

Webライターとしての執筆経験を活かし、正確でわかりやすい情報をお届けします。

すままをフォローする

「プログラミング的思考って最近よく聞くけど、論理的思考と何が違うの?」

そんな疑問を持つ方は多いのではないでしょうか。

この2つは似ていますが、まったく同じではありません。

かんたんに言うと、論理的思考は物事を筋道立てて考える力であり、プログラミング的思考はそれに加えて、問題を分解したり、手順を整理したり、改善を重ねたりしながら目的を達成する力です。

この記事では、

  • プログラミング的思考と論理的思考の違い
  • なぜ今注目されているのか
  • 子どもへの育て方のコツ

を、教育学部出身・元プログラマーの2児ママの視点でわかりやすく解説します。

実際にプログラマーとして働く中で、「プログラミング的思考がある人とない人」の差を肌で実感してきました。

その視点も交えながら解説しますので、ぜひ最後までご覧ください。

プログラミング的思考と論理的思考の違い

結論から言うと、プログラミング的思考は論理的思考と重なる部分が大きいですが、同じものではありません。

論理的思考とは、物事を筋道立てて整理し考える力のことです。「なぜそうなるのか」「どうすれば解決できるか」を順序立てて考えます。

一方、プログラミング的思考とは何でしょうか。文部科学省は次のように定義しています。

自分が意図する活動を実現するために、どのような動きの組み合わせが必要かを論理的に考えていく力

つまり、プログラミング的思考は、論理的に考えることをベースにしながら、

  • 問題を小さく分ける
  • 手順を整理する
  • 条件に応じて最適な方法を考える
  • うまくいかなければ修正・改善する

といった過程を通して、目的を実現していく考え方です。

ここで宿題を終わらせるときの例を紹介しますね。論理的思考とプログラミング的思考の違いは次のようになります。

つまり、論理的思考が「筋道を立てて考える力」だとすれば、プログラミング的思考は「筋道を立てたうえで、試行錯誤しながらよりよい方法を探る力」と言えます。

元プログラマーとして働いていたときも営業・システムの業種に関わらず、単に動くものを作れる・設計できる人より、処理の流れを整理し、修正しやすく、再利用しやすい形で考えられる人のほうが、仕事を進めやすい傾向がありました。プログラミング的思考は、どんな人でも現場での問題解決に役立つ考え方だと感じています。

プログラミング的思考が注目される理由

プログラミング的思考が注目されている理由は大きく2つあります。

  • AI時代の到来により「問題解決する力」がより重要になったから
  • 学校教育も「正解を覚える」だけでは足りなくなっているから

順番に解説しますね!

AI時代の到来により「問題解決する力」がより重要になったから

AIが多くの仕事を代替する時代になりました。単純作業はAIやデジタル技術の発達によって機械に任せられます。

しかし、

  • 問題を発見する力
  • 解決策を考える力
  • より良い方法を探す力

のように単純に答えを出すだけでは対応しきれない場面は、人間の対応として求められる力。何が問題なのかを見つけ、どの順番で解決するかを考え、必要に応じてやり方を変えていく力がより重要になると考えられます。

つまり、「正解を覚えている人」より「どうすればもっと良くなるかを考えられる人」が強い時代になっていくのです。

プログラミング的思考はまさにこのような「問題解決する力」につながる考え方なんですよね。

学校教育も「正解を覚える」だけでは足りなくなっているから

これまでの学校教育では、「正しい答えを覚えること」が重視される場面が多くありました。たとえば、歴史の年号を暗記することや、テストで正解を早く正確に答えることなどです。もちろん、小中学校で学ぶような基礎知識は今でも大切です。

しかし現在は、知識を覚えることに加え、

  • 初めての問題にどう対応するか
  • うまくいかないときにどう改善するか
  • 限られた時間でどう工夫するか

など、「考える力」を重視するようになっています。

こうした力を育てる重要性が高まり、小学校でもプログラミング教育が必修化されました。目的は、プログラマーを育てることではなく、

  • 順番を考える
  • 原因を探す
  • もっと良いやり方を試す

といった、思考力や問題解決力を育てることが重視されているのです。

プログラミング的思考を育てる3つの習慣

プログラミング的思考は、特別な教材がなくても育てられます。日常の中で、次の3つの考え方を意識すると、少しずつ身についていきます。

  • 大きい問題を小さく分ける
  • 手順を考えてから動く
  • うまくいかなければ原因を考える

この3つは、大人にも子どもにも共通して役立つ考え方です。

親がまず日常で実践し、「どうする?」「なんでだろう?」「次はどうしてみる?」と声をかけることで、子どもにも少しずつ伝わっていきますよ。

大きい問題を小さく分ける

大きな問題を、そのまま一気に解こうとすると行き詰まりやすくなります。「まず何から始めるか」「この問題はどんな小さな問題に分けられるか」と考える習慣をつけてみてください。

たとえば日常でも部屋を片付けるときに「片付けるものはおもちゃ、本、洋服」と分解するといったイメージです。

手順を考えてから動く

「とりあえず始める」のではなく、「どの順番で作業するのがスムーズか」と手順を考える習慣です。手順を先に考えることで無駄な作業が減り、効率が上がります。

たとえば先ほどの片付けの例でいえば、「まずはおもちゃを片付けて、次は本、最後に洋服を片付けよう」と戻す場所が同じ物ごとに取りかかるイメージです。

うまくいかなければ原因を考えて変える

うまくいかなかったときに、「なんでうまくいかなかったか」を考えて次に活かす習慣です。失敗を責めるのではなく、原因を見つけてやり方を変えることが大切です。

たとえば、積み木が崩れたときに、「下が小さかったかな?」「もっと広く置いたらどうかな?」と一緒に考えてみるようなイメージです。

プログラミング的思考がある人とない人の違い

プログラミング的思考が育つと、問題にぶつかったときの考え方に変化が出てきます。これは「頭の良さ」や「才能の差」というより、普段からどんな考え方をしているかの違いです。

たとえば、次のような傾向があります。

場面プログラミング的思考が育っている人まだ慣れていない人
問題が起きた時問題を小さく分けて整理するどこから手をつけるか迷いやすい
失敗した時原因を考えて別の方法を試す同じやり方を続けやすい
行動する前手順を考えてから動く動きながら考える
効率への意識より良いやり方を探すまず終わらせることを優先する

たとえば料理でもプログラミング的思考が使われています。

プログラミング的思考が育っている人は、「先にお湯を沸かそう」「切るものをまとめて切ろう」「火を使っている間に別の作業をしよう」というように、全体の流れを考えながら進めます。

一方で、考えながらその場で動いていると、「お湯を沸かしてなかった!」「同じ場所を何度も行ったり来たりしている」ということも起こりやすくなります。

もちろん、これは能力の差ではありません。「どうすればもっとやりやすいかな?」と考える経験を積み重ねているかどうかの差です。

実際に、プログラマーとして働いていた現場でも、この違いをよく感じました。トラブルが起きたとき「この処理がおかしい」「この処理をしている場所を絞る」「処理の大元を確認する」のように、問題を小さく分解して、原因を絞り込むのが早かったです。

つまり、「問題が起きたとき何から調べるか」の見立てが早かったということです。

逆に、問題を整理せずに全部を最初から確認してしまうと、どうしても時間がかかりやすくなります。

子どもでもプログラミング的思考の差が出ることも

子どもの場合も、日常の中で少しずつ違いが見えてきます。たとえば積み木が崩れたとき「下が小さかったのかな?」「順番を変えたらどうなるかな?」と原因を考えられる子は、少しずつ問題を整理する力が育っていると考えられます。

一方で、まだプログラミング的思考の土台が育ちきっていない子は、「つみきが壊れた!」「イヤだ!」と感情が先に出ることもあります。

これは才能の差ではなく、「考えて試す経験」の量の違いです。幼児期はまさに「失敗→考える→試す」というプログラミング的思考の土台を作る大切な段階です。「原因を考える経験」を積み重ねることで、考える力は少しずつ育っていきます。

幼児からプログラミング的思考を育てるには

プログラミング的思考は、幼児期から少しずつ育てられます。そのために必要なのは、特別な教材や難しい知識ではなく、試行錯誤できる遊びと、考えるきっかけになる声かけです。

具体的な遊び方や家庭での実践方法は、こちらの記事で詳しく紹介していますので、気になる方はぜひこちらも参考にしてみてくださいね。

FAQ

Q
プログラミング的思考は、プログラミングができないと身につきませんか?
A

いいえ、プログラミング技術がなくても身につきます。プログラミング的思考は、コードを書く力ではなく、物事を分解し、順序立て、改善していく考え方です。日常の遊びや体験の中で十分育てられますよ。

Q
論理的思考があれば、プログラミング的思考もありますか?
A

論理的思考は大きな土台になります。ただし、そこに「効率を考える」「改善する」「試行錯誤する」という視点が加わることで、よりプログラミング的思考に近づきます。

Q
子どもに教えるのは難しいですか?
A

難しく考えなくて大丈夫です。「どうなると思う?」「なんでだろうね?」「次はどうしてみる?」の3つを意識するだけでも十分です。

まとめ

プログラミング的思考は、論理的思考を土台にしながら、問題を分解し、順序を考え、改善を重ねる力です。学校教育でも、コードを書くことより「考える力」を育てる観点から重視されています。

子どもを育てるうえでは、特別な教材よりも日常の遊びや会話の中で試行錯誤の経験を積むことが大切です。「なんでだろう?」「次はどうする?」というやりとりの積み重ねが、考える力を少しずつ育てていきますよ。

コメント

タイトルとURLをコピーしました