文科省も注目のプログラミング的思考とは?考え方の手順をご紹介!

文科省も注目のプログラミング的思考とは?考え方の手順をご紹介!

文部科学省が公表した有識者会議「議論の取りまとめ」において、プログラミング的思考という言葉が登場しました。プログラミングの授業が始まることはご存知かと思いますが、プログラミング的思考という言葉は初めて耳にしたのではないでしょうか? 今回はプログラミング的思考の定義や、内容について解説します。

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

プログラミング的思考の定義

プログラミングと聞くと、パソコンでプログラミング言語を記述するコーディングをイメージするかもしれません。しかし、コーディングスキルとプログラミング的思考は異なる能力です。一般的にプログラミング的思考は、目的達成のための一連のプロセスを、論理的に設計・選択するために必要な力と言われています。プログラミング的思考はあくまで思考力のことであり、コーディングスキルとは関係ありません。

プログラミング的思考≒計算論的思考

計算論的思考(CT:Computational Thinking)という概念があります。計算論的思考は、目的を達成するために障害となっている問題の分解から、それぞれの問題をもっとも効率よく解決するための手順を考えるための能力です。プログラミング的思考は問題解決のための一連の思考のことを指すため、論理的思考よりはこの計算論的思考の方が近いと言われています。

プログラミング的思考の手順

プログラミング的思考は問題解決のためのプロセスを決めるのに必要な考え方です。具体的にどのような手順を踏んで考えればいいのでしょうか?

問題の分解

まずは目的を達成するのに障害となっている問題を分解します。複数の問題が絡み合ったままだと、最適な解決策を選択することは難しいです。プログラミング的思考では、まず問題を分解して考えやすくすることからはじめます。

パターン化

続いて、問題のパターン化を行います。分解した問題に関係性や類似性がないかよく調べ、パターンを洗い出します。より多くのパターンを見つけることで、問題解決の糸口を見つけやすくします。

抽象化

洗い出したパターンを抽象化して考えます。複数の問題に共通するパターンの因果関係について考えたり、一見別々の問題だと思っていたものが同じ問題に起因するものではないか考えたりします。ここでいかに情報を落とすことなく簡単な問題へ抽象化できるかによって、問題解決に必要なコストが変わってきます。

手順化

最後に、抽象化した問題を解決するための方法、順番などについて考えます。料理のレシピや作業マニュアルのように誰でも実行できる状態まで手順化してあると、非常に再現性の高い解決方法だと言えます。はじめは一部属人的な部分があっても構いませんが、最終的には属人的な部分がすべてなくなることが望ましいでしょう。

まとめ

プログラミング的思考は目的達成のための一連のプロセスを設計・選択するために必要な力です。プログラミング的思考はコーディングだけで使われるものではなく、日常生活で発生するさまざまな問題解決に役立ちます。同時に論理的思考力も鍛えられるので、小さいうちからプログラミング教育を受けることはやはり有意義だと言えそうです。

この記事をかいた人

cocoiro編集部

cocoiro編集部