「プログラミング的思考」と「プログラミング」の違いとは?わかりやすく解説!
※ 本コンテンツにはプロモーション(PR)が含まれています。また、詳しい最新情報については公式サイトをご確認ください。
しかし、使う教材が子ども向けである(実際の仕事で使われているツールではない)ことから、「仕事に使えないツールでプログラミングを学んで、意味があるの?」なんて疑問をもつ方も少なくありません。
実は、必修化のねらいは「プログラミング的思考を身につける」こと。
「プログラミング」の能力をつけることが目的ではないのです。
では、「プログラミング」と「プログラミング的思考」はどう違うのでしょうか?
ここでは、両者の違いとプログラミング的思考を学ぶメリットをわかりやすく解説します。
プログラミング的思考ってなんだろう?
プログラミング的思考とは一体なんなのでしょうか。文部科学省による「学習指導要領解説」ではつぎのように説明されています。
子供たちが将来どのような職業に就くとしても時代を越えて普遍的に求められる「プログラミング的思考」(自分が意図する一連の活動を実現するために、どのような動きの組合せが必要であり、一つ一つの動きに対応した記号を、どのように組み合わせたらいいのか、記号の組合せをどのように改善していけば、より意図した活動に近づくのか、といったことを論理的に考えていく力)を育むため、小学校においては、児童がプログラミングを体験しながら、コンピュータに意図した処理を行わせるために必要な論理的思考力を身に付けるための学習活動を計画的に実施することとしている。なんだか難しい説明ですね。
これを要約すると、プログラミング的思考とは「ある目的を達成するために順序立てて論理的に考え、結果を出していく力」のことです。
これをすれば、こうなる。Aの場合はこうする。Bの場合はこうする。
そんなふうに順序立てて考え、最適な結果を出すための考え方がプログラミング的思考なのです。
プログラミング的思考は、プログラムを書く(=コンピュータを使い、プログラミングをする)ときだけでなく、生活や仕事のあらゆる場面に必要な力といえるでしょう。
なぜ、いまプログラミング的思考が必要なの?
ではなぜ、プログラミング教育を必修化してまで「プログラミング的思考を養う」教育が求められるのでしょうか。デジタル社会になり「情報を使いこなすスキル」が問われるようになった
高度情報社会の進展はハイスピードで進んでいきます。身の回りを見渡してみると「数年前にはなかったのに、いまではみんなが使っている」なんてモノがたくさんありますね。
スマートフォン、タブレットコンピュータ……10年前には考えられなかったモノが身の回りにはあふれています。
また、人と人とのコミュニケーションにおいても、FacebookやInstagramなどのSNSを使って、いままでと異なるスタイルで人と関わる機会が増えています。
そんな時代に必要とされるのは、情報の洪水に流されず、必要なモノと必要でないモノを見極める力。
正しい判断力を持つために、これまでの学校で鍛えてきた「決まった問題をすばやく解く力」だけではなく、「知らない問題が出てきたときに論理的に考え、答えを出す力」、つまり「プログラミング的思考」を育てようとしているわけです。
第四次産業革命、AIの発展。「人間にしかできない」仕事が求められている
人工知能(AI)という言葉をよく耳にするようになりました。AIを活用することで、ビッグデータの解析、ロボットのさらなる進化、さまざまな技術の自動化が可能になります。これによる大規模な世の中の変化を「第4次産業革命」と呼びます。
幅広い分野で、人間だけにできる仕事とは何か?それは、過去にないものを生み出す力だと言われています。
AIは過去のデータを分析することは得意でも、飛躍的な発想を持ち、新しいアイデアを生み出す能力には限界があります。そのため、どんな機械にも真似できない創造性を発揮するには、問題を整理し成果を生み出すためのプログラミング的思考が不可欠です。
この考え方は、創造性を必要とする職業において特に重要です。例えば、アートやデザイン、マーケティングの分野では、独自のアイデアや視点が新たな価値を生むことがあります。プログラミング的思考を身につけることで、これらの分野での競争力を高めることができるでしょう。
変化の激しい時代には「問題解決能力」が不可欠
急速に社会が変化している現代では、「決まった問題を素早く解く力」以上に、「問題点がどこにあるかを明らかにし、解決の手順を示す力」が求められています。さらに、大きな問題を解決するにはチームでの取り組みが必要です。グループ内のメンバーや、世の中の人々に理解を求めるためには、「順序立てて物事を示す」プレゼンテーション能力も必要だと言えるでしょう。
「問題点は何か」「その問題点は、どのような原因で生まれてきたか」「問題点を構成する要素には、どのような関連性があるか」「解決策は、どのような手順で考えていけばいいのか」このようなことを論理立てて考え、分かりやすく人に伝えていく。そのためにもプログラミング的思考が重要となります。
論理的思考や問題解決能力を高めることは、未来の職業において求められるスキルであり、教育現場でも重視されています。特に、プログラミング教育はその基礎を育むための重要な手段とされているのです。
プログラミング的思考とプログラミング、共通点と違いは?
プログラミング的思考の必要性がわかったところで、「プログラミング」と「プログラミング的思考」の共通点と違いについて見ていきましょう。プログラミング的思考とプログラミングの共通点は?
「プログラミング的思考」は、プログラムを書く(=プログラミングをする)際の思考法としても用いられます。プログラミングとは、コンピュータに対して命令を与えるためにコードを書くことです。つまり、具体的な手順や条件を明確にして、コンピュータに実行させる必要があります。
たとえば、「まずAをして、それからBをして……」というように、明確な指示を出すことでコンピュータは仕事を行います。これは「プログラミング」の基本的な考え方です。
一方で、プログラミング的思考は、問題解決のために課題を細分化し、それぞれの要素の関連性を理解しながら、解決に至る手順を明確にすることです。
このように、プログラミング的思考はプログラミングの実践に必要な論理的なフレームワークを提供し、あらゆる場面で役立つスキルだと言えるでしょう。
また、プログラミング的思考は他の分野でも応用可能であり、例えばプロジェクト管理やチームワークにおいても問題解決能力として重要視されています。
このように、プログラミングとプログラミング的思考は、互いに補完し合う関係にあり、共に学ぶことでより深い理解と実践が可能となります。
プログラミング的思考とプログラミングの違いは?
簡単に言えば、プログラミング的思考は「ものごとを組み立てていく取り組み方」なのに対し、プログラミングはその「取り組みそのもの」を指します。たとえば学校やプログラミング教室では、Scratchなど子どもでもとっつきやすいツールを使ってプログラミングを行います。
プログラミングをするには、「何がしたいのか?」「そのためにはどうすればいいか?」を論理立てて考える必要があります。これがプログラミング的思考です。
プログラミングの経験を通じて、論理的に物事を考える力、すなわちプログラミング的思考を養うことができます。そして、この力はあらゆる場面に応用が可能です。
たとえば、問題解決やプロジェクト管理においてもプログラミング的思考が役立つことが多いです。
このように、プログラミング的思考は単なる技術やスキルに留まらず、将来の様々な職業や日常生活においても重要な要素となります。
これこそが、プログラミング教育の必修化の真の目的なのです。
プログラミング的思考を育てるには?
では、プログラミング的思考を育てるためにどんなことが行われるのでしょうか?パソコンを使わず「考え方」を体験する
パソコンなどの電子機器を使わずにプログラミング体験をすることを、アンプラグドプログラミングと呼びます。これは、カードを並べて正しいプログラムを考えたり、ワークシートに書き込みながらプログラムを完成させる活動にあたります。
タイピング(キーボードの操作)がまだできない低年齢のお子さんでも取り組むことができ、「プログラミング的思考とは何か」を気軽に知れる点がアンプラグドプログラミングのメリットです。
どのような手順で物事を進めれば、効率が良いプログラムになるのかをフローチャートで考えることで、論理的な思考を育むことができます。
たとえば、小学校で「掃除当番の役割分担をどうすれば、掃除が早く終わるかな?」という課題をアンプラグドプログラミングで考えることで、「プログラミング的思考とは何か」を体験するケースなどがあります。
いろいろな教科の勉強にプログラミングを混ぜる
プログラミング的思考は、問題を様々な角度から見たり、いろいろな方法で解く練習をすることで育ちます。たとえば、算数の授業で「五角形を書いてみよう!」という問題に対して、えんぴつと定規、コンパスで取り組むだけでなく、プログラミングを用いたアプローチも可能です。
同じ問題にいろいろな方法で取り組むことで、「課題を整理し、論理立てて取り組む力」=プログラミング的思考が育っていきます。
プログラミング教育必修化を目前に控え、効果的な授業実践の方法を求める方が増えています。今回は『Why!? プログラミング』監修の阿部和広先生にお伺いし、実際にScratchを動かしながら授業を成功させるポイントをまとめました。
2024/11/06 11:42
試行錯誤を繰り返し、正しいかどうか検証する
アンプラグドなプログラミングの学習は、プログラミングの「考え方」を学ぶには非常に適しています。しかし、自分のプログラムが本当に正しかったかどうかを確かめづらい点もあります。
掃除当番の例でいえば、「掃除が早く終わった!」と思っても、それが「手順を改善した」ことによるのか、実は「やる気」の問題だったのか断定しづらいデメリットがあります。
その点では、パソコンやタブレットなどを使ったプログラミングのほうがはっきりとした結果が出るメリットがあります。
定められたプログラムツールを使って、ロボットに決まった動作をさせることで、自分の「考え方」が正しければ、ロボットはちゃんと動くことを確認できます。
「考え方」が間違っていたら、ロボットは動かないので、試行錯誤を繰り返しながら自分の考え方が合っているかどうかを確かめることができるのです。
プログラミング的思考育成の具体的な進め方とは?
では、プログラミング教育は具体的にどのように進めるのでしょうか。先生は「司会役」!
アンプラグドなプログラミングを進めるために必要なのは、先生が「ルールを知り、進行していく」司会役を果たしていく(ファシリテーションする)ことです。ちょうど、ボードゲームのナビゲーターやゲームマスターに近いかもしれません。
プログラミングを他教科に取り入れる具体例
プログラミング教育の具体的な授業内容は、実は決まっていません。各学校の自由な裁量でいろいろな教科に取り入れることが期待されています。
たとえばですが、
・算数を数式をいろんな角度からみる。
・理科で実験方法を議論する。
・英語で学習の仕方を効率化する。
・社会で資料の集め方やフィールドリサーチの方法を議論する。
など「やり方を議論する」ことでプログラミング的思考をやしなう方法も考えられます。
タブレットを使ってプログラミングする授業の内容は?
タブレットやロボットを使ってプログラミングの授業を行う場合は、以下のような流れが考えられます。・ScratchやレゴマインドストームE3などの子ども向けツールを用意する。
・目標とする動作を提供する(その手順に関しては教えない)
・何人かのグループで同時にプログラミングを行い結果を確認する。
・それぞれに、成功した理由、失敗した理由をディスカッションする。
プログラミング教育必修化のねらいはスキルだけでなく、考え方の育成。「やらせっぱなし」ではなく、試行錯誤する過程を重視するのが大事だと言われています。
参考:小学校タブレット
プログラミング的思考を育てるためのポイント
プログラミングの意味を適切に伝える
「プログラミング的思考育成には、アンプラグドなプログラミングも有効」といっても、実際に指導を受ける子どもの側では「これがどうして、プログラミングの勉強になるのか」意味がわからないことも多いでしょう。
そのためには、プログラミングとは何であるのか、時間を取って話し合うことが必要です。プログラミングは単にコンピュータで記号を組み合わせていくものではなく、問題点を整理し、解決方法を考えていくためのスキルです。
このトレーニングを通じて、論理的思考力が向上することを教え、作業に取り組むことで、より大きな効果を得ることができるでしょう。
結果だけではなく、プロセスに意味があることを教える
算数の分野でも「正解にいたる道筋はいくつもあるが、学校で教える正しい方法は一つ」といった状況があります。「答えが合っていても、学校で習った方法と違うから正解にならない」こともあるため、このような環境ではプログラミング的思考を育てるのが難しくなります。
「答えが合っていることが重要ではない」ことや、「答えを出すための手順が大切である」ということを繰り返し伝えることで、プログラミング的思考を育てる指導の効果も大きくなります。
親子で話す時間をつくる、否定をしない
プログラミング的思考は、他の教科に比べ「正解」と「間違い」が曖昧になりがちです。子どもは自分のやり方が正しいのか不安になることが多いでしょう。この不安を取り除くためには、子どもの気持ちを聞いてあげることが必要です。
「どんなことをやっているのか」
「どんな失敗をしたか」
「この先、どんなことをやってみたいか」
大切なのは、子どもの考えを否定しないことです。「いまは失敗があっても大丈夫だから、繰り返し考えて試していくことで、素晴らしいプログラムができるよ!」と子どもの味方になってあげることが、プログラミング的思考を育てます。
まとめ
2024年現在、プログラミング教育は小学校での必修科目として根付いています。プログラミング的思考は、ただの技術の習得にとどまらず、問題解決能力や論理的思考力を育むための重要な要素です。教師や保護者の方々が「どこから始めれば良いのか」と悩むことも多いでしょう。しかし、その悩み自体がプログラミング的思考を育てるための第一歩とも言えます。
「できないことをできるようにする過程は、挑戦の楽しさを教えてくれる」と子どもに伝えることで、子どものやる気を引き出し、より前向きな姿勢を育むことができるでしょう。
Amazonギフトカードプレゼント中!
あわせて読みたいガイド
RECOMMENDこの記事を読んだ方へおすすめ
-
プログラミング的思考とは?小学生に必要な思考力を家庭で伸ばす方法
小学校でのプログラミング教育必修化を前に、必修化のねらいである「プログラミング的思考の育成」という言葉が浸透してきました。どんな内容?なぜ必要?家庭では?そんな疑問ポイントをわかりやす...
2024.11.29|コエテコ byGMO 編集部
-
ボードゲームでプログラミング? | 論理的思考力が身につくボードゲームまとめ(おすすめです!)
プログラミング教育が必修化します。ねらいは「論理的思考力(プログラミング的思考)の育成」。この記事ではパソコンがなくてもプログラミング的思考が鍛えられる、子どもにおすすめのボードゲーム...
2024.11.06|コエテコ byGMO 編集部
-
IchigoJam検定とは? | 試験内容・難易度・受験料・対策を徹底解説
プログラミング教育必修化に向けて、プログラミング関連の検定や資格が気になりますよね。この記事ではIchigoJam検定について、試験内容・受験料・会場・難易度などを分かりやすくまとめました。
2025.01.17|コエテコ byGMO 編集部
-
(「キッズ・プログラミング検定」は「プログラミング能力検定」に統合されました) キッズ・プログラミング検定(プロ検...
プログラミング教育必修化に向けて、プログラミング関連の検定や資格が気になりますよね。株式会社サイバーエージェントのキッズ・プログラミング検定について、試験内容・受験料・会場・難易度など...
2024.11.06|プログラミング教室ガイド
-
論理的思考とは?大人にも重要なロジカルシンキングを幼少期から身につける方法
子どもだけでなく大人にとっても欠かせないスキルの論理的思考。2020年度から小学校の授業で必修化されたプログラミング教育でも、論理的思考力が求められることが明記されています。いつの時代...
2024.11.06|コエテコ教育コラム