これからの子どもは英語とプログラミングは必須らしいです。プログラミングの授業が小学校の授業に入ってくる日も近いでしょう。有識者会議では、理科や算数にプログラミングの考えを応用すると発表されていました。ただし、教える人がいるのかどうか、教師の確保が課題です。
さて、私もプログラミングとは遠い世界にいるので、入門編として子どものプログラミングに関する本を読んでみました。タイトルこそ、刺激的ですが、プログラミングについてやさいしく解説をしてくれる良書です。
自分が実現したいと思っている目標を、人間ではない「コンピューター」という機械にやってもらう。そのために、コンピューターに誤解なく伝わり、粛々と遂行してもらい、何か不測の事態が起きても停止したりしないように、コンピューターが理解できる形で厳密に書き下した動作の手順書。それがプログラムなのです。
プログラミングは順序が大事であること、そして細かく細分化した命令書のようなものなのです。一つ一つ積み重ねていくことが大事です。スキップしたり、人間同士のやりとりのように曖昧さがありません。
「アルゴリズム」とは、「問題を解く手順を表現したもの」です。ここまで説明してきた「プログラム」に似ていますが、ひと言でいうと「アルゴリズムを手順として書いたものがプログラムである」ということになります。
やはり、手順なのです。わかりやすい手順書を書くのが良いプログラマーと言えます。
コンピューターを使って達成したい目的があるとしましょう。そうしたらまず、その目的をいかに効率良く、間違いが起こらないように達成すればいいのか、その具体的な手順(アルゴリズム)を考えます。
そうです。手順には目的がありますから、それをいかに正しい道筋でかつ複雑でない、合理的なステップが踏めるかも良いアルゴリズムということになるのでしょう。そんなことをストーリーで、かつこのようなプログラマーに必要な思考や適性を理解できる絵本が出ました。たとえば、コンピューターがわかりやすい言語とはどのようなものか、これを主人公のルビィーに命令することによって、理解することができます。
パジャマを着替えさせるのに、どのように命令していくか。「服を着替えなさい」ではコンピューターには伝わらないのです。まずはパジャマを脱いで、それからお外へ出かけるための服を着るように命令する。服を着替えなさいというと、普通は今着ているものを脱ぎますが、コンピューターには「普通」が通じないので、私たちにとっての当たり前も言語化しなくてはならない。これがプログラミングのようです。
そして、ルビーは実際にお父さんからのミッションを与えられて、計画を立てるのですが、その際に一番大事なこと、そしていかに目的を達成するかが、書かれています。ルビーは目的は達することができないのですが、そのプロセスでいろんなものを手に入れることができます。目的を達したか、達していないかゼロかイチの世界で判断するのではなく、その過程の出来事もストーリーで大事にしているのは絵本の良いところです。
さて、実際に簡単な練習問題があるのですが、プログラムのエッセンスをつかめるようにつくられています。子どもにプログラマーとしての適性があるかどうかというよりも、自分にそれがあるかどうか、子どもと一緒に取り組んでみるとよくわかる本です。