E
mail based procedures for submitting homework are widely used and
have been proven to be fairly robust and easy to maintain.
E
mail sorter programs (e.g.,
procmail)
check an e
mail for keywords and store data in an appropriate
folder. Sorting criteria can be the sender (i.e., student id) and
a keyword in the subject field. For setting up the sorter agent, the
students of a course must be known and the student needs to use a
predefined keyword in the subject field. The sorter
agent is started when new mail arrives for the teacher or for
the class account (implemented using the .forward file). The
configuration file can be a little bit tricky because it usually
uses regular expressions.
The ISTC supports classes by
setting up special accounts, which use a script as a
sorter agent. An easy-to-read configuration file defines which student
belongs to which group (i.e., folder) and a list of subjects for
exercises. The script strips off the mail header, puts the file
into a directory using the following structure: ~class/ex/group/
subject. The name of the file
is constructed according to sender name, date and time. Each submission is
acknowledged with a reply e
mail message. Having an account for
each class also has
the advantage that a group of teachers can share access to the
homework assignments.
The teacher can then use a check script which loops over all homework from a given exercise, displays the contents, compiles it, and executes it. At each step the teacher enters his/her evaluations, which are compiled to a file which contains a table of all results for one exercise.
The teacher can then use another script to mail the results to the
students. This script creates the mail from a general comment, a table
header, an individual result from the table, a special comment if one exists
in the homework directory and a signature. In such a way, each student
can get a private e
mail message, and his results are not passed
on to other
students.
The replacement of paper and pen by electronic media also has some disadvantages. For example, it becomes very easy to copy other students' homework. For that reason, the network needs to provide special access permissions. To recognize copies, a script called copy-finder is useful. It computes the correlation between all submitted homework assignments according to differences in the files, based on the command diff and using the number of different lines as a metric.