プログラミング的思考とは メリットや論理的思考との違いを解説
プログラミング的思考とは、自身の目的達成のために必要な取り組みや順序、改善方法などを論理的に考えていく力のことです。
プログラミング的思考は「分解」「順序立て」「分析」「抽象化」「一般化」の要素から成り立ち、これらを身につけることによって問題解決力の向上や柔軟性・適応力の向上といったメリットが得られます。
今回は、プログラミング的思考の定義や論理的思考との違い、なぜプログラミング的思考が必要とされているのかなどについて解説していきます。
プログラミング的思考とは
文部科学省の資料によれば、プログラミング的思考とは「自分が意図する一連の活動を実現するために、どのような動きの組合せが必要であり、一つ一つの動きに対応した記号を、どのように組み合わせたらいいのか、記号の組合せをどのように改善していけば、より意図した活動に近づくのか、といったことを論理的に考えていく力」と定義されています。
参考:文部科学省「小学校段階におけるプログラミング教育の在り方について」
よく「プログラミング的思考はコーディングを学ぶこと」と捉えている人がいますが、それは少々誤解を含みます。プログラミング的思考はプログラミングを行うための考え方ではなく、その目的は論理的な考え方や問題解決力を養うことにあるのです。
プログラミング的思考がなぜ必要とされるのか
プログラミング的思考がなぜ必要とされるかは、上述の文部科学省の資料で、以下のようにまとめられています。
「自動販売機やロボット掃除機など、身近な生活の中でもコンピュータとプログラミングの働きの恩恵を受けており、これらの便利な機械が『魔法の箱』ではなく、プログラミングを通じて人間の意図した処理を行わせることができるものであることを理解できるようにすることは、時代の要請として受け止めていく必要がある」
loT製品やAIサービスの普及によって、私たちの周りにはプログラムによって成り立つものが続々と増えています。一方で、これらの製品やサービスがどのような仕組みで機能しているかを理解している人は、決して多くはありません。いわばブラックボックスの状態で、その恩恵だけを享受しているわけです。
今後、さらなる技術革新によって多くの仕事が自動化されれば、現代人はますます結果だけを受け入れ、課程を理解できない状態に陥ります。そのとき大きな障害や事故が発生すれば、誰もその問題に対処できなくなってしまうのは明白でしょう。
つまり、プログラミング的思考はITエンジニアのような専門職を目指す人だけに求められるのではなく、これからを生きる現代人にとって必要不可欠な能力となっているわけです。
プログラミング的思考と論理的思考の違い
論理的思考とは、筋道に沿って考えを巡らせて、結論に至る思考法のことです。この意味からもわかるとおり、プログラミング的思考は論理的思考の一種といえます。
違いを挙げるとするならば、プログラミング的思考は物事の組み合わせや改善のプロセスに重きを置いています。いわば、論理的思考をより実践的に発展させた思考法といえるでしょう。
プログラミング的思考の基本要素
プログラミング的思考とは、具体的にどのような考え方なのでしょうか。ここではわかりやすく「料理」を例に挙げつつ、プログラミング的思考の基本となる5つの要素について解説します。
分解
「分解」は、大きな課題や出来事などを理解しやすい状態にまで細分化する取り組みです。
例えばカレーライスを作るために「分解」を行うのであれば、米やルー、野菜、肉といった材料を一つずつ把握していきます。これらの材料を理解することで、カレーライスという全体像がどのように構成されているかの理解につながるわけです。
順序立て
「順序立て」は、目的を達成するための最適な手順を検討する取り組みです。カレーライス作りで言えば、「お米を炊く」「野菜を洗う・切る」「具材を炒める」といった各行程を最適な順序で行うことが求められます。仮に「お米を炊く」という行程を最後に持ってきた場合、カレーは出来上がったのにお米が炊けていないという状況に陥ってしまいます。
同じ作業であっても順番を変えることで効率や結果に差が出るため、最適な「順序立て」を模索する力が求められるのです。
分析
「分析」は、目的達成のために実行したことを評価する取り組みです。カレーライス作りのなかで、新しく「具材の大きさが均等になるように切る」「水分量を減らす」などを試みたのであれば、それによってどのような変化が得られたのかを評価します。
作業の内容を分析・評価することで試行錯誤の質が高まり、目的達成の確率や再現性が高まっていくでしょう。
抽象化
「抽象化」は、物事の性質や共通点を把握することで本質を見極め、応用につなげる取り組みのことです。カレーライス作りの野菜を切ったり、具材を炒めたりする作業は、シチューや肉じゃがを作る際にも応用がききます。
こうした共通点を見出すことは物事の本質を見抜くことにつながり、未知の取り組みに挑戦する際も対応力が高まるので目的達成の確率が高まるでしょう。
一般化
「一般化」は、物事の要素や手順を整理し、誰にでも行えるように表す取り組みのことです。
カレーライス作りでいえば、レシピをまとめることが「一般化」の作業となります。材料や手順、分量などをレシピとしてまとめることにより、カレーライスの作り方を知らない人でも調理を行えるようになります。
プログラミング的思考によって得られるメリット
プログラミング的思考を学ぶことによって、具体的にどのようなメリットが得られるのか解説していきます。
問題解決力の向上
プログラミング的思考によって得られる最大のメリットは、問題解決力の向上でしょう。
VUCA時代とも呼ばれる現在、私たちの前に立ちはだかる課題は複雑化し、アプローチの段階から「どこから手をつければいいのか……」と戸惑ってしまうことも少なくありません。そこで役立つのが、プログラミング的思考における「分解」「順序立て」「評価」の取り組みです。
「分解」によって物事の全体像を一つずつ理解し、「順序立て」によって最適なアプローチを考え、「評価」によって取り組みを振り返る。この一連の習慣が身につけば、自ずと問題解決力が高まっていきます。
物事の優先順位がわかる
プログラミング的思考を学べば物事の優先順位がわかり、生産性の向上につながります。
仕事が遅いと言われる人や、効率の悪さに悩む人の多くは、全体像を見ないで目の前の課題から手をつけています。こういった人たちがプログラミング的思考を学べば、最適な手順について考える習慣が身につき、物事の優先順位についても理解が深まっていきます。これによって作業スピードが上がり、生産性の向上に直結するでしょう。
柔軟性・適応力が高まる
プログラミング的思考を学ぶことにより、柔軟性や適応力が高まります。とくに「抽象化」のプロセスである物事のパターンや共通点を見抜く力を養っていけば、未知の問題に遭遇した際にも過去の経験から共通点を見抜き、対応策を講じることができるでしょう。
説得力・交渉力の向上
プログラミング的思考を身につけることで、説得力・交渉力が向上します。これはとくに「一般化」に深く関わる部分です。
相手から納得感を引き出すためには、論理的に物事を整理して曖昧な部分を排し、わかりやすい表現で伝えることが大切です。これはまさに「一般化」のプロセスで磨かれる部分であり、人への指示出しやプレゼンテーション、商談など様々なシーンで活かされるでしょう。
プログラミング的思考を身につけたいなら「ビジネス数学研修」
2020年度から義務教育においても必修化された「プログラミング教育」ですが、ビジネスパーソンがプログラミング的思考を学ぶ場は思いのほか広まっていません。そこでおすすめしたいのが、弊社オルデナール・コンサルティングが提供する「ビジネス数学研修」です。
弊社の研修プログラムでは、ビジネスシーンで求められる「数字力」は以下の5つの要素で成り立つと捉えています。
・物事の状況や特徴を正しく理解するための「把握力」
・数字やデータの規則性や相関を見抜くための「分析力」
・選択肢のなかから最適なものを選ぶ「選択力」
・様々なデータをもとに将来をイメージする「予測力」
・情報を正確に、わかりやすく伝えるための「表現力」
これらを見ていただければわかるように、プログラミング的思考と数字力は非常に親和性の高い能力なのです。
実際の研修ではわかりやすい報告資料の作り方や説得力のある提案方法など、より具体的なビジネスシーンを想定して「実務に活きる演習」を繰り返し、数字力を高めていきます。 「社内の生産性を高めたい」「納得度の高い提案や報告を行える社員を増やしたい」といった課題にお悩みでしたら、ぜひ弊社の「ビジネス数学研修」をご検討ください。
お問い合わせはこちらから