世界を舞台に戦うプログラミングのスーパースターを育てる──情報オリンピック日本委員会の筧捷彦理事長に聞く
2017年11月16日
ニュース
高校生以下の生徒・学生を対象とした国際科学オリンピックの一つ、国際情報オリンピック(International Olympiad in Informatics, IOI)。29回目の今年は、84か国から308人の精鋭たちがイランのテヘランに集まり、プログラミングの腕を競った。日本からは4人の選手が出場し、金メダル3、銀メダル1と国別メダル獲得数で1位に輝いた。また、開成高等学校2年生の髙谷悠太さんは、六つの課題のうち五つで満点を取り、総合成績1位という快挙を成し遂げた。
長年コンテストを通じて若者のプログラミング教育に携わってきた情報オリンピック日本委員会理事長の筧捷彦早稲田大学名誉教授に話を聞いた。筧理事長は、大学生を対象とするACM-ICPC 国際大学対抗プログラミングコンテスト(ICPC)でアジア地区予選を主催する情報科学国際交流財団の理事長でもあり、また、U-22プログラミングコトンテストとパソコン甲子園では審査委員長を務めるなど、プログラミングを志す若者をさまざまなかたちで応援している。
■日本代表は1000人のうちのトップ4人
中学生と高校生、高専生の一部が対象のIOIは、問題を理解してアルゴリズムを考え、プログラムに仕上げて、動かして、求められている正しい答えを出し、決められた時間内に結果を出す競技。世界各国から国内予選を勝ち上がった最大4人が出場する個人戦だ。競技は2日間で、1日5時間で3問ずつの問題を解いていく。スポーツのオリンピックと同じで各国に委員会があり、委員会が登録した国または地域から選手が送り込まれる。
日本代表の選考は、1000人ほどが参加するインターネット予選から始まる。これを通過したAランク上位80選手を東京に招いて予選会を実施し、トップ20選手が春休みに1週間の合宿を行う。ここで本大会と同じ条件で同じレベルの問題に取り組むコンテストを4回行い、勝ち残った4人が日本代表としてIOIに出場する。まさにトップ中のトップの戦いだ。
IOIは、国際的視野でプログラミング力にすぐれた人材を発見し、その人材たちが競いあうことで能力を育むことを目的に開催している。さらに、10年後、20年後に「おお、君とあのとき戦って負けたな、勝ったな」と、国境を越えた仲間意識が共同研究に結びつくことも期待している。
出題される問題は国際委員会が英語で議論してつくるが、問題解決力を競うという観点から、選手にはそれぞれの国の言葉に翻訳したかたちで出題される。日本選手団は、選手4人と出場経験のあるOB・OGを中心とする引率の団長、副団長、随行員の7人で構成する。引率者は選手のサポートと同時に、問題文の翻訳も手がける。
大会は1989年にブルガリアのプラベツで第1回が開催され、日本は94年の第6回スウェーデン・ハニンゲ大会に初めて参加。96年まで3回連続で選手団を送った。しかし、日本の義務教育、高校教育ではプログラミング教育のプの字もなかった当時、学校の反応も悪く、選手集めは大変だった。さらに経済情勢の悪化もあって97年に参加を取りやめ、以後9年間参加できない期間が続いた。
しかし94年頃、当時総理大臣だった小泉純一郎氏が「なぜスポーツばかり盛んで科学技術に関しての世界コンテストへの参加が少ないのか。日本からも参加者を送り出せ」と号令をかけたことをきっかけに、国からの補助金を得て2006年以降毎年選手を送り出している。
現在、委員会に登録のある国と地域は87で、ここ数年は毎年80か国以上から300人を超える選手が集まる。表彰はスポーツのオリンピックと同じで、メダルを授与する。成績の上位半分までにメダルを与えることになっていて、およそ上位12分の1までが金メダル、次いで12分の3までが銀、12分の6までが銅メダルが授与される仕組みだ。
メダル獲得数をもとに独自に算出した国別順位では、日本は当初20位あたりに位置していたが、このところ11位、5位と着実に上昇して、今年はついに1位まで上りつめた。ダントツに強かった年だった。個人成績でも総合1位、4位、5位、59位と過去最高だ。総合1位に輝いた髙谷さんは、中学3年生のときに日本代表選手として参加し、高校3年生の今回まで4回連続で金メダルを獲得した。そのうえ、今年は数学オリンピックでも全体で1位を獲得した逸材だ。将来は研究者になりたいと話している。
次のIOIは、2018年9月に日本の茨城県つくば市で開く。およそ2億円以上もの経費がかかる。政府からの援助もあるが、情報オリンピック日本委員会でも1億円以上の寄付などを募らなければならない。ぜひ皆さんに協力をお願いしたい。少しずつ準備を進めているが、2020年ごろからは、国内予選の仕組みを変える予定だ。簡単な問題で多くの人が挑戦できる機会をいくつか設け、合格したら2次予選に進む。参加者が増えることで、プログラミングに興味をもつ人が増え、裾野を広げる手助けになるだろう。
スーパースターが"普通に"就職するという大問題
06年に参加を再開して以降、48人の選手はほぼ全員が東京大学の数学科か情報科学科に進学した。ただし、全員が博士課程に進むわけではなく、修士課程までで卒業して、IT企業に"普通"に就職する人もいる。ここが最大の問題だ。
経営者は「ITの時代。IT技術者は命」などと言いながら、就職の仕組みは依然としてそうなっていないように思う。昔からのコンピュータメーカーでも企業でも同じだ。採用時点では、専攻とは関係なく、4年制大学の卒業者を横並びで、学部を問わずに採用する。こうした古いスタイルの人の採用方法から抜け出していない。その結果、博士課程を出て、特殊能力が光っている人を採りたがらない傾向にあるようにも思える。
アメリカでは、学生時代にプログラミングやコンピュータサイエンスを必死にやった人たちがシリコンバレーで会社を興し、それがgoogleになり、Yahooになった。そんな例は日本にはない。だから、コンピュータを極めた人はほとんどがgoogleのような企業に就職していく。名のある海外メーカーの日本支社に勤めても、結局技術を生かすのはちょっとした日本語化ぐらいで、営業に回されたりする。世界中からできる人を採るgoogleに優秀な人材が集まる。
大学生が対象のACM-ICPC 国際大学対抗プログラミングコンテスト(ICPC)は、3人一組の大学対抗コンテストだ。チーム戦で1チームにつき1台のPCで課題に取り組む。全世界でおよそ3万人以上が参加し、決勝大会には世界から100を超えるチームが集まる。表彰は、成績順にほぼ3チームずつ、金、銀、銅のメダルが授与される。日本がICPCに初めて参加したのは98年で、IOIへの参加がとぎれていた時期だ。
しかし年を経て、IOIを経験した選手たちがICPCに参加しはじめ、ICPCのレベルが上がってきた。IOIの代表には選ばれなくても、予選でAクラス程度まで残った選手が再びICPCにチャレンジするというパターンもある。いずれにせよ、IOIをくぐり抜けた選手がICPCに出るようになってから、決勝大会でも上位に入るようになってきた。
こうした中学校から高校、大学まで、最高レベルのコンテストをくぐり抜けてきた才能が、社会で徐々に頭角を現しつつある。その一つが、Preferred Networks(PFN)だ。IoTにフォーカスした深層学習技術のビジネス活用を推進する会社で、創業者の西川徹社長は日本がICPCに参加しはじめたころのOBだ。さらに、初期のIOIの代表6人のうち、1人はgoogleに入ったが、残り5人がPFNに入社した。AIを中心に世の中を技術で変えていこうという気概をもって取り組んでいる。トヨタ自動車が8月に105億円の出資をしたことで話題になった。シリコンバレーのベンチャー企業のような企業が日本にも生まれつつある。
■裾野を広げ、誰もがプログラムを通じて工夫ができる社会に
少なくとも学生のコンテストでは、世界でトップを狙うことができる超スーパースターが登場しはじめている。しかし、裾野の広がりはまだまだだ。2020年に小学校で開始されるプログラミング教育は、まだ具体的な中身が定まっていない。「プログラミングをやらせれば、将来のプラスになるだろう」と塾に通わせる親は増えているが、塾で教えるプログラミングでは、子どもの夢を育てたり、「自分でなにかやってみよう」という力を育てたりすることにつながっていないように思う。
世の中では、「情報の利活用が必要だ」と叫ばれている。とはいえ、まだまだプログラムは「オタクがやること」「下請けにカネを払って書かせるもの」と考える人たちは多い。それを変えていかなければならない。
コンピュータを使って、いながらにして世界中の情報を集めて、共有できるようになってきた。しかし大事なことは、やり方を考えて、自分で手を動かしてプログラムを書けば、コンピュータが自分の代わりに仕事をしてくれることを、誰もが知って、使うこと。道具としてのプログラミングを、あたかもトンカチやドライバの使い方を覚えるように誰もが身につければ、社会は変わっていく。
例えばU-22プログラミングコンテストは、IOIやICPCのようなアルゴリズムの戦いではなく、ありものの技術の組み合わせで、「おもしろい」「役立つ」「楽しい」ことを実現するコンテストだ。今年の作品は、点字を読み取ったり、シナリオの法則を見つけたりという目的を、既存の技術を組み合わせて実現していた。コードを書くことに意味があるわけでなく、技術を組み合わせて何を実現するかに意味があるというコンテストだ。これからの私たちが身につけなければならないのは、実際につくる力。すなわち、それがプログラミング力ということだ。「ほら、できるじゃないか」という力を、これからはみんながもたねばならない。そのために、学校教育は重要だ。
最後に、IOIやICPCに挑戦する人たち向けのとてもよいテキストを2冊紹介したい。一冊は、ICPCの選手として出場し、現在PFNで活躍している秋葉拓哉さんたちが著した『プログラミングコンテストチャレンジブック』(マイナビ出版)だ。現在は改訂版も出ている。ICPCに出場したとき、前評判では秋葉さんのチームは絶対金メダルを取ると思われていた。しかし、難問につまずいて金メダルを逃した。その悔しさから、後輩たちには頑張ってほしいと、コンテストで好成績を収めるポイントをまとめたもの。もう一冊は、パソコン甲子園を主催している会津大学で教鞭を執る渡部有隆上級准教授の『プログラミングコンテスト攻略のためのアルゴリズムとデータ構造』。どちらも、非常にすぐれたテキストだ。(談)
筧捷彦理事長の略歴
1970年 東京大学工学系大学院修了 工学修士
1970年 東京大学工学部 助手
1974年 立教大学理学部 講師
1978年 立教大学理学部 助教授
1986年 早稲田大学理工学部 教授
2007年~2016年3月 早稲田大学基幹理工学部 教授
2016年 早稲田大学 名誉教授
1998年 ACM-ICPC 日本ICPC Board 議長
2003年 パソコン甲子園プログラミング部門 審査委員長
2010年 特定非営利活動法人情報オリンピック日本委員会 理事長
2016年 公益財団法人情報科学国際交流財団 理事長
(聞き手・構成・写真:ITジュニア育成交流協会 道越一郎)