| Gradem Home | Config Files | Installation | Download |
The system uses the following configuration files, of which only the grading key file is required.
key.cfg -- a required file which contains the grading key
for the project.
egrade.cfg -- an optional file which contains
configuration information. Modifying this file can be used to change
the behavior of the system.
namelist.cfg -- an optional file containing students
email addresses, if different from their userid.
Directives are pseudo comments and
begin with a #+.
Such a directive specifies a required category
and the number of points it is worth.
The project points is the sum of the points
given for each required category.
In the example below, testCelsius.log
and Celsius.java are required;
the other categories are optional.
A mark line consists of 4 fields separated by a colon by default: category (file to be graded), a unique (within category) tag, points, and associated explanation. Except for the tag, these items should be expected. The system supports both additive and subtractive scoring; points are unsigned for additive scoring and negative for subtractive scoring. The author uses the latter. There should be no spaces in the first 3 fields.
The system assumes that the assessment phase has left log files in the student's directory, which files record the results of the assessment process. For each such file there should be a collection of entries in the key configuration file. This file can be created with a text editor. Additional entries can be dynamically added to the key using the egrade.py GUI script, just as in manual grading. Each key entry should correcspond to a logical deduction appropriate for the given file.
The tag is used for late binding of points and associated explanation, thus, simplifying re-grading.
A sample key file is:
# max grade 8 # late late.log:1-day:-1:1 day late late.log:2-day:-2:2 days late late.log:3-day:-3:3 days late late.log:4-day:-4:4 days late late.log:5-day:-5:5 days late #+ testCelsius.log 5 testCelsius.log:test72:-3:72 F = 22.22 C testCelsius.log:test212:-2:212 F = 100 C #+ Celsius.java 3 Celsius.java:comnt:-1:no comments Celsius.java:naming:-1:poor naming; see textbook pp. 14-20 Celsius.java:other:-1:violation of style rules; see style guide
A typical name list file used by the author is given below. There are 4 fields, separated by a colon: the student's name, userid, email address, and optional pair partner. The number of fields and their interpretation are controlled by the system configuration file.
Here is a sample file. Note the discrepancies between the userids and email addresses. Note also that some students are paired and others are not.
Adams:bladam:bladam@wm.edu:pmlowm Arens:pmaren:pmaren@wm.edu Bannister:ikoma:ptbann@wm.edu:phil Beaver:sbeav:dsbeav@wm.edu Blessing:edbles:edbles@wm.edu Lowman:pmlowm:pmlowm@wm.edu:bladam Maddox:phil:pamadd@wm.edu:ikoma Manweiler:jgmanw:jgmanw@wm.edu Maston:jlmast:jlmast@wm.edu
gradelib.py should be modified
at installation time.
The file egrade.cfg for a given project or course
can be used to override the system defaults.
As with the other configuration files,
this file consists of comment lines, blank lines,
and system directives.
A comment line begins with a # in column 1;
comment and blank lines are ignored.
A system directive line consists of 2 fields separated by a colon:
without spaces.option : value '
The options controlled fall into the following categories:
totalem.py.
The most common options used be me are the following:
pair:3 # if present in namelist.cfg, the other member of a pair group:noonangr # my grader group tabsize:4 # used by eclipse width:80 keyheight:20 logheight:40 # dependent on monitor size and resolution # length of key relative to log # width of output # font: # depends on monitor size and your eyesight