プログラミング的思考とは?求められる背景や役立つシーン、習得方法
公開日: 2022/03/30
2020年度から、学習指導要領の改訂により小学校で「プログラミング教育」が必修化されました。 プログラミング教育の狙いの一つに、「プログラミング的思考」を育成することがあります。プログラミング的思考といっても、小学校段階ではプログラミング自体を学ぶことは目的ではありません。それでは、プログラミング的思考とはどのようなものでしょうか。今回は、プログラミング的思考の構成要素や求められる背景、役立つシーンの例、プログラミング的思考を養う方法についてご紹介します。
プログラミング的思考とは?
プログラミング的思考とは、文部科学省によれば「自分が意図する一連の活動を実現するために、どのような動きの組み合わせが必要であり、一つ一つの動きに対応した記号を、どのように組み合わせたらいいのか、記号の組合わせをどのように改善していけば、より意図した活動に近づくのか、といったことを論理的に考えていく力」 と定義されています。では、プログラミング的思考はどのような要素から成り立っているのでしょうか。プログラミング的思考は、主に「分解」「抽象化・一般化」「組み合わせ」の3つの要素で構成されています。3つの要素について詳しく見てみましょう。
分解
分解とは、大きな出来事を細分化して小さな出来事に分けることです。例えば、「朝起きて学校に行く」を、「目覚ましを止める」「顔を洗う」「ご飯を食べる」「支度をする」「学校へ向かう」と細かい手順や工程に分けることです。
抽象化・一般化
抽象化とは、複数の対象から共通する性質を抜き出すことです。例えば、「りんご」「みかん」「バナナ」を抽象化すると、いずれも「果物」になります。また、一般化は、類似性や関係性を見つけて他の場合でも適用可能な状態にすることです。同じ動作の繰り返しがあるとき、一定の条件で分岐するときに、その動作を一つのパーツとして他の場面で使用できるようにします。例えば、縄跳びは「飛ぶ」「縄を回す」の繰り返しです。同じように条件分岐の例としては、「もし雨ならば、傘をさす」という動作が当てはまります。これらの動作を一つのパターンとして次の「組み合わせ」で使用します。
組み合わせ
組み合わせとは、物事の順序を並べながら、効率的な手順を考えることです。例えば、カレーを作る際の過程では「じゃがいもを煮る」と「にんじんを切る」ことを同時並行で行うことで、それぞれを順番にしたときよりも調理時間を短縮でき、効率的に進められます。また、部品の袋つめの作業の指示をする際に、一回一回「部品を一つ袋に詰める」「5個になっていないか確認する」という作業を繰り返すより、「5個になるまで繰り返す」と考えた方が分かりやすく効率的です。組み合わせにより、分解し抽象化・一般化したパーツをどのように組み合わせれば効率的に動けるかを論理的に考えることができるのです。このように、分解・抽象化・一般化の過程を得ながら組み合わせで同時並行することや、同じことの繰り返しの作業をすることで効率的な手順を考えるのがプログラミング的思考です。
プログラミング的思考が求められる背景
では、なぜ今プログラミング的思考が求められているのでしょうか。ここでは、プログラミング教育を導入する背景とともに説明します。
第4次産業革命による変化
プログラミング教育が導入される背景には、今まさに始まりつつある第4次産業革命があります。第4次産業革命とは、1970年代からの電子工学や情報技術を用いたオートメーション化である第3次産業革命に次ぐ、IoT(モノのインターネット)やAI(人工知能)、ビックデータを用いることで起こる技術革新のことです。第4次産業革命により、人工知能で動くロボットやコンピュータが普及し、人間の仕事の自動化が進みます。結果として、人間の仕事が奪われる可能性も出てきています。
主体的に未来を切り開く人材の育成の必要性
それでは、今後どのような人材が必要とされるのかというと、「プログラミング的思考」を持つ人です。文部科学省は、「予測できない変化を受け身で捉えるのではなく、前向きに受け止め、主体的に向き合い・関わり合い、自らの可能性を発揮し、よりよい社会と幸福な人生の創り手となる力」 を持つ人材の育成を目指しています。AIに職業を奪われるのではなく、AIを活用してより良い社会を創る力が求められているのです。そのためには、コンピュータの仕組みを理解して扱えるようになる必要があります。コンピュータは、コンピュータに分かる命令(プログラム)を組み合わせ、実行することで動作します。例えば「ジャンプする」だと「上に移動する」「1秒待つ」「下に移動する」という命令を組み合わせることで実現します。人間には、コンピュータに思い通りの動きをさせるために、命令の組み合わせを考え、試行錯誤する力が必要になります。この「試行錯誤し、論理的に命令を組み立てる力」がプログラミング的思考の3つの要素で身に付きます。AIを活用するためのプログラミング的思考は、第4次産業革命の時代を生きる子供たちにとって必要な考え方なのです。
プログラミング的思考が役立つシーンの例
プログラミング的思考が身に付けば、物事の順序や手順の効率化を測れるようになることから、未来の社会に限らず、日常の多くのシーンで役に立ちます。ここでは、日常によくあるシーンでプログラミング的思考が役立つ場面をご紹介します。
料理や買い物
プログラミング的思考は、料理や買い物の手順を考えるときに役に立ちます。例えば、スーパーマーケットで買い物をする場合、じゃがいもやにんじんなどを野菜、鶏肉や豚肉を肉類として抽象化し、同じタイミングで購入することで入口からどのように購入場所を回れば時間の節約になるかを考えることができます。
歴史の授業
プログラミング的思考は歴史の勉強にも役立ちます。例えば歴史上のさまざまな出来事について理解するには、ただ年号を丸暗記するだけでなく、話の流れを押さえるという方法もあります。何が原因で起きた出来事なのか、何を目的として起こったのか因果関係を把握することで、関連事項を含め出来事をストーリーで押さえることができるのです。このようにプログラミング的思考を学ぶと、学習方法についても自分で効率的な方法を探すことができます。
子供のプログラミング的思考を養う方法
ここまでプログラミング的思考の重要性について説明してきましたが、それでは子供のプログラミング的思考を養う方法にはどのようなものがあるのでしょうか。詳しく見てみましょう。
子供向けのビジュアルプログラミングに触れてみる
プログラミング的思考を養うには、子供向けのビジュアルプログラミングに触れてみることが効果的です。ビジュアルプログラミングとは、アイコンや絵など、グラフィカルなブロックの組み合わせを並べることでプログラミングするソフトウェアです。小学生から始められるビジュアルプログラミングに「Scratch」があります。「10歩動く」「ボタンを押す」「繰り返す」などのブロックを組み合わせ、キャラクターに動きを作ります。ブロックで動きを考えることで論理的思考を養うことができ、実際に手を動かして試行錯誤することでプログラミング的思考が学べるのです。
プログラミング的思考が学べるボードゲームで遊ぶ
プログラミング的思考が学べるボードゲームやカードゲームも販売されています。本格的にビジュアルプログラミングやテキストプログラミングを学ぶには、パソコンが扱えないといけませんが、ボードゲームやカードゲームであればパソコンは不要です。ゲーム感覚で学べるため、低年齢の子供におすすめです。
プログラミング的思考が学べる本や動画を見る
プログラミング的思考が学べる本や動画を見ることもおすすめです。本は、小学生向けのものから、大人向けのものまであり、子供に合ったレベルの本を選ぶことができます。活字のメリットは、全体像を把握しやすいことです。プログラミング的思考を体系的・効率的に学べることでしょう。また、NHKのコンテンツに「テキシコー」という動画があります。身近な例から、「分解」「組み合わせ」「一般化」「抽象化」といったプログラミング的思考を学べる動画です。かわいいアニメーションで構成されており、子供が楽しみながら学べるでしょう。
ツールを活用して楽しくプログラミング的思考を学ぼう
自分の子供がプログラミング的思考を養う授業についていけるか心配になる保護者の方もいるでしょう。プログラミング的思考の養い方は、プログラミングを実践することだけではありません。プログラミングを学ぶのではなく、考え方を学ぶことに意味があるのです。プログラミング的思考の学習は、日々の料理や勉強方法にも応用できるため、早いうちから取り組んでおくほうがよいとされています。自宅でのプログラミング的思考のの学習方法は、ビジュアルプログラミングやボードゲーム、本や動画などさまざまです。子供に合ったツールを選択し、楽しくプログラミング的思考を習得させましょう。