【元プログラミング教育推進リーダーが解説】『プログラミング教育』の『目的』が5分で分かります

教育

2児の父であり、元々教員をやっていた、スマテクです。

プログラミング教育については大学を卒業した後の修士課程でも専門的に勉強していました。教員時代は、主にICT教育の先任者として、最終年は、県のリーダーをし、研修講師として年間に20回以上、日本中で講義をしていました。


近年、大学共通入試に「情報」の科目が入ることが決まったり、PISA学力調査がタブレット端末で全面実施される計画が出されたり、GIGAスクール構想と呼ばれるものが始まったりする中で、プログラミング教育に興味・関心を持つ人が増えてきています。

そんな時代の中、

・プログラミングについて詳しくない人でも大丈夫なように
・専門用語だけを使わずに

・なぜプログラミング教育を子どもにするようになったのか
・子どもにコードを書いて形を覚えるようなプログラミングの勉強がなぜ不適切なのか
・自分の子どもには、親として何をさせればいいのか


という疑問に専門的知見から答えられるよう解説していきます。

プログラミング教育とは何か

みなさんは「プログラミング」という言葉を知っていますか?
例えばテレビという機械があります。

テレビとは…映像を映し出す機械です。

では、なぜこの映像を映し出すことができるのでしょうか?

一見すると「魔法の箱」のように感じてしまいますね。
このテレビはもちろん、魔法の箱ではなく、機械に「命令」を与えて動かしているわけです。


この「命令」のことを「プログラム」といい、命令を与えることを「プログラミング」と言います。

学校でのプログラミング教育の根拠となっている「小学校プログラミング教育の手引」には、このように書いてあります。

「プログラミングによって、コンピュータに自分が求める動作をさせることができる」必要がある。

つまり、機械を魔法の箱として捉えるのではなく、コンピュータの仕組みが分かる人間が将来必要とされる

ということです。そうは言っても、

いやいや自分は美容院で髪を切りたいからプログラミングなんていらないよ。

自分は教員になるから子ども本人を見たいので、機械なんて使わないよ

こんなことをいう人がいますが、それは大きな間違いだと思います。

なぜかというと、機械を使えないと、競争力がなくなり、負けてしまう時代が来るからです。

この移り変わったあとの時代を「Society 5.0」と呼ぶこともあります。

この「Society 5.0」の時代では、美容院にもプログラマーがいるし、農家にもプログラマーがいるような時代が想定されています。
単純作業や、分析作業は機械(AI)の方が得意なわけです。
ですから、AIで自分の仕事の分析をかけられない人間は、他の同業者のAIを導入しているところにどの仕事でも置いていかれ、競争に負けてしまう訳です。

よって、幼いうちからプログラミングについて学ぶことは未来に生きる子どを考えれば必須だということが分かると思います。

先程の二人への回答としては、

美容院に努めても、機械を使って分析しないと、使っている競合に競り負けるよ

自分の個人的な見取りの感想だけではなく、機械のできることには頼れなければ、教員の仕事はどんどん増え、あなた自身の仕事の質も下がるよ

と私なら答えます。それほどに今発展してきている技術を使いこなせないデメリットは大きいのです。

プログラミング教育は、プログラミングのコードを勉強するという意味ではない

最近、子どものプログラミングの塾などもあり、非常に勘違いされることが多々あります。

ですが、プログラミング教育と、「コード」を使ってプログラミングすることは、全く意味が違います。

子どものうちから英数字のコードを使ってプログラミングすることは、よくありません。
正確な言い方をすると、非常に効率の悪いやり方です。

例えば、みなさんは子どもの頃に好きだった物(電車の名前や、アニメキャラクターの名前)を大人になっても全て覚えていますか?

ほとんどの人が忘れてしまっていると思います。

5歳までの脳は、金の脳、小学生は銀の脳、中学生は銅の脳と呼ばれます。金の脳〜銅の脳の時代は、非常に吸収力が高いです。

その時に意識するべきことは、より多くの物を「暗記する」ことではなく、「思考力」を鍛えることです。


以下は、教育の研究家たちの作った集大成、「小学校プログラミング教育の手引(文部科学省)」に書かれた物を私がまとめたものです。

このように、教育の専門家も「プログラミング的思考」を育むことが大切だと言っています。子どもが幼いうちは、「暗記」よりも「思考力」をとにかく鍛えましょう。

プログラミング的思考とは何か

「コード」や使い方を「暗記」するのはだめだと言いましたが、具体的に「プログラミング的思考」とは何なのでしょうか。それについて解説していきます。

プログラミング的思考について書かれた、イギリスの論文によると、プログラミング的思考の要素は5つに分けられると言います。

1 分解   一つのものを形成する個々の要素に分ける
2 順序立て 推論によってやるべきことを整理して筋道を立てる
3 一般化  パターンや手順を分かりやすく表現して適用範囲を広げる
4 抽象化  注目スべきことを重点的にとらえて、物事の本質をつかみ共通点を見付けること
5 デバッグ 要素や手順がよりよいものか検討する

これだけ言われてもさっぱり分からないと思うので、具体例を基に解説していきます。

1 分解

これは1つの大きなものを要素に分けていく思考です。

現実世界に例えると、「自分が営業をしていて売り上げが出ない」という問題があったとします。

すると、その原因を「トーク力」「表情」「製品そのものの課題」という風に大きな問題を分解して考えていくわけです。
これを「分解」の思考といいます。

これをプログラミングに例えると「コード」のブロックを分けて(分解して)動きやバグの原因を探す思考にもつながっています。

2 順序立て

これは、物事に算段を立てる思考です。

目に映るものを手当たり次第にやっていくのではなく、大きな物事に取り組む前にどういう道筋でやったら効率がいいのかしっかりと考えてから取り組むということです。

仕事ができると言われる人たちは大抵やっていることなのではないでしょうか。

プログラミングにおいてもプログラムは順次実行していくため、この思考力は非常に大切です。

3 一般化

これは、既存の法則やきまりに対して、身近なものを当てはめていく思考です。

例えば、「たて×横=四角形の面積」というきまりにいろいろな身近な数字を当てはめて計算していくようなものです。

他にもビジネス書などを読んで、自分の例にうまく当てはめようとする思考もこれに当たります。

プログラミングにも基本の型があってそこに「Python」や「JavaScript」などの単語は違うけれど意味は同じコードをあてはめていきますよね。

4 抽象化

抽象化とは物事の本質をつかむことです。

こう書くと難しそうですが、例えば、「織田信長」という人物がいます。

織田信長は「主要な貿易港を占領」、「経済都市である大阪を支配」、「楽市・楽座をして城下町を都会にする」といったことをします。

これらを抽象化すると、「お金をたくさん集める施策」が、織田信長の活躍につながったといえます。

このように具体的なキーワードから「お金をたくさん集める施策」という風に具体例の本質を見付ける思考のことを抽象化といいます。

具体的で、バラバラなものをカテゴライズしていくような感じです。

5 デバッグ

これは見直しや改善する作業をいいます。

自分の考えたものを改めて見直して、「ここはこうした方がいい」など、創造的に考えていくこともこの思考に含まれます。

まとめ

「コード」を覚えたり、やり方を覚えるだけは、よくありません。上に書いた5つの、思考意識ましょう。「プログラミング的思考を学ぶ」ことは、プログラミングの基礎が育つだけではなく、実生活においても物事を思考する能力がつくということです。そして、その思考力は、どれも実生活に応用できるものばかりでした。

私が以前2年連続担任していたクラスで、プログラミング的思考を鍛える実践を積んだ結果、学力テストの偏差値平均が6も上がりました。
6というと大したことがないように思えるかもしれませんが、学力困難校として県教委が指導しにくるレベルから県内優秀校へと変わるレベルの違いがあります。

ぜひお子さんが小さいうちに、プログラミングの塾に通わせる際は、しっかりとその塾が「思考力」の育成を意識的にやっているかを確認しましょう。

また、幼い子どもにプログラミング教育をしたい!という方は、英数字を使うのではなく、Scratch(スクラッチ)などのビジュアル教材を使いましょう。

私が具体的にどのようにプログラミング的思考を鍛える取り組みをしているのかは、以下の記事で解説します。

誰でも真似できる〜プログラミング的思考を鍛えるために行った、「我が家や学校の実践」〜
                               (後日更新予定)

タイトルとURLをコピーしました