プログラミング教育が必修化に!これからの時代を生き抜くために必要な力とは?

2020年度から全国の小学校でプログラミング教育が必修となりました。親世代の方々は、小学生からプログラミング教育を行うことに疑問や不安を抱いているかもしれません。しかし、プログラミング教育はプログラムを作ること自体が目的ではありません。プログラミング教育を通じてさまざまな能力を育み、デジタル社会を生き抜くための力を身に付けることを目的としています。

この記事では、プログラミング教育の概要や実際に子どもたちが学ぶプログラミング学習の内容を、詳しく解説します。

プログラミング教育必修化の概要

2020年度から始まるプログラミング教育の具体的な内容について解説します。

2020年から小学校で必修化

プログラミング教育必修化は小学校の新学習指導要領として、2017年3月に文部科学省から公示されました。新学習指導要領内ではプログラミング教育必修化に関して「情報活用能力・問題発見・解決能力などの学習の基盤となる資質・能力を育成できるよう各教科の特性を生かし教育課程の編成を図るものとする」としています。つまり、プログラミング教育を通して情報を収集し活用する力や、問題解決能力を身に付けさせることを前提とした教育です。小学校時代からプログラミングを学ぶことにより、幼いうちから論理的思考が身に付くようになります。

プログラミングとはプログラムを作ること、つまり「コンピューターに指示する処理を書き出すこと」です。コンピューターは指定されたプログラムに従って動いています。プログラムとは、コンピューターに対して「どの操作をされたときにどのように動くか」という指示です。

コンピューターは指示されたプログラム通りにしか動くことができません。そのため、最終目標の動作から逆算して細かな手順を考える力が必要です。プログラミングは完璧な指示を出さなければ、想像している通りに動かすことができません。想像通りに動かそうとするためには試行錯誤が必要です。試行錯誤を繰り返すことによって、論理的思考力が養われます。

中学や高校でもプログラミング学習が進む

2021年度からは中学校でもプログラミング教育が全面実施され、プログラミング教育に関する内容が拡充されました。また、2022年度からは高等学校でもプログラミング教育が必修となります。

中学校ではプログラミング教育が必修化される以前も「技術」科目の中でプログラミング教育を行っていました。しかし、今回の必修化に伴い、より詳しく充実したプログラミング学習を行う方針です。

高校でも中学同様、プログラミング教育が必修化される以前も、簡単なプログラミングは選択科目の「情報の科学」で学ぶことができました。しかし、実際は多くの生徒がプログラミングの内容を学ばない「社会と情報」を選択する結果となっていました。今後は、プログラミングの他に情報セキュリティやデータベースを学ぶことができる「情報Ⅰ」が必修化され、選択科目である「情報Ⅱ」では、より深くプログラミングについて学ぶことができるようになります。

情報Ⅱは情報Ⅰで学んだ基礎を元に、プログラミング力を養う科目です。問題発見や解決に向けてのデータ活用やコンテンツの創造力育成を目的としています。さらに、情報Ⅱには数学Bを基礎としている章があるため、数学Bを履修している生徒は更に双方の内容を深く学ぶことができます。

また、小中学校においてはプログラミング技術を身に付けるための教育ではなく、プログラミングを通して問題解決能力や論理的思考を身に付けるためのプログラミング教育です。しかし、高校からは小中学校で学んだ内容を生かし、本格的なプログラミングを行う方針です。

プログラミング教育必修化の背景と目的

プログラミング教育が必修化されたことには、さまざまな背景や目的があります。プログラミング教育が必修化された背景と目的を解説します。

プログラミング的思考を育む

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

自分が意図する一連の活動を実現するために、どのような動きの組合せが必要であり、一つ一つの動きに対応した記号を、どのように組み合わせたらいいのか、記号の組合せをどのように改善していけば、より意図した活動に近づくのか、といったことを論理的に考えていく力

引用:文部科学省「小学校段階におけるプログラミング教育の在り方について(議論の取りまとめ)」

「論理的思考を養う」と前述しました。この「論理的思考」は「プログラミング的思考」を通して育まれます。

プログラムを組む際、少しでもあいまいな指示を出してしまうとコンピューターは思った通りに処理してくれません。自分が処理させたい動作にはどのような指示が必要か、どのように組み合わせれば意図した通りに動くか、工程を分解して考えていく力が「プログラミング的思考」です。

コンピューターの仕組みを理解する

プログラミングは私たちの生活の中でさまざまな物に組み込まれています。パソコンはもちろん、スマートフォンもプログラミングによって動作しています。

たとえば、スマートフォンをスワイプすると画面が移動することもプログラムによる動作です。これは「スマートフォンの画面を指で動かす」と「動かした方向に画面を移動させる」と指示するプログラムが組まれているためです。同様に「スマートフォンをタップする」と「アプリやリンク先が開く」動作もプログラムによって行われています。

このような、基本的な仕組みに対しての理解力を育むことも、プログラミング教育の一環です。

創造力を身に付ける

プログラミング教育では、クリエイティブ・ラーニング・スパイラルと呼ばれる学習方法も注目されています。クリエイティブ・ラーニング・スパイラルとは、「積み木やブロック遊びといった幼児期の知育遊びにより創造的な力を身に付ける」学習方法です。

この学習方法は「発想」「創作」「遊び」「共有」「振り返り」を順番に行い、再び「発想」へとつながるサイクルを構成しています。

①発想

ものづくりにおいて、何が作りたいかを発想することは大変重要です。まずは自由に想像や発想をし、どのような物が欲しいか、どのような物を作りたいかイメージします。

②創作

発想したイメージに基づき実際に創作します。

③遊び

創作してできた物を使って遊びます。この過程において、改造や実験を重ねることで表現方法を学びます。

④共有

親や友達に創作した物を見せて共有します。どのような意図で作ったか、どのように作ったか説明することにより新たな気付きを得ることができ、次の発想へとつながります。

➄振り返り

自分が創作した物を振り返ります。親や友達と共有し気付いたことを踏まえて改善点や良かった点を考え、次の創作に生かす糧にします。

社会で必要な力を養う

プログラミング教育を通して、主体性・タスク処理能力・プレゼンテーション能力を身に付けることができます。これは、プログラミング的思考に起因する能力です。

プログラミングでは、どのような指示を出せばどのように動くか想像するところから始まります。自ら考えることは主体性へ、指示を順序だてて思考することはタスク処理能力へとつながるでしょう。また、どのようなプログラムを組んだか他人に分かりやすく説明することは、プレゼンテーション能力へとつながります。

加えて、プログラムを指示通り動かすためには試行錯誤が必要です。試行錯誤を通して物事をあらゆる視点から見ることは、問題解決能力を育てます。

これらの能力は、社会生活や日常生活のさまざまな場面で役立つ能力となります。

各教科の学びに応用させる

小学校で行われているプログラミング教育は、算数や理科を主とした教科と関連付けて行われています。既存の教科と関連付ければ、プログラミングと既存教科の相互理解を深めることが可能です。

算数であれば図形を描くときにプログラミングが学べます。たとえば正三角形を描くプログラムを考える場合、

ある点から一定の距離を進む→60度時計回りへ回転→この動作を2回繰り返す

上記のようなプログラムを作れば、正三角形を描くことができます。

このように、算数や理科だけでなくさまざまな既存教科と関連付けてプログラミング教育が行われています。

実際にどのようなことを学ぶの?

では、実際に学校でプログラミングについてどのように学ぶのでしょうか。授業の概要とともに、例を挙げながら学校で学ぶ授業の内容を解説します。

授業の概要

小学校・中学校・高校では授業の進め方が大きく異なります。中学では「技術」科目内に存在したプログラミング教育をより深く教え、高校ではプログラミングを含む「情報Ⅰ」が必修化されることは前述しました。

小学校では、プログラミング授業の内容や、使用する教材に明確な指定はありません。つまり「プログラミング」という名の科目は新しく追加されません。算数や理科を中心に各教科を通してプログラミングを取り入れる方針です。算数では主に先ほど紹介したような図形の単元、理科では主に電気や天体の単元でプログラミング教育が行われます。

また、プログラミングといえばパソコン必須のイメージがあります。しかし、必ずしもパソコンを使用するとは限りません。小学校教育ではプログラミング技術を身に付けること自体が目的ではないためです。前述したように、各教科の学びの中で積極的にプログラミングを用いる教育方法を採用しています。

また、中高では座学だけではなく実技も通してプログラミング教育を行う方針です。

では、プログラミング教育の具体例を紹介します。

天体シミュレーションの授業

天体シミュレーションの授業は長野県の小学校において、4年生の理科行われた授業です。この授業では「Scratch(スクラッチ)」という、無料のプログラミングアプリが使われました。Scratchはもともと、キャラクターを動かしてストーリーやゲーム、アニメーションを作ることでプログラミングを学ぶアプリです。

このアプリに天体スクリプトを用意し、天体の座標や動きに合わせてプログラムすれば、天体の動きとプログラミングを同時に学ぶことができます。

また、Scratchは画像を簡単に取り込むことができるアプリです。長野県の小学校では、身近で具体的な学習を行うために、背景画像を学校や街の景色に設定しました。

ドリトルを使用してゲームプログラムの作成

千葉県の高校で行われている授業です。ドリトルというプログラミング言語を利用し、簡単なゲームプログラムを作る授業を実施しました。ドリトルは、プログラムを日本語で書くことができる教育用プログラミング言語です。日本語でプログラムできるため、プログラミング経験がなくても比較的ハードルが低く、容易に学ぶことができます。

たとえば、指定のオブジェクトをキーボード操作で移動できるようにする、敵を設置して指定操作で攻撃させるといったゲーム風プログラムを作ります。このように、ゲーム風プログラムを組むことでアルゴリズムの基本を学びます。

JavaScriptを使ってプログラミング学習

この授業も、千葉県の高校で行われている授業です。

Webサイトで用いられる「HTML」や「CSS」「JavaScript」を学習し、Webサイトの仕組み理解を目指し、実際にWebサイトを作成します。

また、JavaScriptはWebサイト上だけではなく、例えばレジシステムのプログラムにも使用されているプログラム言語です。このような実生活をイメージし、JavaScriptを使用してレジ打ちプログラムを組む実習も行われています。

なぜ現代はプログラミング教育が必須なのか

なぜ、現代はプログラミング教育が必須なのでしょうか。その理由を解説します。

社会のデジタル化が進んでいる

現代社会において、パソコンやタブレット・スマートフォンを使用することは当たり前の時代です。また、家電にもインターネットが経由されています。経済社会では「第四次産業革命」とも呼ばれるほど、AIやIoTなどのデジタル技術も発展しました。

デジタル化が進む現代において、パソコンやタブレット・スマートフォンなどのコンピューター操作は一般常識となっています。急速に発展するデジタル社会で生きていくためには、幼いころからデジタル環境に慣れ親しむことは必要不可欠です。

また、日本では経済産業省が「2030年に79万人のIT人材が不足する」と発表するほど、IT人材の不足が問題視されています。実際、多くの企業でIT技術が導入されており、今後もIT人材の需要は拡大すると予想されます。

プログラミング教育を必修化しプログラミングに触れる機会を作れば、プログラミングに興味がわきIT業界を目指す子どもたちも増加するでしょう。また、プログラミング教育を受けた子どもたちが大人になり教職へ就いたとき、プログラミング教育の質が向上すると予想できます。

このように、プログラミング教育を行うことは次世代の技術促進につながります。

人間だからできる課題解決力を伸ばす必要がある

デジタル技術の進歩は人々の生活を豊かにし、より便利にします。しかし、デジタル技術の発展に伴いAIなど人工知能が急速に進化すれば、人間の仕事を奪うことになりかねません。各国の予想では、2045年には「技術的特異点」が到来し、人工知能が人間を追い越すとする予測も出されています。

このような時代に備えて、人工知能にはできない能力を育むことが必要となりました。その能力が、しっかりと現状を分析し理論立てて考え、問題を解決するプログラミング的思考です。

また、プログラミング的思考は判断力や問題解決力だけではなく、試行錯誤によって創造力や表現力も育みます。人工知能は指示された物事を的確に遂行することは得意です。しかし、何もない状態から物事を生み出し、遂行することはできません。人工知能が真似のできないことを、想像力や表現力を駆使して人間側で行っていく必要があります。

世界に後れを取らない

日本では「アクティブラーニング」の点で世界から後れを取っています。アクティブラーニングとは「能動的な学習」を意味し、子どもたちが自ら学習に取り組む学習スタイルです。アクティブラーニングを行えば、子どもたちの主体性が身に付くとされています。

今までは、教師が教卓に立ち授業を進め、子どもたちは教師に指示された通り静かに板書をしたり問題を解いたりするだけの受動的な授業でした。しかし、アクティブラーニングでは、子どもたちが自ら考え発言するような、積極的な授業参加が大切です。

プログラミング教育は、子どもたちが自らプログラミングの試行錯誤を繰り返せば、主体的に物事を考えるようになります。さらに、発表の場を設ければより能動的に学習へと取り組むこととなります。

今までのような受動的な授業だけでは主体性が培われず、今後も世界との差は広がるばかりです。IT社会では主体性が必須です。プログラミング教育によりアクティブラーニングを取り入れれば、世界に引けを取らない主体性を身に付けることができます。

これからはプログラミング力が必要

デジタル社会となった現代において、プログラミング力は必須となります。それは、プログラムを作ることだけではなく、プログラミング的思考による論理的な考え方や問題解決力、創造力も同様です。

小学校からプログラミング教育を取り入れることによりプログラミング的思考を培っていくことは、未来を担う子どもたちにとって必要不可欠です。