My favorites | Sign in
Project Home Downloads Wiki Issues Source
Search
for
OnlineJudgeAssignmentType  
Features of Online Judge Assignment Type for moodle
Featured, OnlineJudge
Updated Feb 18, 2011 by sunner

This page is out of date. For latest info click https://github.com/hit-moodle/onlinejudge/wiki

Introduction

This plugin is designed for courses involving programming. It can automatically grade programming assignments by testing the submissions by customizable test cases (ACM-ICPC/Online Judge style).

Features

This plugin inherent Moodle's standard assignment type, uploadsingle . So it gets all uploadsingle functions and has its own additional features:

  • Support both Linux and Windows.
  • Run C/C++ code locally in sophisticated libsandbox environment to prevent attacks (e.g. rebooting system, accessing files/network, consuming/occupying system resources). (Linux only)
  • Run C/C++, Java, C#, Python, php, schema and other 40+ languages remotely in http://ideone.com. It is safe and free. See http://ideone.com/faq for full list of supported languages.
  • Different results (e.g. Accept, Wrong Answer, Presentation Error, Compilation Error, Time/Memory/Output Limit Exceed) get different grade.
  • Support multiply test cases.
  • Grade test cases separately. E.g., there are four cases and max grade of each is 25. The student pass three of them can get 25+25+25 = 75.
  • Customized feedback/hint can be shown to who doesn't pass the test.
  • Compile only mode.
  • Teachers can trigger rejudge of all submissions and grade manually anytime.
  • Support resubmit many times and one time submit.
  • More details (program output and etc.) can be shown to teachers.
  • Highlight code preview (powered by SyntaxHighlighter).
  • Easy installation, no root required.
  • Translation: English and Simplified Chinese

How to get/use

See OnlineJudgeInstallation

Credits

This project is sponsored by School of Computer Science and Techonolgy, and School of Software in HIT.

This plugin learned and copied much from arkaitz.garro(AT gmail.com)'s program (or called epaile) assignment type which has stopped developing since 2007.

Other contributors:

  • 施兴 (paradisehit AT gmail.com) designed and implemented the prototype.
  • 刘禹 (pineapple.liu AT gmail.com)gave much help and advices.
  • 刘琦卿 (lqq0205 AT foxmail.com) contributed many codes.

TODO

  • Backup and restore. (Waiting for Moodle 2.0)
  • Better test case management UI

Screenshot

Comment by atzou...@gmail.com, Jul 30, 2010

Hello, First of all congrats for this module, great job! I have one question, is it capable of checking submitted assignments for code plagiarism in a moss-like functionality mode? Thanks in advance and forgive if this info is already mentioned and i haven't seen it.

Comment by project member sunner, Jul 30, 2010
Comment by oguza...@gmail.com, Oct 25, 2010

Hi,

Great module. Is this possible:

When a student submits a solution, he should immediately see his grade, and if there ise a problem, he should resubmit.

In otherwords st. like "Immediate Auto Judge".

Thx.

Comment by project member sunner, Oct 25, 2010

@oguzaltu

Hi, what you need is just what it does. Enjoy it!, :-)

Comment by oguza...@gmail.com, Oct 26, 2010

Another question: Does this work on moodle 2.0? thx...

Comment by project member sunner, Oct 26, 2010

@oguzaltu oj 1.9.x doesn't support moodle 2. OJ 2.0 will.

Comment by oguza...@gmail.com, Nov 13, 2010

Hi. I started using this plugin. Two questions from the students: 1- What is the exact command used to compile the source? 2- What functions are restricted?

Comment by project member sunner, Nov 13, 2010

@oguzaltu 1. u can get it from languages/c.sh and cpp.sh 2. The system calls which could do bad things on system, such as fork()

Comment by erel...@gmail.com, Jan 28, 2011

Great plugin! Last semester it took us many hours to grade all assignments, so we installed your plugin and we hope it will save us more time next semester.

One question: is it possible to allow students to submit several files at once? It is important for us because we teach C++, and we want to educate the students to seperate H files and CPP files, so for each assignment they have to submit at least 3 files - unit.h, unit.cpp, main.cpp.

Is it possible that the plugin will accept these files, compile and link them together?

Comment by project member sunner, Jan 28, 2011

Since it is not easy to add multi-files support to 1.9 which is inherited from upload single assignment type, we will support multi-files in OJ 2.0.

Comment by erel...@gmail.com, Jan 29, 2011

Thanks a lot.

In this case, is it possible to allow submit using a textarea instead of a file-upload control? This will enable students to just copy and paste each file into the text area.

Comment by project member sunner, Jan 29, 2011

Yes, it is possible. But the work load is nearly as the same as supporting multi-files. Both need to change the parent class and do more hacking.

OJ 2.0 will separate judge kernel and UI so that it will be easier to design different UI.

Comment by erel...@gmail.com, Jan 30, 2011

Thank you for your reply. We are eagerly waiting for version 2.0!

Powered by Google Project Hosting