【19-09】名門大学への推薦以外に情報オリンピック参加で得られたものとは?
2019年9月10日 張蓋倫(科技日報記者)
北京師範大学の公式サイトより
8月16日、中国コンピューター学会は突如、全国青少年情報オリンピックリーグ(National Olympiad in Informatics in Provinces, NOIP〔個人戦〕)の開催を当面中止すると発表した。
NOIPは、中学生グループと高校生グループに分かれて開催されていた。開催中止の発表を受けて、参加予定者は出端をくじかれた形となった。しかし、業界関係者は同大会が廃止されることはなく、名称を変えてまた開催されるようになるのではないかと見ている。
実際のところ、NOIPは多くの人にとって、アルゴリズムコンテストに参加するきっかけとなってきた。それら参加者のほとんどは大学に進学してからも、その道を歩み続け、ACM国際大学対抗プログラミングコンテスト(ACM-ICPC)に参加するため、引き続き腕を磨いている。
こうしたコンテストへの参加に向けて努力する日々が、彼らにとって青春時代の良き思い出となっている。
「問題を解いていないと、なんだか胸にぽっかり穴が開いたように感じてしまうほど」
ACM-ICPCは、世界で最も影響力ある大学生を対象にしたプログラミングコンテストだ。ACM-ICPCで優秀な成績を収めている大学生のほとんどは、NOIPやNOI(全国青少年情報オリンピック、National Olympiad in Informatics〔団体戦〕)で他の参加者と切磋琢磨した経験を持つ。アルゴリズム問題に立ち向かうのが、それら「コンピューターのエキスパート」の生活の一部となっている。
中学生や高校生の時にコンテストに参加するのは、当然ながら良い成績を収めて名門大学に入るきっかけにしたいなどの現実的な目的もあるかもしれないが、それと同じくらい彼らが頑張り続ける原動力になっているのが、情熱だ。
大学に入ってからも、コンテスト参加を中心とした生活を送っている学生には、それぞれ異なる理由がある。例えば、北京師範大学情報科学・技術学院の大学院生・孫科さんは、「高校生の時、自分がいた省も通っていた学校も、この分野に力を入れていなかったため、NOIで良い成績を残すこともできなかった」と、悔しさが動機になっていることを語り、情報オリンピックで好成績を残し、推薦で北京大学に入学した吉如一さんも、「高校生の時、ナショナルチームに選ばれて、国の代表として戦うことができなかった。大学に入ってからも引き続きコンテストに参加したいと思うようになった。高校の時、2年間コンテストに参加するために努力したので、それを止めることはできなかった。それに、問題を解いていないと、なんだか胸にぽっかり穴が開いたように感じてしまうほどだった」と話す。
大学で新たにコンピューターを専攻した新入生は、コードを書くことを学び、それを練習するのに非常に多くの時間を費やさなければならないが、高校時代にコンテストに参加していた学生は、初めからそれらを楽々とこなすことができる。そして、他の学生が練習などに費やしている時間を、コンテストに向けた準備など、他の事をするのに使うことができる。
「学んだことがあるアルゴリズムの知識やプログラミング技術を駆使して、問題を一問一問解いていくと、じっくり考えないと解けない時もあるし、間違えることもあるが、最終的に問題を解くことができた時は、とても達成感がある。これがアルゴリズムコンテストの最大の魅力」と孫科さん。
ACM-ICPCには、地区予選と世界大会がある。チームは5時間以内に与えられた8-13問のプログラミングの問題を解かなければならない。高校生が参加する情報オリンピック大会と比べると、ACM-ICPCで出される問題を解くにはさらに幅広い知識が必要だ。孫科さんは、「超難問というのはないが、プログラミングやアルゴリズム、データ構造に限らず、編集の原理、コンピューター構成の原理など、大部分のコンピューターに関する専門的な知識のほとんどがカバーされている」と説明する。
プレッシャーの中で各国のエキスパートと戦うACM-ICPCの世界大会
吉如一さんは、高校生の時にコンテスト参加のための基礎を固めることができていれば、地区予選でメダルを取るのはそれほど難しくはないと思っている。そして、実用的かどうかという観点で考えれば、地区予選でメダルを取ることができれば十分で、世界大会に参加しても、それに見合ったメリットを得るのが難しいこともはっきりしているとし、「世界大会はレベルが非常に高く、相当必死に勉強しなければメダルを取ることはできない」としている。
吉如一さんは、2018年の決勝戦前の半月間、チームメイトと共に、放課後のほとんどの時間を練習に費やし、授業がない日は、朝から晩まで部屋にこもって練習していたという。
しかし、コンテストに対する情熱は理性を上回るという「投資利益率」の分析では、コンテスト参加者らは学校や国家を代表して、世界各地からきた学生らと一戦を交えたいという熱い思いを抱いている。
昨年、北京師範大学を代表して参加した孫科さんは、「世界中から集まったエキスパートと戦えるということだけを考えても、とてもすごいこと。オリンピック出場のように、気分が高揚し、手が震えるというのを体験できる」と振り返る。
2018年ACM-ICPCの世界大会が北京大学邱徳抜体育館で開催された。吉如一さんが世界大会に参加するのはその時が2回目だった。同大会には、51ヶ国・地域から140チームが参加した。「プレッシャーがすごかった」。吉如一さんが当時を振り返ってまず出てきた言葉だった。自分の通う大学がホスト校であるというのは、メリットでもあるが、周囲からの大きな期待を背負うことにもなる。
コンテストでは、紙に書かれた問題が参加者に配られる。参加者がまずすべきことは、それを見て、その難易度を判断し、問題をどのように解いていくかの作戦を立てることだ。3人一組のチームで1台しかコンピューターを使うことができないため、1人がコンピューターを操作している間、他の2人は時間を最大限効果的に使って他の問題の解き方を考えていかなければならない。
順位の決定に最も影響するのは、正解した問題の数だ。次に、開始時から各問題の正解を導き出した時点までの経過時間も重要となる。解答はその場で公開され、不正解を出すごとにペナルティとして20分が加算される。
コンテスト中、最初の4時間は全てのチームがどの問題を正解したかやその時点での順位などがリアルタイムでスクリーンに表示されるが、最後の1時間は順位が公開されることはなく、各チームは自分たちの順位しか知ることができないというルールになっており、参加者にわざとプレッシャーを与えているかのようで、興味深い。
こうした成績をオープンにするメカニズムは、また参加者たちのプレッシャーに耐える能力を試していると言える。最初の4時間は、自分たちが上位にいるのか、出遅れているのか、スクリーンを見れば一目で分かる。順位がリアルタイムで上下し、どのチームにとっても落ち着いて問題を解くというのは至難の業だ。
そのように非常に緊迫した雰囲気でコンテストは進められるが、その緊張をほぐすかのような計らいもある。あるチームが一つの問題に正解すると、そのチームのブースにどの問題を正解したかを色で表す風船が掲げられるのだ。最初に問題を正解したチームには特別の色や形の風船が掲げられる。
吉如一さんによると、世界大会の日、チームの3人共コンディションが悪く、コンテストが始まってすぐに劣勢となり、問題がなかなか解けず、上位チームから3問も遅れ、「コードを書くとき、手が震えていた」程だったという。そして、後半戦になって、やっとチームは調子を取り戻した。
最終的に、北京大学は3位となった。
「うれしい気持ちと、もっとできたのではという気持ちがある中、コンテストは終わった」。ACMの規定では、過去に世界大会に2回出場した大学生は出場権利を失う。そのため、大学2年生の吉如一さんにとって、これが最後の世界大会出場となり、その後は、大学のACM-ICPCチームでコーチとして指導に当たっている。
達成感もあれば心残りもあるコンテスト参加の道
もちろん、吉如一さんの前途は明るい。プログラミングの達人である彼は、まず仕事について心配する必要は全くないだろう。
孫科さんと吉如一さんは別のさまざまなコンテストにも参加してきた。本音を言うならば、アルゴリズムプログラミングコンテストがたくさんありすぎるというのが現状だ。グーグルやフェイスブック、美団、字節跳動、百度など、数多くのIT企業がコンテストを開催している。吉如一さんは、どんなコンテストも、参加者の「大型オフラインイベント」であると感じている。
楊博洋さんもアルゴリズムコンテストに参加したことがあり、NOIPにも、ACM-ICPCにも参加したことがある。そんな彼が今所属するコンピューター教育企業・計蒜客も、コンテスト「計蒜之道」の開催を計画している。
楊博洋さんは取材に対して、「実際には、『集まること』がコンテスト開催の目的の一つだ。若く才能に満ちた若者を集めて、彼らと企業が意思の疎通を図れる架け橋にしたい。企業は、学生に、特別の面接の機会や入社のグリーンチャンネルを提供し、前もって良い人材を探し、それを確保することができる」との見方を示した。
しかし、たくさんのコンテストの中でも、ACM-ICPCは依然として、実質の価値が高いコンテストだ。楊博洋さんは、自身を例にして、「それに参加した経験を履歴書に書くと、ポイントアップする。自分の会社が人材を探すときも、それに参加した経験がある人は高く評価する。ACM-ICPCは3人1チームで、学生の総合的素質が試される。コードを書く能力だけでなく、チームワーク、コミュニケーション能力、プレッシャーに耐える能力も試される。これら全てはソフトウェアやアルゴリズムのエンジニアに必要な能力だ。コンテストに参加するために一生懸命努力できるということは、この業界が大好きだということでもある。そのような人ほど、業界で良い成果を上げやすい」と語る。
コンテストに参加したおかげで、吉如一さんはたくさんの知識を習得しただけでなく、いろんな人と知り合うこともできた。コンテストも小さな交流の輪で、参加者同士は顔馴染みになり、「これも貴重な財産」だ。
しかし、参加者の多くは、その力を科学研究に向けるようになっている。吉如一さんは、「コンテスト参加者の輪」の中ではエキスパートであるものの、科学研究実験室に行くと、自分と同年齢の人たちは既に他の分野でかなり自分より前に進んでいることに気付いたという。そして、「コンテストにたくさんの力を注いだため、確かにあきらめなければならなかったものもあるものの、後悔はしていない」とし、焦ることもあるが、気持ちを整理して、「北京大学の博士課程に進学するという、新しい道で、一生懸命努力することにした」と話す。
孫科さんも、コンテストに参加して得ることができた収穫を一つずつ数え、「アルゴリズムの知識、プログラミングの能力、コミュニケーション能力......。一番大切なのはコンテストに参加して積むことができた特別な経験だ」とし、「心残りもあるが、達成感もある。でも、何かを得そこなったとは思わない。全ての道を歩くことなんて誰にもできないのだから」と話した。
※本稿は、科技日報「除了保送名校,競賽生還得到了什麼」(2019年6月11日付7面)を科技日報の許諾を得て日本語訳/転載したものである。