プログラミング教育は何歳から始めるのがいいんだろう?

小学校でプログラミング教育が必修になるけど、何歳から始めるのがいいんだろう?
プログラミングを勉強しておくと、どんなメリットがあるんだろう?
プログラミング的思考ってようするにどういうこと?
今回はこの質問に回答します。
2020年度から小学校でプログラミング教育が導入されることを知っていても、具体的にどんなことをすればいいかわからない私は不安でした。
その不安をさらに大きくしたのは、小学生が作ったプログラミング作品です(後述)。
「小学校の授業でやるのだからお任せてしておけばいい、では大変なことになる」と思いました。
そこで、『Appleのデジタル教育』をはじめとする本を数冊読んだところ、ヒントがありました。
わたしの結論
プログラミング教育は幼児から早めに始めた方がいい
理由は、プログラミング教育で身につく考え方は多岐に応用できるほか、プログラミングスキルそのものが将来のキャリア形成に直結するからです。
目次
プログラミング教育は何歳から始めるのがいいんだろう?
アップルの初代教育担当のジョン・カウチは、プログラミング教育を始める年齢について、次のように述べています。

https://www.benbellabooks.com/shop/rewiring-education/
コーディングの基本原理は、算数のようになるべく早い段階で教えるべきで、コーディングのざっくりとした考え方なら、幼稚園からでも早すぎるということはない。
『Appleのデジタル教育』p229より
コンピューター科学者のアラン・パーリスは、1960年代の早い時期に「5歳児以上のすべての人が基礎教育の一環としてプログラミングを学ぶべき」と考えていました。
つまり、海外の専門家の意見は、幼児期からはじめるべきというもの。
将来のキャリア形成につながり、高給職を実現しやすいプログラミングを必修科目に加えようという動きはアメリカで起きています。
たとえば、バージニア州やインディアナ州では、必修科目に「デジタルリテラシー」を追加しています。これは、幼稚園児から中学3年生までの全生徒が理解することを前提にしたものです。
日本では2018年の高等学校学習指導要領で、必須科目として情報Ⅰが設置され、情報Ⅰにプログラミングが含まれています。
ただ、カウチは「高校からコーディングを教えるのでは遅すぎる」と言います。
プログラミングの過程で身につく考える力はほかの分野でも役立つから、「あらゆる年齢の子供たちに教えるべき最重要事項のひとつ」だとしています。
プログラミング教育の目的はコーディングの習得ではない
カウチのいうプログラミング学習とは、コーディングの習得を目的としたものには限りません。

生徒に数学を教えるとき、生徒を数学者にしようと思って教えることはありませんよね。
数学を学ぶことで思考力を高められるからこそ、数学を教えるわけです。
プログラミングも同様です。
エンジニアを育てるためにプログラミングを教えるのではなく、
プログラミングの仕組みを学習することで、論理的思考や問題解決スキルを身に着けられるから、プログラミング教育をするわけですよね。
このことは、「小学校プログラミング教育の手引(第一版)」にも次のとおり明記されています。
小学校段階において学習活動としてプログラミングに取り組むねらいは、プログラミング言語を覚えたり、プログラミングの技能を習得することではない
プログラミングで身につくスキルをもう少しわかりやすく言うと、
・どこに問題があるかを見つける力
・問題点を見つけて解決する力
たとえば、「1秒おきに猫がコピーされる。コピーされた猫は下に落ちる」という課題があるとします。
次のようにプログラムすると、、、
コピーされた猫が落ちません。横に増える一方です。
つくったプログラムをよく見ると、コピーされた猫に対する命令がないことがわかります。
そこで、「クローンされたとき」のコマンドを使って、次のプログラムを追加します。
すると、コピーされた猫が下に落ちました。
このように、プログラミングを通じて、
どこに問題点があるのかを特定する
問題点を解決する方法を考える
エラーには必ず原因がある
ことを学べます。
ある課題をプログラミングするとき、「このプログラムを実行するには、どのコマンドをどう並べればいいのか?」を考え(仮説)、プログラムを実際に動かして確認します(実行)。うまくいかなければ、問題点がどこにあるかを考え、再度プログラムしてうまくいくかためします(検証)。
この繰り返しで考える力がつくわけですね。
以上のことから、プログラミング教育で重要なのは、コーディングを学ぶことではなく、プログラミングを身につけるプロセスであることがわかります。

さらに、プログラミングで身につく力は、学習習慣にも関係することが指摘されています。
プログラミング的思考は「段取り力」
2020年度から小学校でプログラミング教育が必修になる、ということは多くの人がご存知だと思います。
誤解されがちなことは、小学校にプログラミングという科目が追加されるわけではないことです。

ちなみにプログラミング的思考の定義は、
とされています。
つまり、意図する活動を小さく分解して、順序立てて考えることですよね。
段取り力と言い換えることもできますね。
毎朝、学校に遅刻してしまう子の解決策を考える場合は、朝起きてから家を出るまでを分解して、「起きる」「着替える」「ご飯を食べる」「支度する」「かばんに入れる」など、どこに時間がかかっているのか問題を見つける。場合によっては順序を入れ替えて時間を短縮できるか考える。
これがプログラミング的思考ですね。
プログラミングで身につく段取り力は、勉強や宿題をやるときに見通しを立てる上でも大切です。
『5歳から始める最高の中学受験』の中で、著者の小川さんは、自分で勉強できる子に育てるために必要なものとして段取り力をあげています。

もちろん、見通しを立てる力、段取り力はプログラミングでなく、ほかの方法でも身につけられます。しかし、プログラミングは将来のキャリア形成にも役立つスキル。

だれもがプログラミングを学ぶ時代が来る!?
現在は昔と比べてプログラミングを学ぶ人が増えましたが、プログラミングをしない人もまだ多数います。
しかし、『小・中・高等学校でのプログラミング教育実践』に驚きの記載がありました。
今後はすべての人がプログラミングすることが求められる社会になるだろうと書かれています。

出典:『小・中・高等学校でのプログラミング教育実践』p215
冒頭で紹介したアラン・パーリスの言葉が現実となりそうですね。

早くからプログラミング体験をしている子とそうでない子とで、高校生になるころには埋められない差ができてもおかしくないと思うのは、
テックキッズスクールに通う小学生たちの優れた作品からも十分感じられます。
⇒【生徒の作品がすごすぎる】テックキッズスクールの料金・効果は?
プログラミング体験の有無によって、論理的思考力、問題解決能力だけでなく、将来のキャリアにも大きな差ができる気がしてなりません。

幼児向けのコースではスクラッチをよりシンプルにしたソフトを使っていますが、やっていることは「仮説→実行→検証」の繰り返し。小学校が狙いとしているプログラミング的思考そのものです。
意図したところで車を止めるにはどうすればいいか?子どもなりに何度も仮説→検証を繰り返しています。

これについて、わたしは悲観的にはとらえておらず、反対に、楽しみなことと受け止めています。
考える力、試行錯誤する力、段取り力がつくだけでなく、将来の選択肢の幅が広がるので、子どもがもっと学びたいというなら、どんどん背中を押してあげたいと思います。
エンジニア人材はこれからますます不足すると言われています。

子どもが早くに身につけておいて損のないスキル、それがプログラミングですね。
【参考図書】
人気記事