毎年、各国のトップエンジニアの卵が集結するプログラミング世界大会をご存知であろうか?
日本ではまだ一般的にあまり知られていない知る人ぞ知るプログラミング国際大会。
しかし、この大会は世界中の超優秀な理系人材が集まる場所であり、この大会情報は毎年絶対にチェックを外してはならないのだ。どの国にどんなエンジニアがいるのかという特徴を一気に知ることのできる機会はおそらくこの大会が最大であろう。
そこで、来年度からGlobity 読者の皆様がスムーズに情報をキャッチできる様に今回はICPCを簡単に紹介する。
ICPC(The International Collegiate Programming Contest)とは?
毎年1年に1回 (今年 2019年は 3月31日〜4月5日までの開催)全世界の大学生を対象に開催されるプログラミング大会。111ヶ国、3000以上の大学から5万人以上の大学生が参加する世界最大・最古のプログラミングコンテスト。
1970年に初開催の後、アメリカ・カナダで急速に拡大した。そして1977年以降からは、世界各地の大学と共同で開催されるようになり拡大し続けた結果、現在のトーナメント形式になった。
ICPCは、ICPC財団のもと開催されており、その本部は現在Baylor University(アメリカ/テキサス州)に本部を置いている。Huaweiなどがこの大会の協賛を務めている。
試験詳細
1チーム3人で構成され、5時間で8-12問のプログラミングの問題を解く。使用言語は Java、C、C ++、Kotlin、Pythonであり、問題出題言語は英語である。英語がわからない場合は機械による自動翻訳を使うことができる。
各チーム 1台のコンピュータ・電卓が用意されており、USBや印刷物などでのデータ持ち込みは原則禁止。
その他、自分のコンピュータや端末・電卓・その他の電子機器をコンテストエリアに持ち込むことは禁止されている。
過去に世界大会に2年出場・もしくは地区予選大会に5年出場した学生は参加権利を失う。
選考過程
選考は、大学ごとのローカル選考→国ごとの地区選考(省かれることもある)→各地域ごとの地区選考→世界大会(ファイナル)といった順番で行われる。
ちなみに日本から参加する場合は、アジア地区となる。
評価基準・評価
与えられた問題を解く順番は特に問われない。
回答を提出するとプログラムはテストデータを入力として実行される。
プログラムが不正に終了した場合や、正しい解でなかった場合は選手にその旨を伝えられる。その場合選手は、何度でも回答を修正することができる。しかし、各問題ごとに規定された時間内に回答することができなければ、不正解として扱われる。
【コンテストの順位決定方法】
①正解した問題数
②正解した問題の回答時間 (①で引き分けになった場合)
がポイントとなり評価される。
※しかし②の正解した問題の回答時間に関しては、1回の不正解の提出ごとに20分が加算される。
過去5年間の結果から見る国別エンジニア情報
これらの結果をみるとやはり、ロシアの大学生エンジニアの技術力の高さが伺える。
これらで入賞した大学生は将来どのように成長し、国そして世界を創り上げていくエンジニアになっていくのだろうか。今後の彼らの活躍には目が離せない。
そして、毎年上位常連校は東欧・アジアの大学であり、彼らはその地域の中で同じ世代のエンジニアを刺激し、そして刺激されながら成長・進化を遂げ続けるという環境を想像するだけでも、エンジニアを育てる環境の重要さを感じる。
「朱に交われば赤くなる」とは言うが、大学生を取り囲む環境というのは非常に重要である。日本が今後世界を動かすようなプロダクトやサービスを生産し続けていくためには「大学生」を取り巻く環境をいかに工夫し、技術力やビジネス力を養うのかというのは日本全体で取り組み続けねばならない課題なのかもしれない。
世界の大学生の技術力の情報というのは日本にいるだけではなかなか触れる機会すらない。このような機会や情報を日本の隅々にもきちんと届けることがまずは重要である。
その手段として、日本で働きたい外国人が日本で働けるような環境をつくることや、日本人が地球規模で活躍するような環境をつくり出すことは必要なのではないか。このような環境づくりはいづれ、日本企業が「日本らしさ」を残しながら世界に愛されるプロダクトやサービスをつくり出す未来へと繋がってゆくであろう。
【参照】
ICPC公式HP
(執筆・図解 : 馬本ひろこ)