近い将来、高校生向けのプログラミングコンテストを開催する予定で、もともとはPC ^ 2(プログラミングコンテスト制御システム)を使ってソリューションの自動審査を行う予定でした。このソフトウェアは、ACMの国際大学プログラミングコンテストの地域および世界の決勝戦で一般的に使用されています。これは私が以前に使用した優れたシステムですが、その落とし穴の1つは、言語サポート(Java、C、およびC ++)です。出席する可能性のあるすべての高校生がこれらの言語のいずれかに触れることができるわけではないので、私は少し心配しています。ただし、多くの地元の高校はPythonでプログラミング入門コースを教えています。PythonをサポートするPC^2と同等のシステムはありますか?
5 に答える
オンライン審査員のいくつかのオープンソース実装を使用できます。たとえば、ONJ http://sourceforge.net/projects/onj/
設定は簡単で、選択した言語で実行できるように互換性を持たせることができます。学生が座るすべてのシステムにローカルコピーは必要ありません。サーバー上で実行し、学生にソリューションを送信するためのWebリンクを提供するだけです。
Sphere Online Judgeでそれを行いましょう。コンテストのホスティングは無料で、多くの言語が利用可能です。
私は実際にこれを達成するためのはるかに良い方法を見つけました。最新のリリースでは、PC ^ 2はインタプリタ言語(Pythonなど)のサポートを追加しました。PC ^ 2には実行可能ファイルが必要なため、コンパイルコマンドを「スタブアウト」し、スクリプトを使用してインタプリタを呼び出す必要があります。
完全なガイドはhttp://pc2.ecs.csus.edu/wiki/Interpreted_languagesで見つけることができます
あなたがまだ興味を持っていると仮定すると、PC^2は非常に順応性があります。私はそれを使用してスクリプトコンテストを実行し、Python、Perl、PHP、Rubyをサポートしています。基本的に、PC ^ 2は、言語がコンパイルされてから実行されることを想定しています。コードをコンパイルして成功を返すふりをするちっぽけなスクリプトを書く必要があります。次に、実行スクリプトは単にスクリプト送信を実行します。とても簡単です。
http://acm2012.scusa.lsu.eduにアクセスして、スクリプトコンテストの情報を確認できます。詳細については、お気軽にお問い合わせください。
思ったより簡単です。以下はpc29.2.3-2565用です
次のように言語を追加します(例としてここではPython):
表示名:Python
コンパイルコマンドライン:touch OK
実行可能ファイル名:OK
プログラム実行コマンドライン:python {:mainfile}
python3.3またはpython3.4も機能します。
もちろん、pc2の方が簡単かもしれませんが、CSUSにはあまりサポートが残っていないようです。コンテストのリセットはさらに優れた機能です。テスト、練習、および実際のコンテストのためにディレクトリを複製する現在の必要性は非常に厄介です。データベースのより良い管理(物を削除する機能のような)はそれを素晴らしいツールにするでしょう。大丈夫ですが、素晴らしいかもしれません。