Gradem
The Gradem electronic marking system currently consists of the
phases given below: marking, review, and return.
Each phase is supported by scripts written in Python.
Two phases are assumed to preceed the use of this system:
- Delivery phase: in which the students deliver their
work product to be marked. THis can be accomplished using:
try, turnin, email, submit, Blackboard, etc.
- Assessment phase: in which the students programs are
compiled, tested, analyzed, checked for plagirism, etc.
Tools include: shell scripts, moss, JUnit, PMD, etc.
These preliminary phases generate information, stored in files,
which must manually have numeric scores attached.
All of this is discusssed in Noonan [2006].
A good paper which discusses how to grade is
Levine and Walker [2006].
Marking Phase
The purpose of the marking phase is to attach marks to
log files, called categories. Instances of the latter
include: program source files, results of test runs, etc.
Scripts include:
- markem.py -- a driver script for egrade.py;
takes as arguments a list of student directory names to be graded.
- egrade.py -- a Tk-GUI script for grading
1 student on 1 category, eg, the console output of running 1 test.
Review Phase
The purpose of this phase is to prepare the marked student materials
for electronic return and to allow review before return.
The system supports late binding in that the marks
are replaced by the information associated with the mark in the
grading key. Thus, explanatory comments can be changed, points
increased or decreased by modifying the grading key and
rerunning totalem.py.
Scripts include:
- totalem.py -- a batch script for collecting
files containing a students marked worked and totaling each student's
score based on the current grading key.
- bymark.py -- for each mark, in order of
decreasing frequency, lists students who got that mark.
- bystudent.py -- lists students and their
grades.
Return Phase
The purpose of this phase is to electronically return each
student's marked work product and to collect the grades into
a format suitable for loading into a spreadsheet.
Scripts include:
- mailem.py -- a batch script for emailing the
mail files generated by
totalem.py.
- getgrades.py -- a batch script for
generating a CSV (comma separated value) file of student userids and
their grades. Script includes support for pairs and teams
Support Library
- gradelib.py --
a library of routines shared by the other scripts;
does only debugging prints if run as a script.
System configuration options are accessed through this script.
References
- Robert E. Noonan. The back end of a grading system.
SIGCSE Technical Symposium on Computer Science Education,
(March 2006), pp. 56-60.
- David Levine and Henry Walker.
XP practices applied to grading.
SIGCSE Technical Symposium on Computer Science Education,
(March 2006), pp. ??-??.
Robert Noonan
Mar 6, 2006