第34回U-20プログラミング・コンテスト
HOME コンテストについて 概要・応募要領 過去の入選作品 実行委員紹介 よくある質問
お問合せ
受賞者のその後
実行委員コラム
実行委員からのメッセージ
外部リンク
経済産業省
情報化月間ポータルサイト
U−20プログラミングコンテストバナー
バナーを配布しています。
詳細はこちらよりご覧ください


ツイナビ公認アカウント
リーフレットダウンロード
 
相互リンク
セキュリティキャンプ
ITジュニア
ICT
パソコン甲子園
スーパーコンピューティングコンテスト
Rubyプログラミングコンテスト
JOI
U-16 釧路プロコン
asahikawa
 

受賞作品紹介

≪ 受賞作品一覧

経済産業大臣賞
ArrowJudge JISHIN GETTER Fulyn Labアルデ SHelper
作品詳細(ArrowJudge)
作品ジャンル
学習&教育
作品概要
このソフトウェアは、オンラインジャッジを簡単に実現するためのオープンソースソフトウェアです。
最も中心となる機能は、ユーザーの提出したソースコードをサーバー側で実行し、正しく要件を満たしているかをジャッジするというものです。この機能では、CPU時間やメモリ使用量を細かく制限、取得することができ、複数の入力に対してもジャッジすることが可能です。また、どんな言語でも処理系のインストールを行えば使用することができ、キューイングシステムによって、並列してジャッジすることもできるようになっています。
また、オンラインジャッジのシステムとしても、いままでには無いような様々な機能があり、ユーザーが自由に問題を追加できる機能や、コンテスト開催機能も実装しています。
もう1つの特筆すべき機能として、簡単なインストールシステムがあります。今までは、ほとんどのオンラインジャッジがソースを公開しておらず、公開しているものでも複雑なインストール手順が必要で、Linuxカーネルやサーバー管理の高度な知識が必要でした。
そのため、このソフトウェアは唯一の実用的なオープンソースオンラインジャッジではないかと考えています。
開発言語・ツール
Python、PHP、cgroups
構想から完成までの期間
1年半
こだわりポイント・独自のアイデア
他にはない、ユーザーが問題を作成できるという機能を実装するのにこだわりました。そのための堅牢化などにはかなり時間をかけたように思います。
また、簡単にインストールできるようにする部分にもこだわりました。多くの人に使ってもらえるよう、コマンド操作をできるだけ少なくし、Webインストーラーを実装することによってさらにわかりやすくしました。これだけインストールが簡単で、さらにある程度のセキュリティを確保できているという部分に自分でも満足しています。
苦心した点
ユーザーのコードを安全に実行できるようにする部分に苦心しました。
なかなか自分では完全だと思っていても、後日考えてみると穴を見つけるということが何度もあり、その度に修正をしました。また、リソース管理の面でも、思ったとおりに動かないことが多く、悩まされました。
また、ジャッジの並列化も苦労しました。今まで並列化に取り組んだことがなかったこともあり、設計にかなりの時間をかけました。
応募したきっかけ
コンテストの存在をふとしたことで知り、せっかくなので応募しようと思いました。
プログラミング歴
5年
どうやって勉強したか
必要となったときに検索して知識を得ました。
受賞した感想
自分の作ったプログラムを認めてもらえたということで嬉しかったです。
受賞したときに、僕が中1のときに、初めて書いた以下のプログラムを思い出しました。

#include <stdio.h>

int main(void)
{
    printf("Hello, world!\n");
    return 0;
}

この初心を忘れずに、これからも精進していきたいと思っています。

Copyright (C) 2013 「第34回U-20プログラミング・コンテスト事務局」. All Rights Reserved.