Saturday, February 16, 2019

日本のプログラミング教育はどこへ向かうべきか

Image from Gyazo

BASICやScratchは必ず行き止まりにたどり着く迷路です。遠くにお城が見えているのに、決して近づくことのできない迷路です。(中略)我々が真にIT対応人材を育成したければ、BASICやScratchで立ち止まってはいけないのです。どうすればスムーズに、子供を子供扱いしないで、広大な叡智の世界へ旅立たせるか、それを真剣に考えることが最も重要です。

小学生が本格的なプログラミングを学ぶ際の障壁を取り除くためのキーボード - WirelessWire News(ワイヤレスワイヤーニュース)

書き始めたら、まとまらなくなってきたので、コンパクトに行こう。

まず、このように言うのは「秋葉原プログラミング教室」を主宰する清水亮さん。ほかにもいろいろやっているので、実績についてはggrks。

小中学生を対象としたプログラミング教室は、ここ数年、年を追うごとに増えてきている。そのうちの大半の教室で、Scratchなどビジュアル言語を教えている。ちなみに、残りではロボットを扱っているようだ。

ワシがよくわからないのは、Scratchを学んだ生徒はその後、コンピューターにどのように向き合っていくのだろうか、ということだ。ScratchからJavaScript / HTML / CSSといったWebの標準技術を学ぶ子どもは出てくるだろう。また、Python、Rubyといった本格的なプログラミング言語を学ぶ優秀な子どもが出てきてもおかしくない。Excel VBAなど会社で使えそうなスクリプト系言語に興味を持つ子どももいるかも知れない。Excelなら、ほとんどのパソコンに入っているし、Excelが嫌ならGoogle Apps Script(GAS)というのもある。これからはGASの仕事も増えそうだ。しかし、おそらく90%くらいの子どもはScratchでプログラミングとの関わりを終えることになるのではないか。

こういった環境でのプログラミング教育が、本来の目的とは別に、何を生み出すのかについては、ちょっと気をつけておいたほうがいいような気がする。

まず、ビジネスの現場でコンピューターとの関わりで必要とされるのは、プログラミングのスキルそのものではない確率が非常に高い。つまり、何かのアプリケーションを作ったり修正したりできることが、ビジネスに直接役立つことはない。特に、Scratchではほぼ無意味だろう。その点、学習する言語がJavaScriptであれば、かなり役に立つ範囲が広がる。JavaScriptと何かのライブラリが使えれば、さらに便利だ。ワシもぜひ勉強したいくらいだ(と言っているだけでは、何の意味もないが)。

だから、清水さんの秋葉原プログラミング教室が、子どもにScratchじゃなくて、JavaScriptを教えるカリキュラムを提供しているのは大変素晴らしい。

閑話休題。プログラミングスキルをビジネスに直接役立てようと思ったら、開発に関係する職種に就くしかないだろうが、しかしそこは多重下請、偽装下請といった違法、または違法スレスレの形で業務を行うブラック企業がうごめく世界だ。そうではない会社もあるし、これからは増えてくるのだろうが、プログラマーの給料が安い日本国内では、あまり夢の持てる仕事とは言えない。そこに自分の子供を突っ込ませたい親がそんなにたくさんいるのだろうか。

プログラミングの考え方、あるいはコンピューター全般に通用する考え方を学ぶのは非常に大切だし、知っておいたほうがいい。しかし、大半の人が直面するのは、目の前にあるキーボードとディスプレーで何をするかということ、すなわちパソコンを使うというテーマではないか。JavaScriptを書けるのは素晴らしいが、書けなくてもワシはいいと思う。JavaScriptで実現できる機能を、機能として実装したアプリを探してきて、業務に合う形で利用することができれば、大半の場面では問題ない。もちろん、そこにJavaScriptで作ったアプリが追加できれば、百人力だ。

ということで、ワシ的には、①ExcelやWordといったアプリケーションの使い方も含めてコンピューターの使い方を知ること、②アルゴリズムやハードウェアの構造などコンピューターの考え方や仕組みを知ること、③簡単なアプリケーションを作れることの3つがコンピューター教育には必須だと思う。そして、これは小学校だけでなく、大学の教養課程までにやればいいと思う。ただ、ピアノを3歳から学んでピアニストになったり、少年野球からプロ野球選手になったりする人もいるから、中学生くらいからアプリ開発・販売ができる環境は整えておいてあげたい。

それはともかく、JavaScriptが書けるようになりたいなあ。

No comments: