ECAutoAssessmentBox ECSpooler-1.2 (Oct 11, 2011)

This maintenance release of ECSpooler supports ECAutoAssessmentBox 1.4.2

For additional information about this project, please visit the overview page .

Available downloads

ECSpooler-1.2.tar.gz

For all platforms (0 kB)

Release Notes

Tested with Plone 4
State Final release
License GPL
Release Manager Mario Amelung

Overview

ECSpooler is a Python XML-RPC service, which provides the automatic testing of submissions for ECAutoAssessmentBox. It manages a submission queue and several backends.

Prerequisites

  • Python
  • A UNIX or UNIX-like operating system, e.g., NetBSD, Solaris, Mac OS X, or Linux.

    ECSpooler does run on Windows (with some restrictions), but this is neither supported nor recommended.

  • ECSpooler is primarily intended to be used via the ECAutoAssessmentBox Plone product. So you will normally have a Plone installation with ECAutoAssessmentBox.

Description

ECSpooler provides automatic testing of submissions for ECAutoAssessmentBox. ECAutoAssessmentBox allows students to submit their assignments via the Web at any time during the submission period. A typical case are programming assignments, where students have to submit programs. Submitted programs are automatically checked and students get immediate feedback on whether their programs are syntactically correct and yield the expected results.

When a student submits a program, it is first sent to ECSpooler. ECSpooler is a Web service which manages a submission queue and several backends. Backends provide syntax checking and testing for a specific programming language, usually in conjunction with the corresponding compiler and/or interpreter. The results of the tests performed by the backend are immediately returned and are displayed by ECAutoAssessmentBox.

Backends

We have implemented backends for Haskell (using Hugs), Scheme (using MzScheme), Erlang, Prolog (using SWI-Prolog), Python, and Java. Backends can also be used to implement different approaches for testing: For example, we have implemented one backend for Haskell which compares the output of the student solution with the output of a model solution for a set of test data, and, as an alternative, we have implemented another backend for Haskell which uses QuickCheck for testing based on formal specifications of properties required for a correct solution.

However, ECSpooler only ships with a demo backend, Keywords, which checks whether a submission contains certain keywords specified by the creator of the assignment. We do not include other backends because, when executing student code, you have to take security precautions, e.g., by using chroot, jails, or systrace. These mechanisms are, however, system-dependent, so we cannot include anything that runs out of the box and is secure. Furthermore, paths to interpreters or compilers vary across installations. If you are aware of the risks and if you are able to deal with the configuration issues, we are happy provide you with our backends on request.

Support

For questions and discussions about ECSpooler, please join the eduComponents mailing list.

Credits

ECSpooler was written by Mario Amelung and Michael Piotrowski.

Additional programming by Wolfram Fenske and Christian Baumann.