2022年03月25日 12時00分

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

ホームプログラミングコラムプログラミング的思考と論理的思考の違いとは?

プログラミングでは、論理的思考力が重要と言われています。一方、2020年から小学校でプログラミング教育が必修化されましたが、必修化の目的は「プログラミング的思考を育む」としています。「プログラミング的思考」「論理的思考」この2つの違いは何でしょうか。

本記事では「プログラミング的思考」と「論理的思考」の違いについて、解説します。



プログラミング的思考とは

image4.jpg

2020年から小学校で必修化されたプログラミング教育では「プログラミング的思考を育む」ことが目的の1つとなっています。最初にプログラミング的思考とは何か、解説します。

プログラミング教育の目的

文部科学省が公開している「小学校プログラミング教育の手引き(第三版)」(※1)によると、小学校のプログラミング教育の目的の1つとして、「プログラミング的思考を育むこと」が挙げられています。

※1:文部科学省「小学校プログラミング教育の手引き(第三版)」

また、プログラミング的思考とは「自分が意図する一連の活動を実現するために、1つ1つの動きに対応した記号をどのように組み合わせたらよいか、論理的に考えていく力」としています。

つまり「目的を実現するためにどのような処理を行えばよいかを考えること」がプログラミング的思考です。そして目的どおりコンピュータに実行させるための命令文をプログラムといいます。

プログラミング的思考の例

プログラミング的思考の例を考えてみましょう。小学校で学ぶプログラミングの授業の例として「多角形の作図」があります。多角系を作図するには「辺を書く」「決められた角度に回転する」を繰り返します。60度ごとに回転すれば三角形、90度であれば正方形が作図できます。

この例では「多角形を作図する」という目的を定め、それを実現するためにどのような作業を行うか考えています。このように、定めた目的をどのように実現するか考えるのが、プログラミング的思考です。

プログラミング的思考が求められる理由

昨今、人工知能やIoTを始め、情報技術が飛躍的なスピードで進化を続けており、それらを活用して社会が急速に変化しています。スマートフォンやタブレットなど、あらゆる情報端末が使われていますが、これらは全てプログラムで動いています。

コンピュータは全てプログラムで動いています。自動車や家電製品に組み込まれているコンピュータ、自動販売機や券売機など身近なものにもプログラムが組み込まれています。急速に進化している人工知能やIoTなども、プログラムで動いています。

これら情報技術を上手に活用するには「プログラムがどう動いているか」「プログラムをどのように組み立てれば目的を達成できるか」を理解することが大切です。今後情報技術は生活において欠かせないものになるでしょう。

情報技術を活用してよりよい社会を築くためには、プログラミング的思考が必要です。

論理的思考とは

image3.jpg

続いては、論理的思考について解説します。プログラミング的思考と非常に似ているため、混同しないように注意しましょう。

「論理的思考」=「筋道を立てて考える力」

論理的思考力はロジカルシンキングとも呼ばれ、物事を筋道立てて考える考え方のことです。ある結果を得るために、1つ1つのプロセスを分析して結果を導き出すための考え方です。

例えば、ある目的地を目指すとします。目的地にたどり着くためには複数の方法があります。電車でいくか、自動車でいくか、徒歩で行くか、状況や目的によって変わります。また、電車で行くにしても時間が合わなければ待たないといけませんし、自動車で行く場合は渋滞に巻き込まれる場合もあります。

無駄に時間を費やすことなく、正しく目的地に到着するためには、必要なことを1つ1つ確認して確実に実行することが大切です。このように1つ1つ筋道を立てて考えることこそが、論理的思考です。

論理的思考力が必要な理由

論理的思考力によって、物事に対して1つ1つ分析し効率のよい手順を取ることができるため、ビジネスの世界で役立ちます。逆に論理的思考力が十分になされていないと、行き当たりばったりな行動になりがちです。

自分が行う作業について十分な分析ができておらず、同じ失敗を繰り返したり、手戻りが発生し無駄な時間を費やしたりするといった経験はないでしょうか。論理的思考ができれば、1つ1つの作業を分析して効率の良い方法を考えて実行するため、ミスをしないよう事前に気づき、対処することができるようになります。

また、万が一問題が発生した場合にも、論理的思考は大切です。なぜそのような問題が起こったか、深堀をしていく中で1つ1つ起こった経緯を分析するのに論理的思考が役立ちます。論理的思考を活かすことで、優れた問題解決能力が身につきます。

論理的思考は自分だけでなく周りの人間にもメリットがあります。プレゼンテーションなど相手に物事を説明する際、1つ1つ順を追って説明することで相手への理解を深めることができます。論理的思考があれば、コミュニケーションも円滑に行うことが可能になります。

このように、ビジネスのあらゆる現場で論理的思考は役立ちます。

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

image6.jpg

ここまで「プログラミング的思考」と「論理的思考」を説明しましたが、とても似ていることがわかります。この2つの考え方の明確な違いは何でしょうか。続いては、この2つの違いについて解説します。

プログラミング的思考は論理的思考の一部

論理的思考とは、目的を達成するために行うべき作業内容を1つ1つ考えることです。それに対しプログラミング的思考は意図した目的をコンピュータに処理させるために、最適な方法を考えることです。

目的を達成するための方法は1つではありません。どのような方法があるか1つ1つ筋道立てて考えるのが論理的思考です。そのようにして考えて出た数ある方法の中でも最適な方法を考えるのがプログラミング的思考です。

つまり、プログラミング的思考は論理的思考の一部と言えます。

プログラミングで論理的思考力が育つ理由

image5.jpg

「プログラミングをするには論理的思考力が必要」「プログラミングをすると論理的思考力が育つ」とよく言われます。これはなぜかご存じでしょうか。プログラミングを行うことでどのように論理的思考力が身につくかを解説します。

処理順序を考える

プログラミングは、シンプルな処理を組み合わせて作成していきます。処理の組み合わせでも、順序によって結果が変わります。また、処理を分岐させたり、繰り返したりして効率の良いプログラムを考えなければなりません。

また、プログラミングで扱える処理は無数にあり、プログラミング言語によってはライブラリとして数多く提供されています。それらをいかに正しい順序で組み合わせて処理を行っていくか、論理的に考えていかなければなりません。この過程で、論理的思考力が身につきます。

処理効率を考える

意図した結果を導き出すための方法は1つとは限りません。処理効率が悪ければ、たとえ正しい処理結果が導き出せたとしても時間がかかるようになります。

例えば、1から100までの数字を加算した結果を算出するのに、1から100まで1つずつ加算する方法もあれば、1と99、2と98…と合計100になる数を数えることで簡単に算出する方法もあります。

このように、1つの目的を達成するために、いかに効率のよい処理を行うかを考えるのに、論理的思考が必要です。

処理結果を導き出す

作成したプログラムが必ず正しい処理結果を出すとは限りません。処理が正常に完了せずエラーとなったり、処理は正常終了したものの出力された結果が意図したものでなかったりする場合もあります。

プログラムの動作テストを行い正しい処理結果にならないことはよくあります。そうなったとき、論理的に1つ1つ処理を解析して原因を突き止めて修正しなければなりません。このように問題解決を繰り返していくことで、論理的思考が培われます。

プログラミング的思考を育むおすすめの教材3選

image1.jpg

プログラミング的思考および論理的思考を育むには、プログラミングが役立つことがご理解いただけたかと思います。しかし「子供にプログラミングはできるの?」と疑問に思った人もいるでしょう。

小学校で必修化となったプログラミング教育にあわせて、プログラミング的思考を育む教材も登場しています。ここでは、プログラミング的思考を育むおすすめの教材を3つ紹介します。どの教材もプログラミングを行うため、論理的思考力も育みます。

SPACEBLOCK

「SPACEBLOCK」は小型のマイコンボードで、パソコンで作成したプログラムを実行して動かすことができます。パソコンで行うプログラミングブロックを組み立てるように簡単に作成できるビジュアルプログラミング言語を採用しているため、子供でもプログラミングができます。

作成したプログラムをマイコンボードに転送すれば、文字や画像、音などを出力するなど思い通りに動かすことができます。また、センサーモジュールも豊富にあり、マイコンボードと組み合わせることで温度や明るさ、水位などを数値化したり、モーターを動かしたりすることも可能です。

embot

「embot」はダンボールでつくられたロボットを自由に動かせるプログラミング教材です。自分でダンボール素材のロボットを組み立てた後、embotコアと呼ばれるコンピュータを組み込むことで、ロボットを自由に動かせます。

ロボットを動かすプログラムはビジュアルプログラミング言語を用いて作成します。ロボットはLEDライトやブザーを搭載しており、動くだけでなくLEDライトを点灯させたり、音をだしたりすることもでき、楽しみながらプログラミングの学習ができます。

Scratch

「Scratch」はマサチューセッツ工科大学で開発されたビジュアルプログラミング言語です。子供向けのプログラミング言語として有名であり、世界中で利用実績があります。ブロックを組み合わせてプログラミングでき、子供でも複雑なプログラムを作成できます。

キャラクターや画像、音楽などが予め用意されているため、ゲームやアニメーションなどもプログラミングも作成可能です。またScratchで開発されたプログラムは公開されており、そのプログラムを動かすことも、自分で開発したプログラムを公開することもできます。

プログラミングで2つの思考力を育てよう

プログラミング的思考と論理的思考、2つは非常に似ていますが、これから社会を生き抜く上でどちらも大切です。この2つの思考を育てる方法として、プログラミングが有効です。

小学校のプログラミング教育では、プログラミング技術そのものを学ぶことは目的ではありません。しかし子供向けのプログラミング教材もあるため、実際にプログラミングをしてプログラミング的思考、論理的思考を育むことが可能です。

プログラミング教材を活用して、2つの思考力を育てましょう。

公式ブログ
公式ブログ
official
SPACEBLOCK(スペースブロック)公式ブログです。