HWSubmit
From CSWiki
Contents |
Homework Submission
Introduction
We need a generalized submission system that is easy for both students and graders.
Sending
First, we need a simple way for students to submit homework to the grader. The most obvious way is to send it via email. But we can't afford to describe the attachment process for each mail program a student may want to use. Instead, we instruct the students to use hwsubmit from one of the linux machines, as follows:
hwsubmit cs101 ~/homework/cs101/hw1/
The student doesn't need to compress her files. She doesn't need to know the email address of the grader. All those details are hidden by the script. It uses tar, gzip, and metasend to archive, compress, and MIME-encode the directory. Then it looks up the course name in an NIS map, in order to find out where the submission should be sent.
This script simplifies the submission process for the student, but can only be used from the linux machines where it is installed. This is a good thingtm. No student should leave any CS program without gaining substantial experience using a unix environment.
Receiving
General
To process the submission, we'll first filter out email containing homework submissions. Adjust your sieve script using the example below as a template. Replace username with your username, and replace coursenum with something like cmsc10100. Check the contents of your sieve file by running cat /stage/sieve/username, then open that file in your editor when you're ready to make changes.
require "fileinto";
if header :is "Subject" "coursenum submission" {
fileinto "coursenum";
stop;
}
Step by Step
- Email techstaff at techstaff@cs.uchicago.edu, specifying the course that you are grading for (eg. cmsc10100), and any other graders who should also receive the submissions.
- We will add your email address to the NIS map.
- Run
hwprocess -s coursenum(on a linux machine) for each course. - Set up sieve filtering, as described above.
- Run
hwprocess coursenumwhenever you want to digest the homework submissions. - Look in $DONEDIR, (which defaults to ~/hw), to find a directory for each homework submission.
To Do
I haven't yet accomodated multiple assignments. However, the archive feature may work fine for this. Simply remove the link when you've graded the assignment, and it will be recreated when a new assignment is received.
