日本国内でも「プログラミング授業」が導入されて話題になりましたが、あらゆる仕事にテクノロジーが導入されている中で「プログラミング的思考」の重要性が増しています。
しかし、多くの方が「プログラミング」と聞くと苦手意識があったり、「高度な技術ではないか?なぜ子どもに必要なのか」と思うかもしれません。今回は、プログラミング的思考の概要と、そのスキルの重要性についても解説します。
プログラミング的思考とは?
プログラミング的思考は、日本で生まれましたが、世界中で「Computational Thinking」と呼ばれています。
日本の文部科学省は、小学生向けのプログラミング教育に大きく力を入れるようになりました。文科省は、プログラミング的思考を「ある物事を考える際に、その物事の動作や順序を理解し、それぞれの物事や動作を組み合わせて、自分がしたいことを実現できる能力」として定義しています。
例えば、クッキーを作るときを想像してみてください。最初にレシピを読んで、必要な材料を揃えます。
次に、それらの材料をどの順番で、どのように混ぜ合わせるかを考えますよね。これがまさにプログラミング的思考に近い考え方です。
プログラミングでも、コンピュータに「何を」「どの順番で」「どのように」実行させるかを指示します。クッキー作りで言うところの、レシピに従って材料を混ぜたり焼いたりするプロセスが、プログラミングでの命令の連続に似ています。
このような思考プロセスが、デジタル化が進んだ今、社会から求められる重要なスキルとなっています。
参考:
文部科学省「小学校段階におけるプログラミング教育の在り方について(議論の取りまとめ)」
子どもがプログラミング的思考を鍛えるメリットについて
子どもたちのプログラミング的思考(Computational Thinking)を育てることには多くのメリットがあります。コンピュータの知識だけでなく、思考力や人とのコミュニケーションの能力を育てることにも役立ちます。
以下では、子どもがプログラミング的思考を鍛えるメリットについて解説します。
順序立てて解決する能力の向上
タフツ大学発達心理学博士のエリザベス・R・カザコフ博士らの研究によると、プログラミング的思考を学ぶことで、順序立てて解決する能力が向上するとされています。
例えば、子どもが算数の問題を解く時のことを考えてみましょう。問題を解くためには、まず問題文をよく読んで、何を求められているのかを理解する必要があります。次に、その問題を解くためにどの計算を使うべきか、計算の順序はどうあるべきかを考えます。
これは、物事の順番を正しく理解し、適切な手順で解決策を見つける、プログラミング的思考の一部です。この能力は、算数や読み書きなど、基本的な学習スキルの土台となります。
ロボット工作で育む数学力と論理的思考
子どもたちがロボット工作セットを使って実際にロボットを組み立てたり、プログラムしたりすることで、数学の基本的な概念をより深く理解し、物事を論理的に考える力を養います。
例えば、ロボットを作る際には、部品の数を考慮したり、ロボットの形を考えたりすることが必要です。
また、プログラミングをするときには、ロボットがどのように動くかを順序立てて考え、そのための命令をコンピュータに伝えます。これらの活動は、数や図形に関する基礎的な数学の知識を使い、論理的に物事を考える力を育てるのに役立ちます。
このように、ロボット工作セットを使った学習は、数学的概念を実際に体験することで理解を深め、論理的思考力の強化につながると考えられています。
問題解決スキルの向上
ロボット工作セットを使うことで、子どもたちは実践的な問題解決スキルを学びます。例えば、4~8歳の子どもを対象にしたKIBOロボットキットの研究では、子どもたちはロボットを動かす際に問題に直面し、それを自分で解決する力を身につけることが分かりました。問題を見つけることができると、その問題を解決するためのプロセスも理解しやすくなります。これにより、問題解決能力が総合的に向上します。
例えば、子どもたちがロボットをプログラムする際、最初に計画した通りにロボットが動かないことがあります。こうした時、子どもたちは何が間違っているのかを見つけ出し(デバッグ)、それを修正する方法を考えます。
この過程で、子どもたちは試行錯誤を繰り返し、どのように問題を解決するかを学びます。たとえば、ロボットが左に曲がりすぎるなら、プログラムの中の「曲がる角度」を調整する必要があると気づくわけです。
このような活動を通じて、子どもたちは自分のアイデアを試し、何がうまくいかないかを理解し、それを改善する方法を学びます。
計画する力の向上
プログラミング的思考は、子どもが計画を立てたり、集中力を保ったり、過去の経験を思い出して問題を解決する力を強くします。
例えば、子どもが新しいゲームを作るときを想像してみましょう。最初に、どんなゲームを作りたいかアイデアを出し、そのアイディアを形にするための計画を立てます。次に、計画に沿ってゲームを作り、プログラミングします。このとき、うまく実行させるために、集中力が必要です。また、ゲームが思った通りに動かない場合、過去に学んだことを思い出して修正します。
これらの力は、日常生活や学校の勉強でも非常に重要です。例えば、宿題を計画的に進めたり、授業中に集中して取り組んだりする際にも役立ちます。
また家では、部屋の片付けやお手伝いの際に、どの順番で作業を進めるかを考え、集中して行うことで効率よく作業が進みます。
社会性の発達
プログラミングと聞くと、一人で黙々と作業をするイメージが強いですが、実は、プログラミング的思考を鍛える過程では、子どもたちが一緒にプログラムを作る機会がたくさんあります。
たとえば、一つのロボットをグループで組み立てたり、コンピュータゲームを作る際に、一人がデザインを考え、別の子がコードを書くような形での分業が発生します。このような活動では、子どもたちは互いにアイデアを出し合い、協力して問題を解決する必要があります。
結果として、仲間との共同作業や協働のスキルを育て、社会性の発達を促進します。
参考:
プログラミング的思考をどのように伸ばすべきか?
プログラミング的思考を伸ばすことは難しいのでは?と疑問に思う方もいらっしゃると思います。しかし最近では、簡単にプログラミングを学べる教材やアプリが提供されているため、比較的簡単に取り組むことができます。以下ではその一例を紹介します。
ゲーム感覚で遊べるものを提供する
他のサイトではプログラミング的思考を伸ばすために、料理やお手伝いなど、様々な方法が挙げられていますが、中でも有効な方法はゲーム感覚でプログラミングを楽しむことです。
例えば、「Scratch」は、8歳から16歳の子どもたちにプログラミングの基本を教えるための、とても分かりやすいツールです。
カラフルなブロックを使って、子どもたちは遊びながらプログラミングの基礎を学びます。これは誰でもできる仕様になっており、特別なスキルは必要ありません。
Scratchはプログラミング教育にアクセスしやすくし、子どもたちに平等に学習の機会を提供するために、という想いから寄付で成り立っており、無料で利用することができます。
プログラミング的思考を鍛える点において、Scratchはとても有効で、子どもたちはプロジェクトを作る過程で、問題解決や創造的な思考など、重要なスキルを身につけることができます。
参考:
プログラミングできるロボットで遊ぶ
ロボットをプログラミングをして動かすことを「ロボットプログラミング」と呼びます。プログラミング教育が注目されてから、子どもでも遊びやすいロボットのおもちゃも増えてきました。
子どもが先ほど紹介した無料で使えるツールで遊ばせてみて、さらに興味を持つような場合はこうしたおもちゃで学習させてみるのもよいかもしれません。
参考:
Sphero “5 Ways To Teach Computational Thinking in the Classroom”
ChatGPTのようなAIツールを使わせてみる
やりたいことの全体像を設計して、コンピューターに指示を与えるという工程は、ChatGPTでも同じことが求められます。
自分が実現したいことの全体設計を考え、細かい指示を順序立てて命令しない限りは、AIといえどもうまく機能しないことが多々あります。
またこれからはAIを当たり前に活用する時代が来るため、ChatGPTを子どもの頃から使わせてみることもまた有効かもしれません。
まとめ
プログラミング的思考は今後の時代においても非常に重要になります。現在はChatG PTのようなツールも出てきていますが、これらを動かすためにも一定のプログラミング的思考は重要になります。
AI時代でも活躍できる人材になるためにも、子どもの頃からプログラミング的思考の練習をしてみてはいかがでしょうか。