Student projects/Automated grading of programs
# SUBJECT TO CHANGE #
Abstract
This proyect has the objetive to develop a plugin for Moodle, making it able to grade computer programming assignments automatically. This plugin is based in actual Assignment module, that gives us an easy way to allow students to upload any digital content for grading.
Epaile will make it easy to create new assignments and define the actions used to compile, execute, and evaluate student code. When students submit their solutions, Epaile will compile, execute and evaluate the code, acording with solutions defined by teacher. Initialy, Epaile will support Java and C++ programming languages, but it will be plugin based, so new languages can be added if needed.
This application will provide to teachers the way to organize students grades and of course more free time, and to students the possibility to know their grade inmediatly, and also check their evolution in course.
Deliverables
* Improve actual Assignment module to support Epaile assignments.
Main features
Teacher configurable submission settings for an assignment include:
* Due date * Opening date (when to start accepting submissions) * Limit on size of submissions * Limit on number of submissions allowed * Optional early bonuses: extra credit for early completion * The actions used to compile, execute, and evaluate student code can be tailored by the instructors * Optional limit on memory size and execution time
Students upload their submissions:
* Multi-file submissions are accepted in the form of a zip or jar archive, and are automatically expanded as needed * All submissions and their results are archived independently * An assignment can be graded inmediatly or in a given date (cron)
Core features:
* Plugin based architecture * Test security and performance issues before and during the grading automation
Implementation
Epaile's user interface will be implemented bassed on actual Assignment plugin, that means It will use PHP and HTML. No other option is possible.
We are studing the posibility to use DOMJudge[1] core for programs testing.
[1] DOMJudge: http://domjudge.sourceforge.net/