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.