WirelessWire News Technology to implement the future

by Category

中学生たちに「なぜプログラミングが必要なのか」を教えてみた

2015.01.28

Updated by Ryo Shimizu on January 28, 2015, 21:17 pm JST

 品川女子学院で中学1年生を対象に特別講義を行うことになりました。

 学校からは「なぜプログラミングが必要なのか、人生の選択肢としてプログラミングを身につけることがどう役立つのか、ということを教えて欲しい」という依頼だったので、中学生に話をするのは慣れていないのですが、僕なりに中学生の女子達の興味を惹きつけるにはどのように話をすればいいか考えました。

スクリーンショット 2015-01-28 21.11.17.png

 会場は体育館だったので、スクリーンが用意できず、手元に配布したiPadでスライドを確認できるようにしつつ、話を聞いていて適宜感じたことや疑問に思ったことを自由に入力して欲しい、というやり方でスタートしました。

 私がこの講義で子どもたちに伝えたかったことはいくつかありますが、ひとつは「なぜプログラミングを学ぶ必要があるのか」ということです。

 そこで、まず、NintendoDSを作った岩田さんも、iPhoneを作ったスティーブ・ジョブズもプログラマーだった、という話から始めます。プログラミングができるということは、身近なアプリケーションやハードウェアを作り出すことができる、と教えたのです。

 また、家庭用ロボットが普及したら、ロボットに指示を出すことは実質的にプログラミングである、ということも説明しました。

 ロボットに人間並の高度な人工知能が搭載されるのを待つよりは家庭や家屋の状況に応じたプログラミングを簡単に行う方が実現性は高いと筆者は考えます。

 また、仮にかなり高度な人工知能が搭載されたとしても、「空気を読んで」ロボットが行動してくれると考えるよりは「指示通りに」つまり「プログラムした通りに」ロボットが動くと考えるほうが接しやすいはずです。

 そのためにはプログラミングがもっと簡単になる必要があります。
 筆者らがプログラミングを簡単にする、ということを最重視してビジュアルプログラミング言語を研究しているのはそのような理由からです。

 さらに、3Dプリンターの話をすることにしました。

 女の子は家や料理の話題に敏感に反応するからです。

 いずれ世界は3Dプリンターで料理や建物を作ることができるようになるでしょう、と説明します。

スクリーンショット 2015-01-28 21.13.12.png

 そして最後に、Microsoft HoloLensの紹介をしました。
 先日、Windows10とともにMicrosoftが発表した、スタンドアロンのグラス型コンピュータです。

 HoloLensは非常にインパクトの強い製品で、発表会では同時に実機によるデモも披露されました。
 

 Microsoftがデモした内容では、Holo Studioでクワッドコプターをデザインして、実際に3Dプリンタで出力していました。


 
 3Dプリンターが普及すると、同時に3Dプリントするものをどのように作るかということが問題になります。
 Microsoft HoloLensに用意されるHolo Studioは、その答えのひとつです。

 Holo Studioでクワッドコプターをデザインするということは、単に造形をするという意味に留まりません。

 クワッドコプターにはLEGOのように、メカニズムも含まれますし、Holo Studioの範囲を超えますが、実際には機能の定義もプログラミングする必要があります。

 Holo Studioのような環境とビジュアルプログラミングは相性が良さそうに見えます。
 なにより「Holo Studio」という名称が、Microsoftからして「この環境は開発環境であるVisualStudioの未来形である」ということを示唆しています。

 既に3Dフードプリンターは開発されています。
 まだできることは限られていますが、この分野が発展していくと非常に興味深いことになりそうです。

 いずれ本格的な料理が3Dプリンターで出力できるようになると、自宅でレシピをダウンロードするだけですぐに家で美味しいケーキや料理が食べられるようになるでしょう。

 もちろん、最初はすべての食材が3Dプリントされるわけではないでしょうが、部分的にでも料理に取り入れられていくことが考えられます。

 ひと通り説明した後、コメントを見なおしてみると、いくつか質問が来ていました。

スクリーンショット 2015-01-28 21.40.40.png

 「3Dプリンターで現金は作れますか?」という質問があったので、「いずれ作れるようになるかもしれません。しかしそのときは貨幣というものそのものの値打ちが見直されることになるでしょう。しかしコンピュータでお金を稼ぐことはできます。実は金融取引の70%がプログラミングによる自動取引です」という説明をしました。

 人間とコンピュータでは判断のスピードが違うので、プログラムによる取引と人間の取引は勝負にならない、ということを説明しました。

 つまり、うまくプログラムを作ればプログラムが勝手にお金を稼いでくれるというわけです。

 さらに、技術革新によって電信技師や電話交換手といったかつての花形職業が消えていったのと同じように、今現在、花形と言われている職業が消えていくかもしれないという可能性について指摘しました。

 たとえば翻訳者という仕事は、自動翻訳機によってかなり縮小するだろう、といったようなことです。
 実際、既に英語と日本語の通訳のような仕事は、留学経験のある社員が片手間にできるようなものになってしまいました。かつては英語を読み書きし、英会話ができるというのは特殊スキルだったのですが、今はそれは当たり前になってしまっています。

 筆者も20歳の頃は、Microsoftでプロの翻訳者が翻訳した日本語を修正する、という仕事をしていました。

 アメリカの本社からやってきたエンジニア達の講演を同時通訳の翻訳者たちが訳していくのですが、喋りながら聞くのは到底不可能です。

 そこで、同時通訳の方々には予めスピーチ原稿を渡しておき、事前に翻訳してもらいます。
 しかし、その事前翻訳の内容さえ、最初から使い物になる部分はほとんどなく、筆者は「翻訳者」という職業にひどく失望したのを覚えています。もちろんそれを修正するのが私の仕事だったのですが、ほとんど書き直しといっていいほどの苦労に「なんのために高価な金額を払って同時通訳を入れるのか」と疑問に思うこともしばしばでした。

 それは当然といえば当然で、英語ができるというだけでなく、コンピュータならコンピュータの専門知識や専門用語、背景といったものに精通していないと、そもそもちゃんとした訳ができないのです。

 Microsoftのイベントではしばらく同時通訳を入れていましたが、そのうちなくなってしまったような気がします。
 あまりにナンセンスなので頭がおかしくなりそうになり、同時通訳のインカムを切って聞く人が増えたので、最近は同時通訳が入ってるという話は聞きません。

 そんなことをしなくても、スティーブ・ジョブズのiPhoneのプレゼンはだれでも聴き取ることが出来ます。
 細かいニュアンスは同時通訳でもどうせ伝わらないので、それに比べたら、Youtubeにアップロードされた字幕付きのスピーチを繰り返し見るほうがよっぽど理解が速くなります。

 私が翻訳した数百ページに及ぶDirectXのマニュアルは、下訳として自動翻訳に掛けられていました。それを読みやすい日本語、正しい用語に修正するのが学生時代の私の仕事だったわけです。

 昔はこの自動翻訳ソフトがべらぼうに高価だったので、翻訳会社にはまだ仕事がありましたが、今はGoogle翻訳を使えば無料かつ高速で相当な精度の翻訳ができます。

 もちろんその翻訳が正しいか確認したり、ナンセンスな文章を修正する仕事はまだあるのですが、翻訳全体のスピードは非常に上がっていて、専門の翻訳者を使うよりも、専門知識のある人が原文と照らし合わせながら翻訳したほうが正確かつスピーディに訳せます。

 翻訳はいずれより大部分が自動化されていくでしょう。完全な精度には至らないものの、ある程度はそれで済んでしまうような妥協点が見つかると思います。

 また、翻訳を実際にやってみるとわかりますが、実際のところほとんどの言語は相互に完璧な翻訳をするというのは不可能です。

 言語や文化のバックグラウンドが違ったり、ニュアンスが違ったりするので、字面通りに翻訳すると思わぬ罠に陥ることになります。

 そこで翻訳者には、時には批判を恐れず独善的な解釈で意訳する必要性があります。
 これは今のところ人間にしかできません。

 「意訳の責任をとる」というのは人間にしか判断できないからです。とりあえず今のところは。

 このように、これまで知的な作業と思われていたことがプログラムによってどんどん簡単になっていきます。
 プログラムが凄いのは、それまでに得られた知見をライブラリやミドルウェアという形で誰もが簡単に再利用できるようになっているところです。

 OpenCVのようにひとつひとつを自作したら非常に手間がかかる画像処理のノウハウと理論を非常に簡単に使えるようなライブラリが登場したり、手書き文字認識や音声認識といった非常に高度な認識処理のライブラリが公開されていたり、Unityのように、高度なゲームプログラミングの大部分を再利用できる仕組みが整理されたり、プログラミングはどんどん簡単になっています。

 20年前、筆者が学生時代、Microsoftの依頼で2週間ほとんど寝ずに過ごしてようやく作った3Dゲームのデモは、今やUnityで数時間もあれば作れてしまいます。学生時代、友人が必死で計算していた複雑な統計解析の数々は、今やR言語という統計解析用のプログラミング言語を使えば一行で解析が終わってしまいます。

 
 当時はごく一部の人間しか扱えなかった叡智が、いまやだれでもアクセスでき、だれでもそれを利用して自分のプログラムを作れるようにまで進歩してきています。

 プログラミングをできるようになるということは、人類の叡智を利用できるようになるということです。
 

 今日の講義は中学生に聞かせるにしてはかなり高度な内容になってしまいましたが、さすが若いだけあって、ちゃんと付いてきていただけたようでホッとしました。

スクリーンショット 2015-01-28 22.05.10.png

 彼女たちが高校を卒業する5年後、世界はどう変わっているでしょうか。
 私達、大人世代は、世界をどう変えることができるでしょうか。

 未来に思いを馳せて目をキラキラ輝かせる少女たちを見て、私は自分の仕事を振り返り、身の引き締まる思いを噛み締めました。

WirelessWire Weekly

おすすめ記事と編集部のお知らせをお送りします。(毎週月曜日配信)

登録はこちら

清水 亮(しみず・りょう)

新潟県長岡市生まれ。1990年代よりプログラマーとしてゲーム業界、モバイル業界などで数社の立ち上げに関わる。現在も現役のプログラマーとして日夜AI開発に情熱を捧げている。