• HOME
  • お知らせ
  • プログラミング的思考の必要性は?日常的に実践する方法は?

お知らせ

プログラミング的思考の必要性は?日常的に実践する方法は?

更新日:2022/02/25

プログラミング教育のねらいとして一番に挙げられるのが、プログラミング的思考の育成です。文部科学省の提言では、プログラミング的思考が「将来どのような職業に就くとしても、時代を超えて普遍的に求められる力」として重要視されています。


ではなぜプログラミング的思考がここまで求められているのでしょうか?この記事では3つの点から解説しています。後半で日常生活にプログラミング的思考を取り入れる方法も紹介しているので、ぜひ最後まで目を通してみてください。

プログラミング的思考はなぜ必要?

プログラミング的思考は、文部科学省で以下のように定義されています。

 

「自分が意図する一連の活動を実現するために、どのような動きの組合せが必要であり、一つ一つの動きに対応した記号を、どのように組み合わせたらいいのか、記号の組合せをどのように改善していけば、より意図した活動に近づくのか、といったことを論理的に考えていく力」
(文部科学省『小学校プログラミング教育の手引(第三版) p.9』より)


つまり、プログラミング的思考は「ゴールに到達するまでの動きを細かく分解し」「効率的に動くルートを考え」「試行錯誤しながら最適なルートを導き出す思考」のことです。

(詳しくは過去記事『プログラミング的思考とは?』へ)

 

2020年から開始されたプログラミング教育では、実際のプログラム言語を使ったコーディングではなく、プログラミング的思考を身につけることが重要であるとされています。なぜ今、学校教育でプログラミング的思考が求められているのでしょうか?

 

コンピュータの仕組みを理解して主体的に活用できるようにする


現代は第4次産業革命と言われ、IoT・ビッグデータの活用やAIの発展による技術革新が起きています。身近な例で言えば、冷蔵庫・エアコン・洗濯機などの家電にIoTやAI技術が組み込まれ、自動で情報を読み取って分析・実行する機能が追加されました。また、アレクサやSiriといった人工知能によるサービスを日常生活に取り入れている方も多いでしょう。

生活の中にこれだけITが普及して身近な存在になると、多くの子どもたちはモノの仕組みがわからなくても使いこなせます。文部科学省ではこれを仕組みの「ブラックボックス化」と言い、プログラミング教育を通して解決したい課題と考えています。ここで『小学校プログラミング教育の手引(第三版)』で挙げられている「プログラミングを通して気づいてほしいこと」を見てみましょう。

 

・コンピュータはプログラムで動いていること
・プログラムは人が作成していること
・コンピュータには得意なこととなかなかできないことがあること
・コンピュータが日常生活の様々な場面で使われており、生活を便利にしていること
・コンピュータに意図した処理を行わせるためには必要な手順があること
文部科学省『小学校プログラミング教育の手引(第三版) p.12より抜粋)

 

コンピュータは、仕組みがわかっていないと「何でもできる魔法の箱」のように思えますが、決してそんなことはありません。簡単に使えて便利なものでも、そこにたどり着くまでに膨大な数の試行錯誤と工夫が積み重ねられているのです。実際にプログラミングしてみると、その大変さを体感できます。実践を通してプログラミング的思考を身につけることで、コンピュータやコンピュータを含むモノの仕組みを理解し、より主体的に活用できるようになります。

 

予測困難な時代に新たな価値を創出する人材を育てる


政府が2016年に策定した「第5期科学技術基本計画」では、自動化やAI技術の活用をより進展させた「超スマート社会(Society5.0)」の実現が公表されています。また、アメリカ有名大学の教授らによる「今後10〜20年で今ある半数近くの仕事が自動化される」「多くの子どもが今はまだ存在していない仕事に就く」といった提言も有名です。これからの時代は10年先でもどうなっているか予測が困難な時代と言われています。

では、AIに自動化されない仕事、あるいは未来の新しい仕事に就くためにはどうしたらいいでしょうか。それは「自動化システム・新しい仕事を作る人材になる」ことです。今後AIやITによって代替できる業務はどんどん自動化されていきますが、自動化するシステムを作る人材は常に需要があります。また、今はない新しい仕事を創出するのも人間にしかできないことです。



こうした人材をより多く育成するため、学校でプログラミングに触れる機会を作り、プログラミング的思考を身につけることは重要とされています。プログラミング教育はIT人材の育成を主要な目的としていませんが、文部科学省ではプログラミング教育を通して若者の起業や特許取得につながることを期待しているようです。

 

プログラミング的思考で教科の学びを深める


プログラミング教育は「プログラミング」という教科で行われるのではなく、各教科でプログラミング的思考を活用する形で行われます。ここでは手引に挙げられていた「正三角形をかく」課題の例を見てみましょう。

 

正三角形をかくプログラムの例

 

プログラミングで正三角形をかくには、「辺の長さがすべて等しい」「内角の大きさがすべて等しい」といった正三角形の性質を正しく理解していなければなりません。その上で、コンピュータが理解できる内容に書き換えて指示を出す必要があります。図では(a)(b)のプログラミングが挙げられていますが、より辺の多い正五角形などをかきたくなった場合も想定すると、(b)の方が汎用性が高いプログラムになりますね。

 

このようにプログラミングを教科に活用すると、より深く確実な理解が期待できます。プログラミング的思考でゴールへたどり着くには、なんとなく内容を理解しているだけではうまくいきません。実際に手を動かしてプログラミングしてみることで、プログラミング的思考力のさらなる成長や教科の学びを深めることにつながります。

日常生活でプログラミング的思考を実践するアイデア3選

プログラミング的思考を身につけるコツは、日常的にプログラミング的思考を実践することです。プログラミング的思考は考え方の一つなので、題材を決めればあらゆるもので実践できますよ。ここでは家庭で簡単にできる「料理」「買い物」「ブラックボックス当てっこゲーム」を紹介します。

 

料理でプログラミング的思考


料理をプログラミング的思考で考えると、主にこのような作業に分けられます。

 

・メニューを決める
・食材と見栄えを考える
・調理の手順を整理する
・実際に作る


「メニュー」は、この場合「ゴール」に該当します。「メニュー」を作るために要素となる「食材」「見栄え」を考え、効率よく美味しく作るための「手順」を整理しましょう。一見いつもの料理手順と変わらなそうですが、これは立派なプログラミング的思考です。

作り方を考えるときには、プログラミングの「直列」「並列」「分岐」などの要素が使えます。「直列」は順番が決まっている作業、「並列」は同時にできる作業、「分岐」はどちらか選べる作業です。例えば、食材を切る→炒めるの作業は必ず直列、となります。カレーライス作りを考えると、カレー作りとご飯を炊く作業は並列にできますね。こうやって作り方をプログラミング的思考で考えながら、効率よく作れる手順を考えます。同じメニューで調理にかかった時間や美味しさをデータにまとめ、改善策を練って再チャレンジすればトライ&エラーの実践にもなりますよ。

 

買い物でプログラミング的思考


何件かの違うお店で買い物するときは、プログラミング的思考で効率よく回るルートが考えられます。ルートを考える手順例はこちらです。

 

・スタートとゴールを決める
・店(売り場)の場所を把握する
・先に買うべきもの、後に買うべきものを把握する
・最短距離・最短時間になるようルートを整理する
・実際に買い物をする


買い物の場合は「並列」が使えませんが、二手に分かれて買い物をする「呼び出し」が使えます。条件としては、重たいもの・冷凍もの・出来立てのものはなるべく後で買う、予約して30分後に取りに行くものなら最初に行って予約しておく、などがありますね。このような条件と店同士の距離などを考えて、最短距離になるルートを考えます。頭で考えるのが難しい場合は紙に書き出してみてもOKです。ゴールは最短距離・最短時間で行くことなので、先に作ったルートをもとに目標タイムを設定してみるのも面白そうです。

 

ブラックボックス当てっこゲーム


最後に紹介するのは、ITエンジニア・IT教育者の松林弘治さんが実践されている「ブラックボックス当てっこゲーム」です。これは仕組みがわからないもの=ブラックボックスを題材にして、その仕組みを想像・推測し、実際に確かめてみるというゲームです。このゲームでは「仕組みを想像して仮設を立てる」ことが大切で、仮説の検証を通して物事の理解を深めていきます。子どもたちが自由に立てた仮説に沿って調べ学習や実験を行えば、より興味深い学びにつながりますね。現在はオンライン上で工場見学などもできるので、家庭でも専門的な学びができそうです。

まとめ


プログラミング的思考は、意識するだけで日常のあらゆる場面に発見できます。コンピュータ・ITがより身近になる子どもたちにとって、プログラミング的思考を楽しく学び、身につけておくことはとても重要です。「プログラミング」と難しく考えず日常生活から少しずつ論理的思考を取り入れていくと、子どもの思考力育成につながります。

 

<参考文献>
・文部科学省『小学校プログラミング教育の手引(第三版)』
・文部科学省『小学校プログラミング教育の趣旨と計画的な準備の必要性について(1)』
・内閣府『Society5.0』
・浅井 登(2021)『体験してわかるプログラミング教育 うちの子の「考える力」が伸びるワケ』技術評論社
・未来の学びコンソーシアム『小学校を中心としたプログラミング教育ポータル』
・東洋経済オンライン(2021/07/16)『塾不要!家で「プログラミング的思考」鍛える術3つ / 松林弘治』

 

     

執筆者:キャリア教育ラボ編集部