Mags (in Chez Scheme 8 and ChezWEB) provides a tool that aids in the evaluation of student scheme assignment submissions for instructors. The submission files are each embedded in a separate environment in order to provide sterile and controlled results. Mags extends and provides an implementation for SRFI 64, an existing open-source testing framework. This framework is useful in that it allows for the creation of test-runner objects, which handle the formatting and output of the test results. The test-runner provided in the auto grader provides for output to two ports, one for the student and one for the instructor.
Mags further extends this framework, allowing instructors to define and use equality tests, useful when testing equality (or pseudo-equality) for an implementation-specific ADT, for example. Mags provides functionality to easily collect and organize problem sets, providing convenience for the instructor to create hierarchies from a collection of problem sets with existing or user-defined formatting expressions. Mags also provides functionality for a virtual file system that overrides the basic Convenience I/O, which can be accessed and manipulated in order to protect the top-level file system. The instructor can also define terms deemed ‘illegal’ or ‘flagged’, which is reported when encountered in student code. Our well-documented and extensible project creates an easy and effective way of grading assignments for C211 - Introduction to Computer Science, as a replacement of the old system. In general, it is valuable for Scheme programming classes, useful for instructors, and extensible by design.