arrow judge
TRANSCRIPT
Arrow JudgeHiromu Yakura
Self-Introduction
矢倉 大夢
@hiromu1996
灘高校2年生
Self-Introduction
灘校パソコン研究部
セキュリティ
競技プログラミング
Self-Introduction
灘校パソコン研究部
セキュリティ
競技プログラミング
Self-Introduction
灘校パソコン研究部
セキュリティ
競技プログラミング
Self-Introduction
灘校パソコン研究部
セキュリティ
競技プログラミング 2011-2013部長
Self-Introduction
灘校パソコン研究部
セキュリティ
競技プログラミング
Self-Introduction
灘校パソコン研究部
セキュリティ
競技プログラミング
情報セキュリティスペシャリスト
Self-Introduction
灘校パソコン研究部
セキュリティ
競技プログラミング
情報セキュリティスペシャリスト
最年少合格
Self-Introduction
灘校パソコン研究部
セキュリティ
競技プログラミング
Self-Introduction
灘校パソコン研究部
セキュリティ
競技プログラミング横浜大会 4位
Self-Introduction
灘校パソコン研究部
セキュリティ
競技プログラミング
Self-Introduction
灘校パソコン研究部
セキュリティ
競技プログラミング
アジア太平洋情報オリンピック
Self-Introduction
灘校パソコン研究部
セキュリティ
競技プログラミング
アジア太平洋情報オリンピック
銅メダル
Competitive Programming
競技プログラミングとは
Competitive Programming
競技プログラミングとは
問題に与えられた条件に従って早く正確にプログラムを書く競技
Competitive Programming
競技プログラミングとは
問題に与えられた条件に従って早く正確にプログラムを書く競技
Competitive Programming
競技プログラミングとは
問題に与えられた条件に従って早く正確にプログラムを書く競技
数学、幾何計算機科学、データ構造
Competitive Programming
競技プログラミングとは
問題に与えられた条件に従って早く正確にプログラムを書く競技
Competitive Programming
競技プログラミングとは
問題に与えられた条件に従って早く正確にプログラムを書く競技
CPU使用時間メモリ使用量
Competitive Programming
世界中でいろいろなコンテスト
Competitive Programming
世界中でいろいろなコンテスト
Competitive Programming
世界中でいろいろなコンテスト
Competitive Programming
世界中でいろいろなコンテスト
Competitive Programming
世界中でいろいろなコンテスト
Competitive Programming
世界中でいろいろなコンテスト
Competitive Programming
世界中でいろいろなコンテスト
Competitive Programming
世界中でいろいろなコンテスト
人材発掘の場に
Educational Uses
教育的にも非常に有用
Educational Uses
ゲーム製作を目標に始める
Educational Uses
ゲーム製作を目標に始める
様々なAPIを学ばなければならない
Educational Uses
ゲーム製作を目標に始める
様々なAPIを学ばなければならない
GUIプログラミングまで長い時間が
Educational Uses
ゲーム製作を目標に始める
様々なAPIを学ばなければならない
GUIプログラミングまで長い時間が
挫折する
Educational Uses
競技プログラミングから始める
Educational Uses
競技プログラミングから始める
入出力の知識だけで始められる
Educational Uses
競技プログラミングから始める
入出力の知識だけで始められる
問題を解くたびに達成感
Educational Uses
競技プログラミングから始める
入出力の知識だけで始められる
問題を解くたびに達成感
少しずつ実装力を身につけていく
Online Judge
競技プログラミングの練習環境
Web上で問題を解くことができる
Webサーバー ジャッジサーバー
Online Judge
Online Judge
Webサーバー ジャッジサーバー
Online Judge
Webサーバー ジャッジサーバー
Online Judge
Webサーバー ジャッジサーバー
Online Judge
Webサーバー ジャッジサーバー
Online Judge
Webサーバー ジャッジサーバー
Online Judge
Webサーバー ジャッジサーバー
Online Judge
Webサーバー ジャッジサーバー
Online Judge
すでにいろいろなシステムが
北京大学 - PKU Online Judge
会津大学 - Aizu Online Judge
The Problem
ユーザーが
ホスティングできない
The Problem
ユーザーがホスティングできない
問題を公開しあって練習したり
コンテストを開催したりできない
The Problem
セキュリティのために仕方がないと考えられてきた
それを変えました
インストールは
超簡単
# apt-add-repository ppa:hiromu1996/arrow-judge
Installation
# apt-get update
Installation
# apt-get install arrow-judge arrow-judge-web
Installation
Installation
Technologies
もちろんセキュリティも考慮に
cgroupsでリソース管理
chroot, unshareでアクセス制御
Technologies
Ubuntu PPAでインストールを簡単に
Webインストーラーも作成
Features
一般的なオンラインジャッジの機能
CPU使用時間やメモリ使用量の計測
他のユーザーのソースを検索
Features
ユーザーが問題を作成できる機能
堅牢性を保っているからこそできる
できるのはこのシステムだけ
Features
コンテスト開催機能
スコアリングシステム
Clarificationシステム
Features
ジャッジサーバーの分散処理機能
キューに応じてサーバーを追加
コンテスト時だけEC2で増強
Features
簡単な管理画面
Webからプログラミング言語の追加
ジャッジサーバーの設定
Demo
Open Source
ソースはGithubで公開中
https://github.com/hiromu/arrow-judge
https://github.com/hiromu/arrow-judge-web
Special Thanks
開発にあたってIPAの未踏IT人材発掘・育成事業の支援を受けました
Conclusion
このソフトウェアを通じて
日本の競技プログラミング界がもっと活発になってほしい