プログラミング教育
日本語でプログラムを書こう
~大学生からでは遅すぎるプログラミング教育
大岩元先生 元慶應義塾大学 環境情報学部

『世界が変わるプログラム入門』
山本貴光(ちくまプリマー新書)
著者は本書の「はじめに」の中で既存の「プログラム言語の文法や使い方は教えません」と明言しており、「プログラムが作れるようになるためには、プログラム言語の文法を知っているだけでは足りません。むしろ、見通しの立て方や進め方、ものの見方が重要です」と書いています。これこそが、プログラミングをマスターする上で最も重要なことです。
[出版社のサイトへ]
第1回 プログラミング教育が世界中で始まった

小学校からのプログラミング教育が世界中で始まり、日本でも2020年から小学校でプログラミング教育が行なわれることになりました。また、この年から、大学の入学試験が大きく変わることになっているので、日本の教育はこれから大きく変わります。
こうしたことが起こっているのは、コンピュータが社会の隅々まで使われるようになり、そのコンピュータがインターネットで相互に繋がるようになったからです。このことは今、IoT(Internet of Things)という言葉で新聞を賑わせています。
日本人の仕事がなくなる?
もう一つ重要なことは、コンピュータが人間の仕事を奪い始めていることです。不可能と思われていた囲碁の勝負で、コンピュータが世界一のプロ棋士に勝ちました。このことは、これから多くの仕事がコンピュータに奪われる可能性が高くなったことを意味しています。
オックスフォード大学のM.A.オズボーン博士は、今後10年から20年の間に日本人の仕事の49%がコンピュータに奪われるだろうと予想していますが、実は、このことはすでに始まっているのです。銀行からお金を下ろすにはコンビニなどのATMを使いますが、30年前には預金通帳と印鑑を揃えて銀行の窓口に行って申請書を書くと、窓口のお嬢さんが支払い処理をくれました。今では彼女らの仕事はなくなり、銀行の窓口もほとんどなくなって、少し残った窓口には、資産管理の相談ができる人などしかいなくなりました。
コンピュータが社会の隅々まで使われるような社会がどのようなものになるか、誰にもわかりません。ただ、はっきりしているのは、仕事の仕方が大きく変わるだろうということです。これに伴って、教育も大きく変わる必要があるのです。
プログラミング教育は大学生では遅すぎる
日本の今までの教育は、正しいこと学び、それを正確に実行することが中心でした。しかし、変化の激しい今後の社会では、何が正しいことなのかははっきりわかりません。まず必要とされるのは、コンピュータを生活にどのようにとり入れて、豊かな社会を築いていくかを考えて実行する人です。こうした人を育てる必要があります。
例えば、フィンランドの南にあるバルト3国の一つであるエストニアは、電子政府を作って、選挙は世界中どこにいてもできるようにしました。しかし、電子政府を作るのに必要なプログラマーが不足したので、大学生にプログラミングを教えてみたのですが、うまくいきません。
一方、プログラミグ教育は幼児から始めても可能なことが知られています。日本でも1987年に教育学者の子安増生教授が6歳の御子息にプログラミングを教えた記録を出版されています(子安増生『幼児にもわかるコンピュ-タ教育』福村出版、1987年)。
私が1990年に開学した慶応義塾大学湘南キャンバス(SFC)で、プログラミングを教えた時に愕然としたことは、図1に示すような、書き方をコンピュータに指示して書かせるような、幼児でも教えればできるプログラミングが習得できないことでした。授業でプログラムが書けるようになるのは、元々書いた経験のある人がほとんどで、新たに学んで作れるようになる人は少数でした。そして、その人数が年ごとに減っていきました。
このようにプログラミング教育は大学生では遅すぎるという状況は、日本に特有なことではなく、世界中で共通のことです。そして、プログラマーが足りなくて困っている国を中心に、子供の時からプログラミング教育をするべきだと考えるようになったのです。最近の不景気な世の中で、親たちが自分の子供の将来を心配して、政府に働きかけた結果として小学生のプログラミング教育が始まったのです。

プログラミングを学ぶのに役立つ本
世界が変わるプログラム入門
山本貴光(ちくまプリマー新書)
この本は、ゲーム作家で「哲学の劇場」も主催する山本貴光氏の著作であり、過去には馬場保二氏の共著で『ゲームの教科書』(ちくまプリマー新書)を出版しています。著者は本書の「はじめに」の中で既存の「プログラム言語の文法や使い方は教えません」と明言しており、「プログラムが作れるようになるためには、プログラム言語の文法を知っているだけでは足りません。むしろ、見通しの立て方や進め方、ものの見方が重要です」と書いています。これこそが、プログラミングをマスターする上で最も重要なことです。
第1章「プログラムを身につけるコツを少々」では「目標を設定しよう」がテーマで、第2章は「設計しよう-プログラムをプログラムする」が表題です。プログラムを作るための設計を、プログラムと呼んでいますが、このようなプログラムを専門的にはメタ・プログラムと呼びます。このような「メタ」な考え方は、2020年から日本で始まる次世代の教育の重要な概念です。
第4章「プログラムしよう」では、「まず日本語でOK」との表題が現われ、具体的にプログラムを作る作業が説明されています。そして付録にはプログラム言語ガイドとともに、この先に進むための本の紹介があり、山本氏による『デバッグではじめるCプログラミング』も含まれています。「入門」を終ったら、この本で具体的に一番標準的なプログラミング言語であるC言語でプログラムを書くことを学ぶのもよいでしょう。
日本語でまずプログラムを書くという開発方法は、大手の金融機関でも行なわれています。実際にコンピュータ上で動くプログラムの言語はCOBOLと呼ばれる言語ですが、その命令をまず銀行員が日本語で書き、それを「プログラマー」がCOBOLに翻訳する、という開発方式が、半世紀にわたって続けられてきているのです。
ライト、ついてますか -問題発見の人間学
ドナルド・C・ゴース、ジェラルド・M・ワインバーグ 木村泉:訳(共立出版)
プログラムの作成が「目標設定」から始まるが、これは言い換えれば、問題発見の過程とも言ってよいでしょう。本書の内容は、第1部「何が問題か?」、第2部「問題は何なのか?」、第3部「問題は本当のところ何か?」、第4部「それは誰の問題か?」、第5部「それはどこからきたか?」、第6部「われわれはそれをほんとうに解きたいのか?」と進みます。目標設定だけで、十分1冊の本を書く必要があるのが、プログラミングなのです。
すべての人のためのJavaプログラミング 第3版
立木秀樹、有賀妙子(共立出版)
現在最も広く使われているプログラミング言語のJavaを使いながら、プログラミングを深く学べる本です。私が本文で紹介したタートルグラフィックスを使って「オブジェクト指向」と呼ばれる現在の標準的なプログラミング方法を学ぶことができます。
ソフトウェア社会のゆくえ
玉井哲雄(岩波書店)
プログラミングの本ではありませんが、ソフトウェアと現代社会の関わりを、プログラムを産業として成り立たせる方法を研究するソフトウェア工学の立場から解説し、ソフトウェアに依存する現代社会の問題点を論じています。