29回目の今年は、84か国から308人の精鋭たちがイランのテヘランに集まり、プログラミングの腕を競った。日本からは4人の選手が出場し、金メダル3、銀メダル1と国別メダル獲得数で1位に輝いた。開成高等学校2年生の髙谷悠太さんは、六つの課題のうち五つで満点を取り、総合成績1位という快挙を成し遂げた。理事長でもあり、また、U-22プログラミングコトンテストとパソコン甲子園では審査委員長を務めるなど、プログラミングを志す若者をさまざまなかたちで応援している。中学生と高校生、高専生の一部が対象のIOIは、問題を理解してアルゴリズムを考え、プログラムに仕上げて、動かして、求められている正しい答えを出し、決められた時間内に結果を出す競技。世界各国から国内予選を勝ち上がった最大4人が出場する個人戦だ。競技は2日間で、1日5時間で3問ずつの問題を解いていく。スポーツのオリンピックと同じで各国に委員会があり、委員会が登録した国または地域から選手が送り込まれる。日本代表の選考は、1000人ほどが参加するインターネット予選から始まる。これを通過したAランク上位80選手を東京に招いて予選会を実施し、トップ20選手が春休みに1週間の合宿を行う。ここで本大会と同じ条件で同じレベルの問題に取り組むコンテストを4回行い、勝ち残った4人が日本代表としてIOIに出場する。トップ中のトップの戦いだ。IOIは、国際的視野でプログラミング力にすぐれた人材を発見し、その人材たちが競いあうことで能力を育むことを目的に開催している。10年後、20年後に「おお、君とあのとき戦って負けたな、勝ったな」と、国境を越えた仲間意識が共同研究に結びつくことも期待している。出題される問題は国際委員会が英語で議論してつくるが、問題解決力を競うという観点から、選手にはそれぞれの国の言葉に翻訳したかたちで出題される。引率者は選手のサポートと同時に、問題文の翻訳も手がける。大会は1989年にブルガリアのプラベツで第1回が開催され、日本は94年の第6回スウェーデン・ハニンゲ大会に初めて参加。96年まで3回連続で選手団を送った。プログラミング教育のプの字もなかった当時、学校の反応も悪く、選手集めは大変だった。経済情勢の悪化もあって97年に参加を取りやめ、以後9年間参加できない期間が続いた。小泉純一郎氏が「なぜスポーツばかり盛んで科学技術に関しての世界コンテストへの参加が少ないのか。日本からも参加者を送り出せ」と号令をかけたことをきっかけに、国からの補助金を得て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に優秀な人材が集まる。国際大学対抗プログラミングコンテスト(ICPC)は、3人一組の大学対抗コンテストだ。チーム戦で1チームにつき1台のPCで課題に取り組む。全世界でおよそ3万人以上が参加し、決勝大会には世界から100を超えるチームが集まる。表彰は、成績順にほぼ3チームずつ、金、銀、銅のメダルが授与される。日本がICPCに初めて参加したのは98年で、IOIへの参加がとぎれていた時期だ。年を経て、IOIを経験した選手たちがICPCに参加しはじめ、ICPCのレベルが上がってきた。IOIの代表には選ばれなくても、予選でAクラス程度まで残った選手が再びICPCにチャレンジするというパターンもある。いずれにせよ、IOIをくぐり抜けた選手がICPCに出るようになってから、決勝大会でも上位に入るようになってきた。本社を置くこうした中学校から高校、大学まで、最高レベルのコンテストをくぐり抜けてきた才能が、社会で徐々に頭角を現しつつある。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に出場したとき、前評判では秋葉さんのチームは絶対金メダルを取ると思われていた。難問につまずいて金メダルを逃した。その悔しさから、後輩たちには頑張ってほしいと、コンテストで好成績を収めるポイントをまとめたもの。『プログラミングコンテスト攻略のためのアルゴリズムとデータ構造』。どちらも、非常にすぐれたテキストだ。