本当にプログラミングは論理的思考が必要なの?どうやって鍛えるの?

会社において論理的思考が高い人は、仕事ができる人といわれます。

最近ではプログラミングにおいても「論理的思考」という言葉をよく耳にします。

「論理的思考」という言葉を聞くと、

 

プログラミングを習いたいけど、論理的思考とか難しそう

論理的思考がないとプログラミングはできないのかな?

と難しく考えてしまう人もいると思います。

人によっては、

 

論理的思考が身に付くならプログラミングを習いたい

論理的思考を身に付けて仕事で活躍したい
という、前向きな意見も聞こえてきます。確かに、

論理的思考を身に付けて仕事の生産性を上げたいと思っている人も少なからずいるのではないでしょうか?

 

ただ、プログラミングで論理的思考が身に付くのだろうかという疑問は残ると思います。

 

そこで、今回はプログラミングに論理的思考が必要なのかを見ていきます。

 

その次に、プログラミングに必要な4つの論理的思考能力を個別に確認していきましょう。

また同時に、4つの論理的思考を総合的に身に付ける方法をご紹介します。

 

そして最後に、論理的思考を個別に高める方法をご紹介します。

 

この記事を読めば、

プログラミングを学ぶと論理的思考を身に付けることができるということがわかります。

 

 

結論!プログラミングに論理的思考は不可欠

『論理』とは、伝え手がわかりやすさを追求するために『論理』が必要になります。

「なぜ?」に対する「理由」を導ける十分な「根拠」をもたなければなりません。

 

  1. コンピューターは、入力に対して結果の出力を返す装置です。
  2. たとえば、「なぜ?」意図する結果が出力されないのか「理由」をさぐります。
  3. 意図しない結果に対して、「理由」に直結する「根拠」が必ず存在します。

 

①~③を繰り返し考えていくことでプログラムが形成されていきます。

 

理由がわからない場合は、仮説を立てて検証を繰り返して根拠を見つけだすことも必要になるよ

なんでプログラミングに論理的思考が必要なのか?

プログラムはプログラミング言語を使って、わかりやすく順序立てて効率よく処理するように記述しなければなりません。

これは、“効率よく” を除いた部分は、まさに論理的思考そのものなのです。

 

たとえば、100円の商品を扱う自動販売機に10円を1枚投入してみます。

結果の出力として10円の表示がされます。当然、商品は購入できません。

 

これは、自動販売機のセンサーが「10円が1枚投入された」と認識しているためです。

 

センサーが100円を満たす条件を繰り返し感知しなければ、商品は自動販売機から排出されないようにプログラムされているからです。

 

つまり、プログラムは効率よく、ときには条件により分岐し、繰り返しの動作を順番に論理的な思考に基づいて処理されているのです。

 

それなので、プログラミングには論理的思考が不可欠なのです。

 

プログラミングに必要な4つの論理的思考能力

プログラミングには主に4つの論理的思考能力が必要になります。

たとえば、”植物の水やりを自動化するためには?” を考えてみます。

 

物事を効率よく行っていく力

ゴールから逆算して考える力が必要となります。

 

プログラミングにおいてはゴールとなる全体像を意識して順序や手順を考えていきます。

全体像が決まらないまま手順を考えても、いつまでもゴールにたどり着くことはありません。

 

“自動で植物に水をあげる” というゴールを意識しなければ、必要なものが見えてきません。

 

どんな動きで、何が必要で、どんな条件のもと水をあげるのか?を考える必要があるよ

必要な情報を得る力

目的を達成するための情報を集めて整理することも必要となります。

 

プログラミングには処理を効率よく行うことが求められます。

時間や手間を省くためにも新たな技術が必要になるかもしれません。

 

”自動水やりロボット”が世の中で作られているか?を調査します。

調査した結果により、より良いものを作るためにはどうしたらよいか情報を整理します。

 

常によりよい方法はないかという情報を収集して整理することが大切だね

問題を解決する力

問題を発見し、予測しながら対策を考えて実行していく力が必要です。

 

どこに問題が生じているのか?どんな状況なのか?を状況把握します。

原因に対する対処は、一度や二度で上手くいかないことも多いです。

 

”自動水やりロボット”で問題となる条件をクリアできるかを試行錯誤します。

 

何度も試行錯誤しながら、根本的な問題はどこにあるのか?問題の本質をつかむことが重要です。

 

実際に簡単な試作機を作って考えると、あらたな問題が生じたり、解決できたりするよ

考えを言語化する力

物事を頭の中のイメージだけで終わらせてもコンピューターには理解できません。

どうしても言語化する必要が出てきます。

 

言語化するために、物事の処理のプロセスを考えなければなりません。

 

”自動水やりロボット”のイメージだけでは、実際のプログラムを作ることはできません。

プログラムミングをする上では、言語化のプロセスをプログラミング言語に置き換えなければなりません。

 

イメージを言葉に置き換えて、具体的に検討していくことが必ず必要だよ

 

 

4つの論理的思考能力を1つの作業で総合的に学ぶには?

論理的思考を身に付ける方法として一番のオススメはロボットプログラミングです。

自動販売機の例で見たように、ロボットプログラミングにも論理的思考が必要です。

 

 

ロボットプログラミングとは?

 

 

 

おもちゃのブロックを本体としてモーターやセンサーなどの電子部品を取り付けてロボットを組み立てます。ロボットはプログラムを書いて動かします。

 

ロボットプログラミングで代表的な存在は、LEGO社のmindstormsです。

教育用に作られたレゴブロックになります。

 

たとえば車のラジコンであれば、誰かがいつも操作をしなければなりません。

しかし、プログラミングされたロボットカーであれば何度も同じ動作を自動で行ってくれます。

 

自動で動くのは、人の代わりにセンサーが目や触覚となりプログラムが判断しているからです。

 

自動で動くプログラムを考えて記述していくことをプログラミングというよ。

ロボットプログラミングで論理的思考を身に付けるメリットとは?

 

    • 実物が動くので直感的でエラーがわかりやすい
    • →原因と結果が結びつきやすいため論理的思考を鍛えることができます。

 

    • 問題解決力が身に付く
    • →エラーの原因がわからなければ、仮説を立てて検証していく過程で問題解決能力も身にけることができます。

 

    • ものを動かす仕組みを学ぶことができる
    • →仕組みを学ぶ上で、物理や数学などの論理的な思考が必要な教科にも自然と興味が持てるようになります。

プログラミングはエラーを経験し、解決していくことが一番の成長につながります。

 

実物が動くので、わかりやすいのが一番のオススメするポイントだよ

たとえば、サイコロをパソコンの画面を通して見るより、実物を触りながら立方体を理解するほうが段違いに理解しやすくなるよ

動きがイメージしやすくなればエラーも解決しやすくなるってことね

4つの論理的思考能力を個別に高める方法

物事を効率よく行っていく力を高めるためには

物事のゴールを明確にしておくということです。

なんのために準備をしているのかを意識します。

 

物事をはじめる前に具体的な手順をイメージすることです。

そうすることで論理的に物事を考える習慣が身に付いていきます。

 

そのためには、メモを取り、うっかりして忘れるミスを防ぐことも必要です。

 

物事は整理されていないと本来のゴールを見失うことがあります。

そのためにもカンタンなことから片づけて頭の中をスッキリさせておくことが大事です。

 

 

必要な情報を得る力を高めるには

情報収集の習慣化をしておくことです。

気をつけなくてはならないのは、情報収集を目的としてはいけません。

 

目的は収集した情報を活用するために行うことです。

そのためにも

    • 論文
    • インターネット
    • 専門家の講義

 

などで得られた信頼できる情報源を活用することです。

同じような情報収集をしていると、情報に対する信頼性の判断も高くなります。

 

情報に対する自分なりの意見を持つことにより、情報を活用できるまでの能力も高まります。自分の知識とあらたな情報によりいつでも活用できるようにしておくことが重要です。

 

 

問題を解決する力を高めるには

「なぜ?」と問いかけてみることです。

回答が出せない場合は、問題解決できる人の考え方を学ぶことです。

本から学ぶ、人から直接学ぶことでもよいです。

 

問題になっている原因を可視化してみる

たとえば、紙に書いて可視化することで頭の中が整理されます。

 

思い込みで思考が停止するのではなく思考をこらすクセをつけること

問題の本質を見極める能力が養われます。

 

 

考えを言語化する力を高めるには

事象をよく観察することです。

そして複数の事象の共通点を見つけ出します。

 

伝える相手を理解して、相手にわかりやすく表現する

自分の考えていることを言葉にして頭の外に出してみる

 

これをシンプルにすると、

インプット → プロセス → アウトプット
事象認識、相手を理解 → 頭で考えて → 言葉にする

これはまさしく、プロセスで行っていることは論理的思考そのものであるとも言えます。

 

 

まとめ

プログラミングで論理的思考能力を伸ばすためには次のポイントを意識するとよいでしょう。

 

    • プログラムは、わかりやすく順序立てて効率よく処理が行えるように組む

 

    • プログラミングに必要な論理的思考能力は4つあり個々に高めることができる

 

    • 効率よく論理的思考を身に付けるためにはロボットプログラミングがオススメ
おすすめの記事