- プログラミング的思考とはなんなの?
- プログラミング的思考には、どんなメリットがあるの?
- どうやったらプログラミング的思考ができるようになるの?
2020年から小学校でのプログラミング教育が必修化となり、中でも大きなねらいとして「プログラミング的思考を育むこと」が文部科学省の資料で書かれています。しかし初めて聞く言葉なので、上記のような様々な疑問がわいてきますよね。
プログラミング的思考が身につくと論理的にものごとを考えられるようになります。その他にも多くのメリットがあり、これからの子どもたちの勉強や受験に役立つほか、社会人にも必要不可欠な思考法になるはずです。
本記事では「プログラミング的思考」と「論理的思考」の違いや、身につける方法やメリットなどを解説します。
名前だけ聞くと難しそうですが、簡単に言うと「コンピュータにプログラミングをするような思考法のこと」!堅苦しく考えなくてOKです。
「プログラミング的思考」とは?「論理的思考」との違い
「プログラミング的思考」と「論理的思考」。ほぼ同じような思考法であると言えますが、実は概念が少し違います。
論理的思考法
論理的思考(ロジカルシンキング)とは、ものごとを整理し筋道だてて考える論理的な思考法のことをさします。論理的思考法が身につくことで、以下のような手順で思考ができるようになります。
- ゴールまでの道のりを逆算して考えることができるようになり
- 目的達成のための必要な手順・工程を導けるようになる
- 実行時に問題が発生しても、冷静に解決の手段を考えることができ
- 落ち着いて対処できるようになる
そしてこの土台の上に「プログラミング的思考」があります。
プログラミング的思考
続いてプログラミング的思考について解説します
「プログラミング的思考」とは、「自分が意図する一連の活動を実現するために、どのような動きの組合せが必要であり、一つ一つの動きに対応した記号を、どのように組合せたらいいのか、記号の組合せをどのように改善していけば、より意図した活動に近づくのか、といったことを論理的に考えていく力」
小学校プログラミング教育の手引(第三版)より
なにやらちょっと難しいですが、プログラミング的思考には論理的に考えることが必須であることがわかりますね。
読み解くと「物事を整理し、筋道だてて考える論理的な思考法に加え、更に思い通りに動かすために最適な改善策を考える思考法」と言えます。
プログラミング教育でプログラミング的思考が身につく理由
ここからは「プログラミング教育で、なぜプログラミング的思考が身につくのか?」を解説します。
プログラミングには明確な指示が必要なことがわかるから
コンピュータにプログラミングをするときは、あいまいな内容や間違えた内容で指示をすると動きません。
プログラミング授業の例で挙げられる正三角形を書くことを考えてみましょう。コンピューターにプログラミングするときには「3辺が同じ長さ」「内角は60°」と指示しなければいけません。
コンピューターにあいまいな指示は通じません。また間違えた指示を意図した通りに自動で直してくれるということもありません。
「正三角形をプログラミングで書きたい」と思ったら「3辺が同じ長さ」「内角は60°」と明確に・正確に指示する必要があるのです。
コンピュータにプログラミングをするときには、コンピュータが理解できるように明確に内容と順序を指示しなければなりません。
プログラミングの授業を通して「あいまいな指示は通じないこと」「間違えたらコンピューターは意図したとおりに動かないこと」を理解していきます。そしてコンピュータにプログラミングをするための思考がわかるようになるのです。
その結果プログラミング的思考を育むことにつながります。
「そもそもプログラミングってなに?」という人は別の記事で解説しているので、参考にしてください。
▷プログラミング教育の「プログラミング」とはなに?親目線で解説します
予測・考察・改善を重ねるから
プログラミングは意図した結果にするために手順を考える他、意図した結果にならなかった場合は改善を考えることが必要です。
プログラミングで正三角形を描くことを再度例として考えてみます。
どうしたら正三角形が描けるのか予測します。
「3辺が同じ長さ」「内角は60°」という定義通り書いたら正三角形が書けそう。
プログラミングを書いて実行してみます。
「100歩動かす」と「60度回す」を3回繰り返して書いてみよう。
意図した通り正三角形が書けたらOK!意図していない結果になった場合は「どうしたら意図した結果が出せるのか」を論理的に考察します。
猫は前にまっすぐ動くから「60度回す」は間違いなのか。猫の視点で考えたら「120度回す」と良さそう。
上手に書けた!
上記のようにプログラミングするときには予測や実践、結果の考察や改善が必要です。意図した通りに動かなかった場合「なんとなく」や「あてずっぽう」で適当に直しても、正三角形の図形にはなりませんよね。
- どうしたら意図した通りの結果になるのか?
- プログラミングのどこが間違っているのか?
- 間違っていた箇所をどのように改善するべきか?
プログラミング学習では上記のプロセスを繰り返し考えます。そうするうちにプログラミング的思考を身につけることができるのです。
プログラミング的思考のメリット5つ
プログラミング的思考のメリットを5つ紹介します。
- やりたいことが実現させやすくなる
- わかりやすい説明ができる
- 臨機応変に対応できる
- 問題解決できる力が身につく
- 正しい情報を選べる
やりたいことを実現させやすくなる
やりたいことの実現には、プログラミング的思考が欠かせません。
「小学校プログラミング教育の手引(第三版)」では、コンピュータを動作させるための手順例を書いています。
- コンピュータにどのような動きをさせたいのかという自らの意図を明確にする
- コンピュータにどのような動きをどのような順序でさせればよいのかを考える
- 一つ一つの動きを対応する命令(記号)置き換える
- これらの命令(記号)をどのように組み合わせれば自分が考える動作を実現できるかを考える
- その命令(記号)の組合せをどのように改善すれば自分が考える動作により近づいていくのかということも試行錯誤しながら考える
まとめると以下のように考えられます。
- やりたいことを実現させるための手順・内容を考えられるようになり
- 更に最適な改善を加えることで、ものごとを効率的に進められるようになる
やりたいことを実現させるには、必要な手順や内容を細かく考えて改善を加えていくことが必須です。
例えばテストで「100点とりたい」と考えたら、テストの日から逆算してスケジュールを決める必要がありますよね。
「◯日までに問題集のここまで終わらせよう」という感じです!
思ったような点数がとれなければ、勉強方法を変えたり、塾に通ってみたり…最適な方法を考えるはずです。
テストを例にしましたが、プログラミング的思考はどんな目標ややりたいことにも有効です。目標があっても適当な取り組みや、改善方法を考えなければ実現することはできません。
そのためプログラミング的思考を身に着けて、目標に向かうための手順を考えたり、必要時には改善を加えたりすることが非常に重要なのです。
目標に向かう手順や内容、改善方法を加えられるようになるとモチベーションも保ちやすくなります。
わかりやすい説明ができる
プログラミング的思考と論理的思考は似ています。プログラミング的思考が身につくと、論理的でわかりやすい説明ができるようになります。
相手に論理的でわかりやすい説明ができると、以下のようなメリットがあります。
- 相手に自分の考えを理解してもらうことができる
- 説得力のある説明ができる
自分の考えを正しく理解してもらうことや説得力のある説明ができると、1つ目のメリットの「やりたいことの実現」にも近づきます。
自分の考えを相手に伝えることはコミュニケーションで欠かせません。会話でもメールなどの文章でも、論理的でわかりやすい説明ができれば相手に正しく理解してもらえます。
特に仕事をする上で「相手に間違いなく伝えられる」「説得力のある説明ができる」というのは役立つスキルです。プレゼンなどでも活用できますし、筋の通った内容を説明できるので信頼もされやすくなります。
大人もぜひ身につけておきたいですね!
臨機応変に対応できる
プログラミング的思考が身につくと、ものごとに臨機応変に対応できるようになります。
コンピュータが意図した通りに動かなかったときには、人間側で正しいプログラムを考える必要があります。少しでもコードが間違っていたり、論理的に正しくなかったりした場合は意図した通りに動きません。
コンピュータは人間の考えを理解して、自動でプログラムを直すことはできません。
意図した通りに動かすためには「なにが問題なのか?」「どうしたらうまくいくのか?」を試行錯誤して正解を見つけ出す必要があるのです。正解を見つけ出すには、結果を予測して試行錯誤を繰り返すことが必要です。
手順や内容を考えたり、うまくいかなかったときに結果を予測して試行錯誤を繰り返したりするうちにプログラミング的思考が身につきます。
上記の過程を繰り返すことで、予想外のことが起こった場合にも様々なパターンを考えることができて、臨機応変に対応できるようになるのです。また論理的にも考えられるようになるので、予測の精度も高まっていくでしょう。
「A=B、B=C。だからA=C」というように論理的に考えられます。
プログラミング的思考を身につければ予定外のことが起こった場合でも、焦らずに状況に合わせて様々な方法を考えられるようになります。
また臨機応変に対応できる力は、子どもの粘り強さにも繋がります。「この方法がだめでも、こっちの方法を試してみよう!」など、臨機応変に対応できれば様々なことにチャレンジできるようになります。
たくさんの可能性を考えられるので、諦めずにいろいろなことにチャレンジできるようになります!
問題解決できる力が身につく
コンピュータは、なんでも解決してくれる「魔法の箱」ではありません。しかしプログラミングによって困っていたことの「問題解決の手段」とできます。
コンピュータは命令がないと動けません。問題解決の手段をプログラミングする側が考えて、コンピュータに教える必要があるのです。
プログラミングで問題を解決するためには、まずは「なにが問題なのか?」を認識・発見する必要があります。その上で様々な問題の解決方法を検討します。
例えば「お米を炊く炊飯器」を例にして考えてみましょう。
鍋でお米を炊くのは大変ですよね。ずっと鍋を見続けて、火加減などに気をつけなければいけません。
しかしコンピュータに「お米をおいしく炊くための方法」をプログラムした炊飯器の登場によって、私たちはスイッチを1回押すだけでご飯を炊けるようになりました。
炊飯器も「お米を炊くのは大変」という問題を解決するためのものです。問題を解決するには、まずは問題を認識することが重要なのです。
炊飯器を例に考えましたが、日常生活で解決できる問題はたくさんあります。
2018年のNHKの「Why!?プログラミングフェス」で最優秀賞をとったのは「編み物支援ツール」でした。「身近な問題を解決しよう」というお題で「お母さんが編み物を失敗してしまう」という問題を解決するためにプログラムを作ったのだそう。
なんと説明書もスクラッチで作っています!
上記のように、プログラミングは身近な問題を解決するのに非常に役立ちます。普段の生活でも「なにか解決できる問題がないかな?」と目を向けることで、様々な問題を解決できるようになるのです。
正しい情報を選べる
プログラミング的思考は、ものごとを筋道立てて論理的に考える思考法です。論理的に考えられるようになると、自然に本質を捉えることも得意になります。
自身で仮説を立てられるので「これだと論理的に整合性がとれない」と気付けるようになるので、正しい情報を得られやすくなります。
特にインターネットの世界は玉石混交です。正しい情報も嘘の情報も、どちらもあります。
誤っている情報を見抜けないと、騙されたり損をしたりすることにも繋がります。
間違えた情報でプレゼンをしたり、資料を作ったりしてしまうと、信用を落とすことにもなりかねません…。
正しい情報を見分ける力は、様々な情報が混在している現在のインターネット社会で必須のスキルといえるでしょう。
プログラミング的思考を身につける方法
たくさんのメリットがあるプログラミング的思考ですが、パソコンを使わなくても”アンプラグドプログラミング”で育てることも可能です。
▷アンプラグドプログラミングとは?具体例とメリット・デメリット
もちろん実際にプログラミングで体感したほうが、より理解しやすいと言われているので、できればパソコンを使ってプログラミング的思考を学ぶことをおすすめします。
家庭でもできるプログラミング教育については、無料ツールを別ページで紹介しています。
▷家庭でもプログラミング教育は必要?無料で楽しく学べるツールをご紹介!
プログラミング的思考はパソコンなしでも育つ
プログラミング的思考は「アンプラグドプログラミング」やゲーム「Minecraft(マイクラ)」でも育てることができます。
- アンプラグドプログラミング:パソコンを使わないプログラミング。ツールを利用して、目標を達成するためにどのような手順をするべきかを考える。
例:絵本やカード・ボードゲーム
- Minecraft(マイクラ)などのゲーム:完成形をイメージして一つ一つのブロックを積み上げて作り上げていくゲーム。
完成形をイメージして作り上げていくことは、プログラミング的思考に必須の考え方です。特に上記のアンプラグドプログラミングのツールやマイクラは遊びながら考えることができて身につけられます。
ただしあくまでも入門編です。プログラミングはPCのほうが早くたくさんのパターンを試せるので、大きくなったらPCを使用しましょう。
パソコンや習い事で効率よく身につけられる
プログラミング的思考は、アンプラグドプログラミングでも育てられますが、やはりパソコンで体験していくことが効果的と言われています。
全世界で子どものうちからのプログラミング教育が注目されているため、子どもが楽しみつつ無料で学べる教材はたくさんあります。
- Scratch(スクラッチ):直感的に動かせるビジュアルプログラミング。キャラクターを動かしてオリジナルのゲームや動画を作れる
- Hour of Code(アワーオブコード):子どもたちに馴染みの深い「Minecraft」や「アナ雪」のキャラクターで、ゲームのように楽しく学べる
他にも無料の教材はたくさんあります。
「プログラミングが子どもに向いているか試したい」という方は、ぜひ活用しましょう。
また、他にも現在プログラミングを学べる教室はたくさんありますし、インターネットとパソコンさえあればオンラインでも学ぶこともできます。
特にオンラインプログラミングスクールは自宅で学べるので、時間が節約できるなどの様々なメリットがあります。
「気になるけど、なにからはじめたら良いのかわからない…」という場合でも、プログラミングスクールであればカリキュラムが準備されているので安心です。
おすすめのオンラインプログラミングスクールは、以下の記事で解説しています。
▷小学生おすすめオンラインプログラミングスクール【タイプ別まとめ】
▷半年受講者が徹底レビュー!テックキッズオンラインコーチング
プログラミング的思考は必須スキル
プログラミング的思考が身につくと、たくさんのメリットがあります。
- やりたいことを実現させるための手順・内容を考えられるようになる
- わかりやすい説明ができるようになる
- ものごとに臨機応変に行動できるようになる
- 正しい情報かどうか、判断できるようになる
- 問題が解決できるようになる
今回ご紹介したのは、上の5つですがその他にも、プログラミング的思考が役立てられる場面はたくさんあります。
特に社会人になったときに、上記のメリットはどれも役立つものばかりです。
子どもと楽しみつつ、プログラミング的思考を学んでみましょう!