2020年度から、必修化された小学校でプログラミング教育。

文部科学省によると、小学校でのプログラミング教育は、プログラミング言語を覚えたり、プログラミングの技能を習得すること自体を狙いとしている訳ではなく、「プログラミング的思考」を育み、より良い社会を築くことを狙いとしていると明記しています。

今回は、プログラミング教育において重視されている、プログラミング的思考とは何か、そしてその身につけ方についてお伝えします。

プログラミング的思考とは何か
「プログラミング的思考」を一言でお伝えすると、コンピューターやプログラミングの概念にもとづいた問題解決型の思考です。

文部科学省は、プログラミング的思考を

「自分が意図する一連の活動を実現するために、どのような動きの組み合わせが必要であり、一つ一つの動きに対応した記号を、どのように組み合わせたらいいのか、記号の組み合わせをどのように改善していけば、より意図した活動に近づくのか、といったことを論理的に考えていく力」

と述べています。

これがどのように学校で教えられるのか、文部科学省というと、例えば、正方形を描くためのプログラムを考えます。

(80)歩前に進む、(90)度回転する、を4回書いてつくることもできますが、(4)回繰り返す、というコマンドにするともっと簡単に描けることを学びます。

このように、自分の意図する一連の活動を実現するために、必要な動きを分解して考え、どのように組み合わせるとより効率的に意図した活動が実現できるのか、を論理的に考えていく力がプログラミング的思考です。

この考え方は、社会に出て、なにかプロジェクトを行う際、その目的に必要なタスクを分解し、どのような順序でスケジュールを組み立てていけばより効率的でスムーズにプロジェクトが完結されるのか、を考えるなど、様々な場面で活用することができ、将来どんな職業に就くとしても、普遍的に求められる力です。

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

論理的思考は、目的を達成するために物事の筋道を考えて段階的に判断していく思考です。
論理的思考とプログラミング的思考を、同じだと思っている人は多いですが厳密には違うものです。さらに言うと論理的思考は、その順序が「効率的」であるとは限りません。

プログラミング的思考は、論理的思考を活用したうえで効率的で最適な手順を考えることです。

つまり、論理的思考の中に、プログラミング的思考が内包されているのです。

プログラミング的思考はなぜ必要なのか
物事には全て「目的」と、目的にたどり着くまでの「過程」が存在します。そのことに意識して行動できるかどうかは、社会を生き抜くうえで非常に大切なポイントとなります。

例えば、料理のレシピなどを思い浮かべても、プログラミング的思考が使われています。アサリの味噌汁を作るときのレシピを思い浮かべて見ましょう。

ボウルなどに水300mlと塩小さじ2を入れ、あさりを入れ暗いところに置き砂抜きする。その後殻をこすり合わせてよく洗う
鍋に水、昆布を入れ30分ほどおく
鍋にあさりを入れ、弱めの中火で煮立て、沸騰したら昆布を取り出し、アクを取る
弱火で3分ほど煮てあさりの口が開いたら、味噌を溶いて火を止める
お椀に入れて青ねぎを散らす
できあがり (引用元:クックパッド)

アサリの味噌汁は、必要となる材料を準備して調理するだけでは美味しいものは完成しません。美味しいアサリの味噌汁にするためには最適な手順があり、その手順に従って作らなければ美味しいものは作れません。なぜなら、アサリを砂抜きしなかったらみそ汁の中に砂が入ります。暗いところに置かなければ砂抜きできません。沸騰前に昆布を取らなければ旨味以外の成分が出て味を落とす沸騰しているときに味噌を入れると風味が飛ぶなど、最適な手順には様々な理由があります。
このように私たちは、何気なくプログラミング的思考を使っているのです。

これまでの学校教育では、暗記力や持久力などが求められる一方、論理的思考や効率を考えるといった教育はあまりなされてきませんでした。子どものうちからプログラミング的思考を身につけることで、「目的」と「過程」を明確にする力が身に付き、様々な物事を合理的に考えられるようになります。成績を上げる為には、ただ勉強するのではなく、筋道を考え効率的に勉強することが大事だと気付けるようになるのです。
つまりプログラミング的思考とは、自分自身を成功へと導くための重要な「思考」であり、社会を生きていくうえで欠かせない「武器」でもあるのです。