高橋: 私は今までも個人的にいくつかプログラミングコンテストを開催したことがあったのですが、Google Code Jam のように何千人もの人が一度に参加するようなコンテストは今回が初めてでした。コンテストは些細なミスやバグがあっただけで台無しになってしまいますから、そういった事態が起こらないように細心の注意を払ってプロジェクト運営を進めたり、コンテストシステムの開発を行ったりすることは、とても良い経験になりました。 末松: コンテストの最中に運営側の問題が発生したのですが、参加者のみなさんにとって不公平なことが起きないように気をつけながらチームメンバーが問題に対処している様子を間近で見て、勉強になりました。
Google Code Jam Japan でもっとも思い出に残る出来事は?
Frank: チームと共に活動し、ポイントシステムを考えたり、長時間のディスカッションを続けたりしたのが思い出に残っています。とても楽しかったです。 高橋: コンテストシステムの日本語化が一段落ついたところで、バグの洗い出しのために社内でミニコンテストを開いたんです。そのコンテストは問題を解くのではなく、コンテストシステムのバグを探し、見つけたバグの数を得点として競うというものです。上位の数名には景品が贈られるのですが、バグが少なければ開発者の私たちが景品を貰えるということになり、開発にも気合が入りました。しかしその甲斐なく、散々な結果だったんですけどね。 末松: チームを率いていた Frank への感謝をこめて、問題作成チームはこっそりと全ての問題文に "フランク" という人物を登場させました。Frank は日本語が得意ではないので、ばれないだろうと考えたのです。でも、コンテストの決勝戦の朝オフィスに着いた時には登場人物が "パスカル" に書き換えられていました。前日に気づいた Frank がこっそり書き換えていたのです。(注:末松のあだなはパスカルです)
Google Code Jam Japan チームのメンバー達
(左から): Frank Chu, 末松 宏一, 高橋 周平
Google Code Jam Japan 開催にあたって心配なことはありましたか?
Frank: 初めての Google Code Jam Japan だったので参加者がどれくらい集まるかが分からなかったので、すこし不安でした。結果的には大人数の日本の方々に Google Code Jam Japan に参加して頂きました! 高橋: Google Code Jam を英語以外で開催するのは初めてだったので、コンテストシステムは一から国際化対応をする必要がありました。これが意外と大変で、本番までに間に合うかが心配でした。 末松: 充分な人数の参加者が集まるのかどうか、また、参加者が集まりすぎてシステムが耐えられなくならないかが心配でした。結果的には 2,000 人近い方に登録していただき、人数に関する問題は発生しませんでした。 小西: 今回は初めてコンテストに参加する方が多いだろうということで、参加したいけれどどうしたらよいのかわからないという人が出るだろうと予想されました。これに対処するためマニュアルとコンテストサーバをすべて日本語化し、日本語の練習問題を用意することにしました。また、初参加の方とベテランの方で問題文の解釈の仕方にズレが出ないように、問題文が暗黙の仮定を置いていないかなどを特に丁寧にチェックしました。
今後の開催にあたって、変えていきたいことはありますか?
高橋: 今回の Google Code Jam Japan は、グローバルの Google Code Jam に元々参加してくださっていた方々はもちろん、初めての方にもたくさん参加して頂けました。今後ももっと沢山の人にプログラミングコンテストを楽しんでもらう機会を提供していきたいです。 末松: 中学生・高校生に向けたコンテストには意味があるのではないかと思っています。コンピュータ科学やプログラミングの楽しさを若いうちに知ってもらいたいからです。 小西: 問題の背景など、深く踏み込んだ解説の機会を設けられればいいなと考えています。
何が問題を興味深くしているのかや、問題に対する複数の解法の存在、どのように考えて問題の解法を思いつくのかや、実際にコンテストで使われたアルゴリズムが日常使っているアプリケーションで使われていることを説明できれば、アルゴリズムについて考えることの楽しさを共有できる人がもっと増えると信じています。
あなたにとって Google Code Jam Japan とは?
Frank: 私は大学時代に実際に Google Code Jam に参加しました。その結果、様々な方とお会いし、お話する機会があり、さらに、プログラミングに興味を持っている人たちと話もたくさん出来、貴重な経験をすることが出来ました。その貴重な経験を与えてくれたコミュニティーに恩返しとしてこれからも Google Code Jam を続けたいと思います。 高橋: Google Code Jam は私の人生を変えたコンテストです。私は学生時代に Google Code Jam に参加していて、2006 年には Google ニューヨークオフィスで開かれた決勝大会に出場したことがあります。単身で海外に渡るのは初めてで緊張しましたが、初めて Google のオフィスに入り、その自由な文化に触れ、他では得難い貴重な経験をすることが出来ました。今、私が Google にいるのは、その時の経験があってこそだと思っています。今は Google Code Jam を開催する側となり、参加する方々に私がかつて得たような素敵な経験を提供することができればと思います。 末松: Google Code Jam を含めたプログラミングコンテストは、他の参加者とつながりを持って競い合いながら自分のアルゴリズムに関する知識を身につけることができます。今までは参加する側でしたが、場を提供する側になれることを嬉しく思っています。 小西: 日本中の賢いプログラマ達同士が一堂に会するお祭りです。
Google Code Jam Japan 2011 予選スタッフ
Problem A. カードシャッフル 出題: 松本 宜丈, 吉野 剛史, テスト: 泉 祐介
Problem B. 最高のコーヒー 出題: Frank Chu, 泉 祐介, テスト: 吉野 剛史
Problem C. ビット数 出題: 山内 暁, 牟田 秀俊, テスト: 牟田 秀俊
解答作成、その他準備: 泉 祐介, 北村 裕太, 小西 祐介, 吉野 剛史, 三廻部 大, 牟田 秀俊, Frank Chu, Tomek Czajka
アプリケーション国際化対応: 末松 宏一, 高橋 周平
Google Code Jam Japan 2011 決勝スタッフ
Problem A. アンテナ修復 出題: 松本 宜丈, 吉野 剛史, テスト: 北村 裕太
Problem B. バクテリアの増殖 出題: 山内 暁, 北村 裕太, テスト: 吉野 剛史
Problem C. ワイルドカード 出題: 松本 宜丈, テスト: 小西 祐介
Problem D. クローゼットルーム 出題: 小西 祐介, 牟田 秀俊, テスト: 小西 祐介
Problem E. 無限の庭園 出題: 野田 久順, 菅原 悠, テスト: 川中 真耶
解答作成、その他準備: 泉 祐介, 川中 真耶, 北村 裕太, 小西 祐介, 菅原 悠, 並木 洋平, 吉野 剛史, 松本 宜丈, 三廻部 大, 牟田 秀俊, 山内 暁, Frank Chu
アプリケーション国際化対応: 末松 宏一, 高橋 周平
※ 次回のグローバルな Google Code Jam 2012 は、米国時間 3 月 13 日に登録開始となる予定です。詳細はこちらをご覧下さい。