2020年より適用される新学習指導要領には、
小学校からプログラミングを教えることになっています。
今までは、IT系を専門とする人だけが専門学校や大学などで学んできただけに、
プログラミングってそもそも何っていう人も多いのではないでしょうか。
また、プログラミングを学んだことのある人も、
大学で学ぶようなプログラミングを小学校でどう教えるの?
と疑問に思う人もいるのではないでしょうか。
この記事では、そんな小学校でのプログラミング教育についてまとめます。
プログラミングとは
一般に、プログラミングとは、コンピューターに特定の動作を行わせるために、
動作の手順をコンピューターの分かる言葉で書いた手順書を作ることです。
この手順書はプログラムと呼ばれるもので、
プログラミングとはプログラムを作る作業のことを指します。
プログラムには、色々な指示が、順番に並べられていますが、
人に指示をする時とは違い、コンピューターに出せる指示は決まった形をしています。
その指示の書き方を決めたものをプログラミング言語と呼んでおり、
基本的に、プログラミングをしようとする人は、
まずプログラミング言語を習得している必要があります。
そのため、専門学校や大学では、プログラミング言語の習得をしながら、
実際にプログラミングをして、方法論や技術を学んでいきます。
プログラミング的思考
では、小学校で行われるプログラミング教育も、
上のようなプログラミングができるようになることを目指しているのかというと
そうではありません。
小学校のプログラミング教育で目標として掲げられているのは、
「プログラミング的思考」の育成です。
プログラミングをする際には、 コンピューターにさせたい何か目的がありますが、
それを実際にコンピューターにさせるために、
- 何をどういう手順ですればいいかを考える
- 考えたことをプログラムとして書く
という二つの大きなステップがあり、
「プログラミング的思考」とは、1つめのステップに対応しています。
2つめのステップはプログラミング言語を習得していないと難しいですが、
小学校のプログラミング教育ではプログラミング言語の習得は目的とはされていません。
大きなやりたいことがあるときに、
それを細かな部分に分けていって、
小さな手順の積み重ねで解決するという考え方を身に着ける。
また、コンピューターがそのように活用できることに気づくというのが目標となっています。
どの科目に組み込まれるか
実際には、どのような科目で、どう教えていくものになるのでしょうか。
新学習指導要領によると、「総合的な学習の時間」にプログラミングの体験が挙げられていますが、
「算数」や「理科」など他の科目においても、プログラミングを体験することが求められています。
総合的な学習の時間
総合的な学習の時間においては、
生活の中でプログラムがどのように働いているかを理解すること
に焦点がおかれています。
その題材としては、「自動販売機」が挙げられています。
自動販売機も、プログラムで動いています。
自動販売機の大きな目的は「客にジュースを販売すること」ですが、
それを手順に分けると、
- お金の投入を待ち受ける
- お金が投入されると、金額を表示する
- ジュースのボタンを待ち受ける
- ジュースのボタンが押されると、ジュースを出す
- 代金分を投入金額から減らす
- おつりを返却する
のような形で実現できることが分かります。
最近ではジュースのボタンを先に押しても動くような自動販売機も見られるので、
自動販売機毎にどのようにプログラムが違っているのかを考えてみるのも面白そうです。
算数
算数では筆算など、ある手順に従って問題を解くことが多い科目なので、
プログラミングとの相性がよさそうです。
新学習指導要領で題材として挙げられているのは、
「正多角形」の作図です。
正多角形とは、正三角形や、正方形のように、
全ての辺の長さが等しい直線でできた図形です。
また、角度の大きさが一定という性質もあります。
これらの性質を利用すると、
例えば、正三角形は
- 線を引く
- 60度方向を変える
- 01から繰り返す
で作図することができます。
理科
理科では、センサーを使った制御が題材として挙げられています。
例えば、人感センサーで人がいなくなると、LEDを消して節電する制御や、
温度センサーで温度が低いと扇風機を止める制御など、
比較的簡単な電気工作でプログラミングによる制御を学ぶことができそうです。
まとめ
専門学校や大学で行われているようなプログラミングは、
プログラムを書くため、
つまり、主に職業としてのプログラマーを目指したものが中心です。
一方で、小学校のプログラミング教育で目指されているのは、
社会の中でプログラムが動いていることに気づくことや、
プログラムは書けなくても、どう動いているかを考えられたり、
あるいは、大きな目標を小さな目標に分解していく能力を身に着けることで、
プログラマーにならない人でも役に立つ能力の獲得が目指されているようです。