PCに命令を与えること=「プログラミング」
学校は国語や英語や算数を学ぶだけではなく、プログラミングを学ぶ場にもなりました。コンピュータは今、社会の中に身近にあります。コンピュータなしでは生活もできないほどです。そこで、コンピュータをより適切、効果的に活用していくために、その仕組みを学校で勉強するということなのです。
では、プログラミングとは何か。コンピュータは人が命令を与えることによって動作します。この命令が「プログラム」であり、命令を与えることが「プログラミング」です。プログラミングによって、コンピュータに、人が求める動作をさせることができるのです。
プログラミングには、論理のステップが必要です。コンピュータの仕組みは、人間の理解のしかたと若干の違いがあります。それを意識化して、理解しやすいように命令を与えると、コンピュータも理解できる。プログラミングは究極の論理でもあるのです。人間は何かを理解するときに、無意識に全体を理解していることが多い。
答えを想定して行動することも多いです。けれど、コンピュータは、一つひとつ段階を踏まないと理解できません。だから、論理のステップを踏んでいきます。なんとなくぼやっと考えるのではなく、一つひとつ適切な順番で、命令を出すのがプログラミングです。
どうやって「間違いのない手順」で命令を出すか?
具体的にどういうことか、お金の数え方で考えてみましょう。862円持っているとします。最大で何枚のコインを持っているでしょうか。この答えは簡単です、862枚ですね。では、最小ではどうなりますか?
人間は通常、大きいほうから数えます。500円玉1枚、100円玉3枚、50円玉1枚、10円玉1枚、1円玉2枚です。それに、お金を数えた経験を積み重ねているから、この程度なら数えなくてもなんとなくパパッとわかってしまうのです。
しかし、コンピュータは小さいほうから順番に考えていきます。全部が1円玉の場合はもうわかっているので、次に「5円玉でまかなえる枚数」を考えます。そうすると172枚の5円玉が必要で、あまりが2。2円は5円玉ではまかなえないから、1円玉が2枚必要、ということになります。862円のうち2円は1円玉2枚が必要だと。
次に10円玉で考える。862円を10で割ると86枚。2円を1円玉でまかなうとわかっているから、そうすると5円玉はいらない。その次に、50円玉を想定して862円を50で割る。すると17枚の50円玉が必要で12円あまるから、10円玉が1枚と1円玉が2枚必要だということ。
次に100円玉で考える。862円を100で割ると8枚になり、あまりが62円。これは50円玉が1枚、10円玉が1枚と1円玉が2枚。そして、500円玉を想定すると1枚。つまり862円を500で割ると1枚、あまりが362円だから、100円玉が3枚と50円玉が1枚と10円玉1枚と1円玉2枚が必要となります。
なんともまどろっこしく感じますが、こと計算にはコンピュータは経験値がないので、一つひとつ小さな数字から計算して積み重ねていきます。こうした手順を理解した上で、コンピュータに命令を与えて計算を速くさせることで、正確な数字を出していくのです。これは、クイズにすると面白いし、むしろわかりやすくなります。
「862円を、コインの枚数が一番少なくなるように、コンピュータに命令を出して計算させてみましょう。ただし、条件があります。コンピュータは、足し算、引き算、かけ算、割り算しかできない。小さいほうの数字から計算する。あまりを知ることはできる。大きさを比較して大小を判断することはできる」
実はコンピュータは、基本的にこれらの4つの条件でできあがっています。この4つをちゃんと頭に入れて、コンピュータにどうやって間違いのない手順で命令を出すか。これこそがプログラミングなのです。
ここで例に挙げた内容は、クイズ好きなら小学校3年生くらいでもわかると思いますが、基本的には小学校高学年から中学校くらいで学ぶとちょうどよいのではないでしょうか。ただ、プログラミングの学習といっても、小学校でコーディング(coding:コンピュータ言語を使って、プログラムのコードを書くこと)をさせるというわけではありません。
もっと簡単なことから、プログラミングの楽しさを味わい、興味を持つような学習内容を模索する、ということだと思います。今の先生たちが一から教えるのはとても大変なので、コンピュータの専門の会社や専門家とコラボレーションして学んでいく方法を、文部科学省は進めています。小さな頃からプログラマーの資質を育てていく。新しい教育が始まります。