プログラミング教育の目的は「プログラミング的思考」を養うこと
プログラミング教育の目的は考える力、すなわち思考力を身につけることです。文部科学省は、プログラミング教育を通して育成する思考力を「プログラミング的思考」と呼んでいます。これは、プログラミングを行う能力そのものではなく、国語や算数などの科目、日常生活、社会に出た後などあらゆる場面で生かすことのできる汎用的な能力です。では「プログラミング的思考」とは何でしょうか。新学習指導要領と同時に公示された「学習指導要領解説」で以下のように定義されています。
「プログラミング的思考」ができれば論理的に問題解決が行える
端的に言うと、プログラミング的思考とは「コンピュータやプログラミングの概念にもとづいた問題解決型の思考」のことです。プログラミング的思考は、
- 論理的思考
- 創造性
- 問題解決力
- 実行力
など様々な要素から成り立ちます。コンピューターは何かしらの処理を実行する際、処理をする対象を細かく分けて実行したり、繰り返しや条件分岐などを用います。大きなアプリケーションであれば、処理を細かく分け、実行しやすくしています。プログラミング的思考とはこのように、目的やゴールから逆算し物事を順序立てて考え、結論を導き出し、実行することなのです。
プログラミング的思考は社会生活にも役立つ
プログラミング的思考は社会で生活する上で活かすことができます。大きな問題や複雑な課題が立ちはだかったとしても、まずはそれらの問題を小さな単位に分解すれば取り組みやすくなります。また、適切な打ち手を検証にもこの思考力は役立つため、現実社会の問題解決にも応用することができます。プログラムには言語の文法やコーディングスキルは欠かせませんが、それらは時代とともに移り変わっていきます。
プログラミング的思考の具体例
コンピューターにやってほしことを行わせるには、理解できる命令を組み合わせ、それを実行させる手順を考える必要があります。コンピューターに処理を実行されるには、以下の手順を踏む必要があります。
- どのような処理をさせるのか明確にする
- どのような動きをどのような順序で実行させるのかを考える
- 命令をコンピューターが理解できる言語に置き換える
- 指示をどのように組み合わせれば自分が考える動作を実現できるかを考える
例えば、コンピュータで正三角形を書く場合、「正三角形を書いて」のような命令は用意されていません。正多角形がもっている「辺の長さが全て等しい」「角の大きさが全て等しい」「円に内接する」「中心角の大きさが全て等しい」のような正多角形の性質などから、どのように指示すれば意図した図形が仕上がるかを考えていくのです。
なぜプログラミング的思考が重要視されるのか
プログラミング的思考が重要視される理由としては、社会構造の変化が挙げられます。IoT(モノのインターネット)やAI(人工知能)、ビッグデータなどのテクノロジーによって産業の形は変わりつつあります。これは第4次産業革命と呼ばれており、業務効率性や生産性は従来と比べものにならないほど飛躍的に向上します。先進国ではテクノロジーを活用したシステムの導入が進められています。今後は身の回りにあふれている情報やICT(情報通信技術)を、能動的に、目的のために活用できるスキルが必要となります。そのスキルこそが発想力や論理的思考力、すなわち、プログラミング的思考なのです。またAI(人工知能)の台頭によって現在の仕事の半数がなくなるとさえ言われています。しかしAIを駆使する全く新しい仕事が生まれるだろうと予測されているのも事実です。数年後、数十年後の社会では、情報やICTに対し受け身の姿勢ではなく、自ら考え行動し、新しい仕事を生み出していく必要があります。
プログラミングという教科ができるわけではない
「プログラミング教育」というと”英語”や”家庭科”のように新たな教科として日課表に加えられるように思われるかもしれません。しかし、少なくとも現在定められているの指導要領改訂では「プログラミング」という教科が新たにできるわけではありません。あくまで理科や算数などの教科に一部プログラミングの要素が組み込まれる程度です。既存の教科にプログラミングのエッセンスが取り入れられた授業が行われます。既に学校教育で扱っている授業の一部にプログラミングが追加されるという考え方が正しいでしょう。文部科学省「小学校段階におけるプログラミング教育の在り方について(議論の取りまとめ)」では、「プログラミング教育を行う単元を各学校が適切に位置づけ、実施」とあります。
また文部科学省の稲葉敦氏は以下のように述べています。
どのようなプログラミング教育を行うかは各学校の裁量に任せられていることがわかるでしょう。
プログラミング言語やコーディングを学ぶわけではない
プログラミングとは、プログラミング言語を用いてパソコンに計算などの処理を指示し、実行させるというものです。(コンピューターへの命令プログラムを書くことをコーディングと呼びます)システムエンジニアやプログラマーは、RubyやPHP、Java、C#と呼ばれる言語を用いて、様々なシステムを構築しています。保護者の中には、プログラミング言語やコーディングのスキルよりも、国語や算数などの科目に力を入れるべきだと考える方もいらっしゃるでしょう。しかし今回必修化されるプログラミング教育は、プログラミング言語やコーディングスキルを学ぶものではありません。文部科学省の有識者会議の取りまとめでは、プログラミング教育の目的について「プログラミング的思考などを育むことであり、コーディングを覚えることが目的ではない。」と定められています。前述の通り、プログラミング教育必修化の目的は、「思考力」を育成することです。論理的思考や物事を分析し、正確に認識する力は国語や算数、その後学ぶ科目のベースとなります。こういったスキルは、学校の勉強だけでなく、普段の生活や社会に出たあともあらゆる場面で応用できるものです。
必ずしもパソコンを使って授業するわけではない
小学校向けのプログラミング教育は、必ずしもパソコンを使うとは限りません。
これは先ほど述べたように、プログラミング教育の目的は、スキルではなく「思考力」を身につけるためのものだからです。例えば「アンプラグド」と呼ばれる学習方法は、コンピューターではなく、カードなどを用いてコンピュータの基本的な仕組みや特徴を考える方法です。プログラミングは、「パソコンに向かってキーボードで文字を打っていく」と言うイメージがあるかもしれませんが、小学校ではまだ基本的なパソコン操作が苦手な生徒も多いはずです。そのためパソコンを操作するだけではなく、興味を持ちやすいものを使って、プログラミング的思考を身につけていくのです。
プログラミング教育必修化の理由:社会的背景
プログラミング教育の必修化には、社会的な背景があります。テクノロジーの発達によって、あらゆる課題解決にプログラミング的思考が必要となっているのです。
第4次産業革命
「第四次産業革命」は、IoT(モノのインターネット)やAI(人工知能)により、産業の形が大きく変革していくことを指します。今やITとは全く関係のない業界でも、テクノロジーが積極的に活用されており、例えば回転ずしチェン「スシロー」では、お皿に搭載されたICチップやビッグデータ解析などでネタを決定したり、廃棄を減らしています。またホンダやトヨタはAIによる自動運転車の開発を行っています。自動運転技術の開発はGoogleやテスラ、Uberなど世界的なIT企業も行っています。IT・テクノロジーは私たち生活に密接しており、今後ますます欠かせないものになるだろうと考えられます。プログラミング教育必修化の背景には、このような社会構造の変化に対応できる人材を育成すると言う目的もあるのです。
プログラミングには子供を熱中させる要素がある
プログラミングは次世代の思考力が養えるだけでなく、子どもを熱中させる要素もあります。それを理解すると、子どもへのプログラミング教育もグッと行いやすくなるでしょう。ゲームをする感覚に近いプログラミングは勉強というよりパズルやゲームの感覚に近く、特に子ども向けプログラミング学習サービスはゲーム感覚で学べるものも多くあります。
Scratchは子ども向けのプログラミング言語として人気
例えば、子ども向けビジュアルプログラミング言語「Scratch(スクラッチ)」は、可愛らしいイラストやブロックをジグソーパズルのようにつなぎ合わせるだけの直感的な操作などから、世界中で支持されています。
自信や自己肯定感が得られる
プログラムは指示が正確にコンピューターへ伝われば意図した通りに動きます。一方そうでない場合はエラーになります。思ったように動けば嬉しいし、うまくいかなければ悔しい思いをするでしょう。こういった失敗とチャレンジを繰り返して成功した時に得られる達成感は、子どもの自信や自己肯定感につながります。子どものうちにしっかりと失敗をし、考え、その結果うまくいくという成功体験を積むことは、非常に重要なことであると言えます。
プログラミング教育必修化に向けて保護者は何を準備すれば良いのか
プログラミング教育必修化に向けて保護者は何をすればよいのでしょうか。以下で、子どもがスムーズにプログラミング的思考を身に付けるためにできることを解説します。
子どものITに対する抵抗をなくす
中には、パソコンやITデバイスに苦手意識を持っている子どももいるかもしれません。ご家庭では、ITが身近にある環境を作り、子どもの苦手意識や抵抗をなくすことを目指しましょう。
学習環境を整える
子どもがプログラミングに興味を持った際は、十分に学べる環境が必要となります。パソコンやタブレットなどがご家庭にない、もしくは古いものしかないという状況であれば、最低限のプログラミングを学ぶための学習環境を整える必要があるかもしれません。また最近ではタブレットだけでプログラミングを学べるサービスも多いです。
ある程度親もプログラミングを理解する
保護者が全くわからない、よりは、ある程度子どもがどのようなことを学んでいるか理解している方が好ましいでしょう。子ども向けプログラミング学習サービスは親子で学べるものも多く存在します。これを機に子どもとプログラミングを一緒に学んで、疑問や質問に答えられるスキルを身に付けましょう。
さいごに
プログラミング教育必修化は、論理的に考え、創造する・問題解決をする「プログラミング的思考」を育成するために行われます。若い世代ほど「デジタルネイティブ」であるイメージがあるかもしれません。しかし、直感的に操作できるスマートフォンの普及により、普段パソコンを使う機会がないという子どもも多いようです。コンピューターに触れる機会の格差をなくすためにも、小学校での必修化は必要なものなのかもしれません。まずはゲームやパズルのような感覚で学習を始めることで、苦手意識を持たず、プログラミングに触れることができるでしょう。