デジタル人材の育成

未踏IT人材発掘・育成事業:2011年度採択プロジェクト概要(矢倉PJ)

1.担当プロジェクトマネージャー

増井 俊之(慶應義塾大学 環境情報学部 教授)

2.採択者氏名

  • チーフクリエータ
    矢倉 大夢(灘中学校)

3.採択金額

  • 1,200,000円

4.テーマ名

  • オープンソースによるオンラインジャッジシステムの開発

5.関連Webサイト

  • なし

6.申請テーマ概要

私はオープンソースによるオンラインジャッジシステムを作ることを提案します。
オンラインジャッジシステムとは、アルゴリズムの問題に対し回答を求めるソースコードを書き、それをアップロードするとサーバー側でコンパイルされ、用意されたいくつかのテストケースを入力として実行されて、その結果が一致するかどうかで正誤判定をするというものです。競技プログラミングの練習をするうえでは、最良の環境です。しかし、日本にローカライズされたオンラインジャッジサイトは非常に少なく、競技プログラミングを学ぶ環境が不足していると感じています。そこで、オープンソースでのオンラインジャッジシステムを開発しようと考えました。
オープンソースにする意義としては、高いセキュリティ性を確保しやすいことや、だれでもローカルネットワークにジャッジシステムを構築できるようにして自分で大会を主催したり、企業などにジャッジシステムを活用した採用を行ってもらったりしたいというものがあります。また、ジャッジシステム自体にもいくつかの特徴があります。
1つ目は、ユーザーならだれでも作問できるということです。現在、自由に作問ができるジャッジシステムは非常に限られていて、作問をしたいのにできないというユーザー層がある程度存在すると考えています。そのために、だれでも作問に挑戦できるようにし、それに伴い、問題を評価できるシステムを搭載し良問を効率良く見つけられるようにします。
2つ目は、インストールが容易であるということです。オンラインジャッジシステムにはすでにシステムが配布されているものも少なからずありますが、カーネルを改造する必要があったり、非常に細かな設定をする必要があったりして、なかなか自分でジャッジシステムを構築し難い状況です。提案するシステムでは、実行環境用のサンドボックスを新たに作ることで、構築の容易さとセキュリティの堅牢さを両立します。
私は、このシステムを通して競技プログラミングの知名度を上げ、興味を持った初心者でも簡単に練習できる環境を提供することで競技プログラミング人口を増やしていきたいと考えています。また、大規模なコンテストを開催するときのみジャッジサーバーの台数を増やすことなどができるように、ジャッジサーバーの分散も視野に入れて開発します。

7.採択理由

最近プログラミングが好きな若者の間で「競技プログラミング」が流行してきている。世界中のハッカーとプログラミングの腕を競うことはスリリングであり、多くの優秀な若者が日夜真剣勝負に取り組んでいる。しかしこのような世界への参入は容易ではない。プログラミングの得意な人でもいきなりトップレベルの参加者と争うことは困難であるし、ましてや初心者にとってはこの世界に近付くことすら不可能である。また、参加者として実績が無いと出題側として参加することもできない。将棋など大抵のゲームはプロでも初心者でも楽しむことができるのに、競技プログラミングへの参加はハードルが高いのが現状である。
矢倉君は、小さな集団内で競技プログラミングを開催したり初心者向けのプログラミング学習システムを構築したりすることができる競技プログラミング支援システムの基礎となるオンラインジャッジシステムを提案している。地味な提案であるともいえるが、うまく普及させてプログラミングコミュニティに大きな影響を与えることを期待している。