WirelessWire News The Technology and Ecosystem of the IoT.

by Category

地方都市で100人の子どもたちにプログラミングを教えた話

A lecture and gave the personal computer for children of all ages

2015.12.07

Updated by Ryo Shimizu on December 7, 2015, 08:32 am UTC

 東京から少し北に行ったところにある新潟県長岡市という小さな地方都市があります。
 人口28万人。新潟県で第2、全国では第38位の都市です。

 先週の土曜日に、その長岡市で子どもたちに無料のプログラミング教室を開講しました。

 長岡市と積極的に関わるようになったのは、昨年の夏に、株式会社公共イノベーションの社長(当時)で、現筑波大学教授の川島さんから声をかけられたのがきっかけでした。

 川島さんは茨城県出身の元高級官僚で、官僚時代の先輩が長岡市の市長を長年勤めているということで、同市の出身者である私に興味を持ち、接触してきたのです。

 初めて会った川島さんは、「長岡市の活性化、観光地化、現地のベンチャー育成」などと息巻いていたのですが、私は逆に「そもそもそんなことをいったい誰が望んでいるのか」と疑問を呈しました。

 私自身は郷土に愛着はあるものの、すぐに飛び出して東京に、そしてアメリカ合衆国ワシントン州まで出張っていって、世界最大のソフトウェア企業、Microsoftの本社や、ボーイング社、ニンテンドー・オブ・アメリカ、スターバックスなどが長岡と気候の似た田舎町のシアトルでも立派に成功をしてるのを目の当たりにして、「大都会でなくても世界企業は作れる」と思って帰国したものの、やはり日本の田舎では人材を集めたり仕事を集めたりするのが難しく、結局、日本で最も優れた頭脳が集まる場所、東京都文京区に会社を構えるようになってもう10年が経ちました。

 そんな人間ですから、郷土への愛情はあっても、長岡の地元のベンチャー企業の育成に興味があるわけもなく、やる気がある長岡の人間はとっくに東京に出て起業してる、という話をとうとうと語ったものです。

 福島に関しては東京に住んでいても放射能の影響やら風評被害やらは他人事ではないので、私自身も2011年8月に「福島ゲームジャム」を共催し、現在も続いています。

 しかし関わり方としてはその程度で、政治に具体的な関わりを持っているわけではありませんし、地元の南相馬市の協力はいただいているものの、あくまでも私達が独善的に考える地方活性化のための施策でしかありません。

 そのような意味で、私は果たして大学進学率が未だに全国最下位クラスの新潟県で独立・起業を奨励したりするのはあまり気が進みませんでした。それは地元長岡の精神性とあまりにかけ離れた施策という気がしたからです。

 そこで川島さんが窮余の策として苦し紛れに言い出したのが、「地元の子どもたちにプログラミングを教えてくれないか」ということでした。

 そういうことなら、プログラミング教育は私のライフワークでもありますので、喜んでお引き受けしましょう、と実現することになったのです。

 昨年、第一回のプログラミング教室は地元の私大である長岡大学で行われましたが、教室の制約から20名の参加が限界でした。評判はよかったものの、すぐに締め切られてしまい、参加できる方が少なすぎるのがひとつの大きな課題でした。

 そこで今年は大きく範囲を広げ、最大100人まで受講できる講座をやりましょう、ということにしたところ、やはりこれも市役所の方の尽力の効果か、あっという間に枠が埋まってしまいました。

スクリーンショット 2015-12-07 7.23.00

 講義はまず30分ほど、私の経歴の紹介、特に私が地元長岡とどのように関わってきたか、という紹介からスタートしました。長岡に住む人なら誰もが知っている学校や土地、その卒業生であり、自分もまた長岡の子供のひとりに過ぎなかったということで、親近感を持ってもらうのがねらいでした。

 その後、私がマイクロソフトやドワンゴという会社と関わり、今もまたUEIという自分の会社と、ドワンゴにも関わり続けていることを伝えると、子どもたちは「あのニコニコ動画の会社!?」と真剣に耳を傾けてくれました。

 そして私が興味を持っている3つの専門分野、ひとつはドワンゴで推進している最先端のコンピュータ・グラフィックス、もうひとつは、enchant.jsやenchantMOONといった事業で関わっているコンピュータ・アーキテクチャ、そして最後に、もしかしたら将来この2つに大きく影響を及ぼすかもしれない、人工知能の話をすることにしました。

 なぜ、子どもたちがプログラミングを学ぶ必要があるのか。
 それには2つの理由があります。

 まずひとつめは、日本語と同じように自分の考えをプログラミングで表現できるようになることは、そもそも素晴らしいことだからです。

 ひとつの例として、私は「なぜ月が地球に落ちてこないか」という話題を挙げました。

 月はどうして地球に落ちてこないのでしょうか。
 私は少年時代、これがずっと疑問でした。

 まずニュートンが万有引力を発見した。これは子供でも知っています。
 そして、万有引力の法則とは、全ての物体は引かれ合っているということ、これも誰もが知る・・・いや、正確には「知っている」と思い込んでいる事実です。

 そして誰もが「万有引力があるから、りんごは木から落ちる」ことを知っています。

 ここまでは、ごく身近な話です。
 むしろ万有引力の法則などと言わなくても、「ものが落ちる」という現象を「万有引力の法則」と名付けただけだ、と誤解して覚えてしまうのが普通です。

 たとえばりんごが木から落ちる時、地球もりんごにむかってほんの少し近づく、というのも万有引力です。

 そして、りんごを拾った人間も、りんご自身も、互いにほんの少しずつひかれあう、というのも万有引力です。

 さて、ここまでは感覚的に理解することはやや困難ですが、想像することは容易にできます。

 しかし、それでも「なぜ月は地球に落ちてこないか」ということに関してはぜんぜん説明できません。

 多くの人が、なんとなくそれを図で説明しようとします。

 私は小学校のときの担任の先生におなじ質問をしたことをよく覚えています。
 その先生は図を書きながら、こんな説明をしました。

 「落ちては来るんだけど、落ちるところに地面がないから、ずっと月は地球のまわりを回り続けるんだ」

 この説明は嘘ではありませんが、重大な事実を説明していません。
 実際には落ちるところに地面がないのではなく、力が働く方向に対して既に月の移動速度が十分早過ぎるために落ちてこないのです。なぜなら、万有引力は月と地球を直接引きつけますが、実際に移動する速度ベクトルは既に存在している速度ベクトルとの合力になるからです。これは積分によって求めます。

 プログラミングでこれを説明するのはひどく簡単です。

//地球と月の距離を求める
dx = this.x-160,dy=this.y-160;//地球は画面の中心(160,160)に固定されてると仮定する
R2 = dx*dx + dy*dy; //距離の自乗 三平方の定理から
R = Math.sqrt(R2); //自乗の平方根をとると距離になる

//万有引力の公式から力を求める
F = -0.01 * earthMass * moonMass / R2;
Fx = dx/R*F; Fy = dy/R*F; //力を空間ベクトルに分解する

//運動方程式から加速度を求める
this.ax = Fx/moonMass;
this.ay = Fy/moonMass;

//速度に加速度を積分する
this.vx += this.ax;
this.vy += this.ay;

//位置に速度を積分する
this.x += this.vx;
this.y += this.vy;

 

 積分、なんていう言葉を使わなくても、「速度を毎フレームごとに足しあわせていくと位置がでるよ。加速度をは同じように速度に足し合わせるんだよ」と教えれば、小学生でも理解できます。

 私は事実、自分自身の手で重力シミレーションをしてみたことによって、先生の説明が間違っていて、おそらく先生自身もこの単純な事実を本当には理解していないのだということを直感しました。

 この重力シミレーションのプログラムは、A.K.デュードにーの「コンピュータ・レクリエーション」シリーズに擬似コードとして書かれていて、それを自分の好きなプログラミング言語で書くことで覚えることが出来ました。

 私は最初、このプログラムをBASICで書きましたが、BASICがあまりにも非力なので非常に苦労しました。

 私がBASICによるプログラミング教育を21世紀に行うことに否定的なのは、BASICは飲み込むのが難しく、大半の子供は飽きてしまうからです。

 BASICをやってからC言語やC++言語などのモダンな言語に触れると、その有難味はよくわかるのですが、BASICで挫折してしまってはあまりに勿体無いと思います。

 それ以来、私は新しいプログラミング言語に触れると、幾度となくこのプログラムを書いてみるのです。いかにこうしたプログラムが書きやすくなっているか、ということが私がその言語を評価するひとつの重要なベンチマークでもあります。

 「月が地球に落ちてこない理由なんかどうでもいい」というご意見もあるでしょうが、私は少年がごく普通に抱く疑問に対し、常に寄り添って理解できるよう答えるのが科学の役目だと信じています。

 少なくとも私は、プログラミングという道具を持っていたからこそ、万有引力の真の意味が理解できたと思っています。
 

 今回、奇しくも私の開発したプログラミング端末であるenchantMOONの販売終了が取締役会で決議されました。その決議を受けて、私は120台のenchantMOON端末を長岡市の子どもたちのために寄付することを提案し、長岡市側は快く受け入れて下さいました。

 そしてこの講座を通じてenchantMOONを直接子どもたちに手渡し、遊び方を教えてあげられることをとても嬉しく思いました。
 
スクリーンショット 2015-12-07 6.57.49

この講座では、下は幼稚園児から上は高校生、大学生まで、全ての世代の子どもたちに向けて、プログラミングの考え方と、プログラミングを通じて自分を表現する方法について説明しました。

 このような目的のためには、enchantMOONは非常に有効な道具であることを私は再び確認することができました。

 子どもたちは一瞬で使い方に慣れ、次々と自分の考えをプログラミングで表現しはじめました。
 初めはごく簡単なゲームから、それからどんどん、自分の創意工夫を入れていって、私を驚かせるような使い方まで、その場でどんどん発明していったのです。

スクリーンショット 2015-12-07 7.22.31

 彼らが意欲的に聞いてくれるので、予定より早く講座が終わってしまいそうでした。

 そこで私は、急遽「ハッカソン」をやることに決めました。

 たった15分で、自分の考えをプログラミングで表現するのです。
 果たしてそんなことができるのか、と思われかも知れません。
 手書きとプログラミングが一体化したenchantMOONだからこそ、できるのです。

 「発表したい人!」と聞くと、最初は恥ずかしがっていた子どもたちでしたが、次第にヒートアップしてきて、最後には発表したい子どもたちでいっぱいになりました。

スクリーンショット 2015-12-07 6.55.50

 
 合計3回行い、テーマは、「未来」「冬」「イタリアン(新潟県のB級グルメであるミートソース焼きそば)」を選びました。

 漠然としたテーマ、難しいテーマの方が、実は面白いのです。
 事実、「イタリアン」というゲームにもクイズにもしづらいテーマが、結局は一番盛り上がりました。

スクリーンショット 2015-12-07 8.22.35

 子どもたちが自分たちで思い思いの作品を作り、「こんなゲームが作りたい」「こんな面白いことを考えた!」「僕の作品も見て!」といきいきした目で発表してくれるのはとてもうれしくて、私は胸がいっぱいになりました。

スクリーンショット 2015-12-07 8.26.53

 一番発表で活躍してくれた子どもたちに、私のサイン本をプレゼントするという企画が長岡市の要請であったので、私は少し気恥ずかしい思いをしながらも、「君たちに僕の本をあげるんだけど・・・」と言うと、「欲しい!」という子どもたちがわっと集まってきて、結局用意していた本だけでは足りなくなってしまいました。

 最後に「えー本なんかいらないよ」って言われてしまうんじゃないかとドキドキしながら講義をしていたので、「欲しい」って言ってもらえたことは嬉しかったです。

 結局、欲しい、と言ってきた子供で、数が足りなくなったぶんは僕が自腹で購入して後日送ることにしました。

 私にとって個人的にも大きな経験であり、そしてプログラミング教育のあり方、未来について考えるきっかけになったイベントでした。

 不躾な態度の私に腹を立てずこうしたイベントを実現してくださった川島さんと長岡市役所の皆様にはこの場を借りて謝意を表明させていただきたいと思います。

 今回寄付した120台のenchantMOONは、来年2月から、駅前にある市の公共施設で市民と子どもたちに解放されることが決まったそうです。突然の申し出に全力で対応していただいた長岡市役所の皆様には重ねて御礼申し上げます。

 来年はこういう光景が、enchantMOONを寄付した全国のあちこちのNPOでも繰り広げられることでしょう。
 

 そうしていろんな子どもたちがプログラミングを自分の表現手段のひとつとして使えるようになったら。
 未来はどうなっているんでしょう。

 今から楽しみです。

WirelessWire Weekly

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

登録はこちら

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

新潟県長岡市生まれ。プログラマーとして世界を放浪した末、 '17年にソニーCSLとWiL LLC.とともにギリア株式会社を設立し、「ヒトとAIの共生環境」の構築に情熱を捧げる。 '17年より東京大学先端科学技術研究センター客員研究員を兼務。著書として「教養としてのプログラミング入門(中央公論社)」「よくわかる人工知能 (KADOKAWA)」「プログラミングバカ一代(晶文社)」など。

RELATED TAG