プログラムをひらく

2020年小学校でプログラミング教育がはじまります

はじまると言っても、「プロラミング」という教科が増えるのではありません。
さまざまな教科のなかで、プログラミングを体験しながら、コンピュータを理解し上手に活用していく力を身につけることが目的です。
くわしくは 小学校プログラミング教育の手引(文部科学省) の「はじめに」をご覧ください。

プログラミングってなに?

プログラミングは、「プログラムをつくる事」です。
プログラマーは、「プログラムをつくる人」です。

では、プログラミングとは何でしょうか。

プログラムはコンピュータをうごかす「命令」です。
コンピュータはプログラムの通りにうごきます。

と言っても、イメージができないと思いますので、具体的に考えてみます。

たとえば「自動販売機」

たとえば、お金を入れて、ボタンを押すと、ジュースが出てくる、「自動販売機」を考えてみます。この自販機のプログラムはどうなっているでしょうか。

「お金を入れて」の部分のプログラム:

  1. 投入された金額を、いままでの投入金額に加え、合計額を表示する。

「ボタンを押す」の部分のプログラム:

  1. 合計額からジュースの代金分をへらす
  2. ジュースを出す
  3. 釣銭を出す。合計額をゼロにする

だいたいこのようなプログラムで良さそうですが、もし、ジュースが品切れになったらどうしましょう。対策には、「返金ボタン」が必要です。返金ボタンを押したら、全額返金する事にすれば良さそうです。
では、もしも釣銭が足りなかったらどうしましょう。ジュースを出した後に釣銭が足りなかったら手遅れですね。どこでどうすれば良いか、対策を考えてみてください。

このように「プログラミング」とは、起こり得る問題・課題を発見して、対策を考え、コンピュータが目的を達成できるよう、あらかじめ命令をしておくことです。

忘れてはいけないのは、プログラムは人が作るものだ、ということです。コンピュータはプログラム通りに動きます。コンピュータ自身が判断して勝手に動くことはありません。

プログラミング教育のイメージ

コンピュータを使う目的=プログラムの目的には様々なものがあります。自動販売機やネット・ショッピングのように、商品を売る事が目的のプログラムもありますし、ゲームのように楽しませる事が目的のプログラムもあります。
あるいは、ただプログラムを作ることが楽しく、それが目的になることもあります。絵を書くのが楽しいように、プログラムによって音がなったり、何かを動かしたりすることは、楽しいことです。

小学生には、以下のようなプログラミングをお勧めします。

学年 プログラミング 図工で言えば
1~2年生 画面上でキャラを動かしたり、音をならしたりする。かんたんなゲームや物語を作る らくがき・ぬりえ
3~4年生 ゴールのあるゲームを作る。工作などと組み合わせてものを動かす。 デッサン・風景画
5~6年生 他の人に使ってもらう事を意識してプログラムをつくる。変数や条件分岐などの概念を学ぶ デザイン・作図・実用品を作る

要約すると、低学年は、楽しむ、興味を持つ、コンピュータ操作に慣れることを目標とします。
高学年は、自分だけでなく他の人も使う事を意識してプログラムをつくったり、プログラミングに必要な概念や知識・技術にも興味を広げるようにします。
ただし、小学生では興味をもち続けることが重要で、本格的に知識や技術を学ぶのは、中学生になってからで十分であると思います。

重要なのは「教えすぎない」こと

プログラミングを学ぶために必要なものは、以下の3点です。

最新技術を取り入れた、学ぶ環境

コンピュータやプログラミングの進歩は想像以上に速いものです。今、私たちが教えることのできる知識やテクニックで、5年後、10年後に残っているものは、ほとんど無いでしょう。当面の問題を解決する知識やテクニックは、いくら沢山おしえても何の意味もありません。
そのかわりに、最新の技術にふれて、身近に感じられ、実際に試せる環境を作ってあげてください。
自宅で、子どもがパソコンを使えるようにしてください。その際、ひらがな入力は絶対禁止です。アルファベットとローマ字入力を覚えましょう。
コンピュータやプログラミングの最新情報は英語でしか手に入りませんので、英語の読み書きを覚えることも重要です。

深く考えて理解するための、十分な時間

プログラミングでは、物事を深く・正確に理解し、自ら課題を発見し、解決策を考え実行する=問題解決能力が求められます。
これには、「教える」ことが邪魔になります。
いちいち大人が口をだすと、子どももいちいち「これで合ってる?」と聞くようになり、最後には「親や他人の顔色で正解かどうかを判断する」ようになりかねません。これでは、自ら課題を発見するなど、到底無理です。
子どもが集中して取り組んでいたら、黙って見守りましょう。

やったら、ほめてあげる

教える必要はありませんが、ほめる事は大切です。親が興味をもっていれば、子どもも興味を持ちますし、親にほめられれば、もっとやりたくなります。
かんたんなプログラムでも、つくったら、ほめてあげてください。

AI(人工知能)に負けないように

コンピュータはプログラムで動きますが、AIは何でうごくでしょうか。
AI(中でもディープラーニング)は、画像や文章から単語や言い回しなどの特徴を拾い出し、膨大な知識(インターネット上の全てのデータ)と照らし合わせて、正解のパターンを作り出します。
人間の視覚や聴覚、経験や勘、「空気を読む」に近いもので、意味を理解したり、思考して判断しているわけではありません。

東ロボくん(=AIは東大に合格出来るか)、と言う研究では、AIが東大に入るのは無理との結論になりました。AIは知識と計算力は膨大だが、読解力(質問を理解する力)がほぼ無いからです。
しかし、東大は無理でしたが、その成績は日本の大学の6割に合格し、全受験生の上位20%に入るものでした。つまり8割の学生はAIに負けており、その原因は、AIよりも読解力が低いことでした。

車の運転をはじめとして、「経験と勘」が求められる仕事も、AIに置きかわっていきます。
私たちは、問題解決能力(物事を深く・正確に理解し、自ら課題を発見し、解決策を考え実行すること)こそが今後もとめられる、AIに負けない力であり、プログラミング教育が、その一番の近道であると考えています。