Arrow Judge

Post on 11-Jul-2015

3.440 views 1 download

Transcript of Arrow Judge

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

Special Thanks

開発にあたってIPAの未踏IT人材発掘・育成事業の支援を受けました

Conclusion

このソフトウェアを通じて

日本の競技プログラミング界がもっと活発になってほしい