2021年5月12日
|2021年5月14日
学校でプログラミング教育が必修化されてから「プログラミング的思考を育てましょう」という言葉をよく耳にするようになりましたが、「プログラミング的思考って何?」という方も少なくないのではないでしょうか?この記事では、図を用いて、プログラミング的思考とはどういった考え方なのか徹底解説していきます。
この記事の目次
まずは、文部科学省の定めている「プログラミング的思考」の定義を見ていきましょう。
自分が意図する一連の活動を実現するために、どのような動きの組合せが必要であり、一つ一つの動きに対応した記号を、どのように組み合わせたらいいのか、記号の組合せをどのように改善していけば、より意図した活動に近づくのか、といったことを論理的に考えていく力
引用元:小学校段階におけるプログラミング教育の在り方について(議論の取りまとめ)–文部科学省
難しく定義されているように見えますが、要約すると「必要な動きや組み合わせを考えて、問題解決のために効率的かつ論理的に考える力」といえます。
このことをコンピュータを動作させることに即して考ると、
というようになります。
上の一連の流れを図で表すと次のようになります。
良く誤解されがちですが、プログラミング的思考は、プログラミング能力(コーディング能力)が求られているのではありません。あくまでも問題解決的な考え方であって、生活や仕事のあらゆる場面で活用できる力とも言われています。
もう少し具体的にプログラミング的思考を理解していきましょう。
例えば、自動販売機で飲み物を買う行動を一つ一つ行動の組み合わせとして考えると、次のようなフローチャートで表すことができます。
ただ単に飲み物を買うだけでも、「120円ちょうどあるかな?なかったらお札使おう」など無意識に状況を考えながら行動を起こしているかと思います。今回紹介したのは簡単な例ですが、このように、やることの要素を分解したりまとめたりして、組み合わせを考えるのが「プログラミング的思考」です。
ビジネスなどの場面では、この思考のフローチャートがもっと複雑になってくることでしょう。これからは「必要な動きや組み合わせを考えて、問題解決のために効率的かつ論理的に考える力」が求められてくるのです。
似たような論理的思考(ロジカルシンキング)という言葉も聞いたことないでしょうか?2つの言葉は同じ意味なのでは、と感じた人もいるかもしれませんが違いを解説していきますね。
論理的思考は、次のように定義されています。
論理に基づいて思考する能力(の高さ)という意味で用いられる表現。道理や筋道に則って思考を巡らせて結論を導いたり、あるいは、複雑な事柄を分かりやすく説明したりできる能力として主に捉えられる。
引用元:論理的思考力–Weblio
要するに「因果関係を整理し順序立てて表現・判断していく思考」を意味します。プログラミング的思考ととてもよく似ていますが、簡単に図にすると次のようなイメージです。
プログラミング的思考は、論理的思考の中でも効率的で最適な手順を考えることを指しており、論理的思考にプログラミング的思考が含まれているのです。
プログラミング的思考とはなにか理解できたでしょうか?
では、なぜ学校でプログラミング教育を必修化させてまで「プログラミング的思考」が求められているのでしょうか?
プログラミング的思考が求められるようになった背景を順に見ていきましょう。
近年のICT(情報通信技術)の発達はめざましく、わたしたちの生活も数十年の間で大きく進化しました。スマートフォンやお掃除ロボットなど、数年前までなかったものが今では違和感なく生活に取り入れられているという例は多くあります。この進化は今後も加速し、コンピュータやこれに関連する技術は、生活でも仕事でも益々欠かせないものになっていくでしょう。つまり、今後生きていくうえでは、新しい技術を使いこなす普遍的なスキルが求められるようになると言えます。
文部科学省は、プログラミング教育必修化の意義を以下のように述べています。
あらゆる活動でコンピュータ等を活用することが求められるこれからの社会では、コンピュータを理解し、上手に活用していく力を身に付けることは、これからの社会ではどのような職業に就くとしても極めて重要
エンジニアにならない人なら必要ないスキルと思われがちですが、それは数学者にならなくても数学を学ぶように、プログラミング的思考はこれからの社会を生き抜くための基礎的な教養となっていきます。本格的に使わないから必要ないというスキルではなくなっているのです。
プログラミング的思考を身につけると聞いて、本格的なコーディングなどコンピュータを使ったプログラミングを想像した人も少なくないと思います。しかし、小学校でのプログラミング教育で身につけたいのは「プログラミング的思考」であって「プログラミング(コーディング)力」ではありません。小学校の段階では、プログラミング的思考を他の教科の中にも取り入れ、子どもたち自ら思考をコントロールする力が養われるのを目指しています。
プログラミング教育必修化の背景のひとつとして、IT人材が圧倒的に不足していることが挙げられます。
2019年3月の「IT人材需給に関する調査」によると、日本のIT人材は2018年時点ですでに約22万人不足しており、2030年には79万人も不足すると予測されています。
(参考:『IT人材需給に関する調査 2019年3月|みずほ情報総研株式会社』)
また、スイスの有力ビジネススクールが毎年発表している「2020年世界デジタル競争力ランキング」において、日本は64ヵ国中27位(前年23位)という結果となっています。この調査は、経済的・社会的変革に向け、各国政府や企業のデジタル技術の利活用能力を示したもので
① 知 識:新技術を発見し学習できる能力
② 技 術:デジタル技術の発展
③ 将来への備え:デジタルトランスフォーメーションに対する準備
の3部門9項目52細部指標を測定し評価が行われています。
出典:『日本のデジタル競争力は低位にとどまっている|TDB景気動向調査』
日本は、最大の強みでもあるロボットなどの科学・技術基盤があるにも関わらず、それを活かすデジタル人材や取り入れる企業が少なく、すでに能力を持っている人材さえもうまく活用しきれていないと評価されています。技術を活かす人材や場が少ないことがデジタル競争力の足かせになっていると考えられ、世界的なデータから見ても日本のIT人材は著しく不足していることがわかります。
小学校でのプログラミング教育必修化が話題になっていることで、プログラミング的思考は子どもが学ぶべきものという印象が強くなっているのではないでしょうか。しかし、プログミング的思考が求められるのは小学生だけではありません。
仕事でもプログラミング的思考は重要です。「伝えたつもりが、意図した通りに伝わっていなかった」という現象は、相手にも理解してもらえるような伝え方をしていなかったために起こります。コンピュータを相手にするとき正しく動作するように順序立てて話すのと同じように、「相手に理解してもらえるよう言語化する」というプロセスが必要です。今後、ビジネスに携わるうえではプログラミング的思考は備えておくべき教養と位置付けられるような時代になっていくことでしょう。
プログラミング的思考はプログラムを構築する際にベースとなる “考え方” であるので、プログラムを書くことに限らず、さまざまな場面において応用可能なのです。
プログラミング的思考とは、プログラミング能力(コーディング能力)が求られているのではありません。日常生活にも仕事にも応用できる問題解決的な考え方であって、生活や仕事のあらゆる場面で活用できる力です。
これから社会に出る子どもたちだけでなく、現在その大きな変化の渦中にいるわたしたち大人も、身につけていくべき基礎的な教養といえるでしょう。
最新記事
プログラミング学習に暗記は不要!未経験から効率的に学習する方法
2024年4月18日
この記事の目次1 【結論】プログラミング学習に暗記は必要ない1.1 【理由1】すべて暗記するのは不可能なため1.2 【理由2】カンニングしてもいいため1.3 【
プログラミングに必要なパソコンのスペックとは?初心者向けの選び方
2024年4月18日
プログラミングには、最低限のスペックを備えたパソコンが必須です。とはいえ、初心者の人は「プログラミングに必要なパソコンのスペック」を把握していないでしょう。今回
インフラエンジニアのやりがい5選!向いている人や一日の仕事の流れも解説
2023年10月20日
ITエンジニアのなかでもインフラエンジニアに興味を持っており、「どのようなやりがいがあるのだろう?」と気になっている人もいるのではないでしょうか。 type転職