Electronic Sumbissions
This document applies only to classes whose projects are
developed on the Sweet Hall UNIX systems.
Introduction
Electronic sumbission is the answer to the ages-old question: now that
the student has finished their project, how do I get hold of their
work in order to grade it. Handing in paper hardcopies is not a very
attractive solution: wastes paper, it's bulky, doesn't allow
performance tests, and prevents both efficient and fair grading (the
TA can't find all the bugs just by looking at code).
The alternative is having each student somehow give the staff an
electronic version of their code. This is easy, in principle, but many
pitfalls await the unwary. For example you can have each student mail
their code to the TAs by hand; then the TA has to deal with different
mail formats, incomplete submissions (missing vital files), multiple
submissions, etc.
Presently, a satisfactory method to implement electronic submissions
is the following:
- The teaching staff provides a script (in sh or
perl) which the student executes when they are ready to
turn in their work.
- The script guarantees that the student has created a complete
submission (comprising all code files and documentation).
- The script somehow makes an electronic copy of the student's work
in an area accessible to the staff.
- The staff uses the submitted copy to recrate the student's work
area and grade their work.
Below I will describe two sample scripts for electonic submission. All
provided scripts and associated WWW page are easy to understand and
modify. Please contact Toli only if you are
at a complete loss.
Basic approaches
There are two basic ways in which the submission script may copy a
student's work.
- Package it in a file and mail it to a staff account.
- Copy it in the class directory at Sweet Hall.
I favor the former apporach when the code will be graded on a machine
outside Sweet Hall (e.g. at the TA's office), either for convenience
or to ensure fairness in performance testing (requiring a single-user
environment). I favor the latter approach when each student's
submission has small size (to avoid clogging the class directory) and
if grading will use Sweet Hall machines.
Mailing student code
The submit script is a shell script
that packages the student's work in a tar file,
gzip's it, uuencode's it and mails it to an
email account setup by the staff for project submissions.
The script itself is a third of the story. For the students to use it
properly, they need some guidance: a sample WWW page providing the necessary instructions to the student is available.
The last third of the story is the retrieve script, which a TA uses to
reverse the submission process and make a local copy of the student's
project; the script assumes that the mail message containing a single
student's submission has been saved into a single file (the script
argument).
Copying into the class directory
This approach first requires that the staff sets up a subdirectory
within the class directory for project submissions; this directory
should have the AFS access list (i.e. permissions) system:anyuser
li.
Each student then executes the do script
with the submit argument; do is actually a
comprehensive project development script, only a small portion of
which handles the submission process.
The do
script copies the student code in a subdirectory of the special
sumbissions directory setup by the staff; the name of the new
directory is the same as the student's SUNet ID.
Last update: 25 May 1997 by Apostolos "Toli"
Lerios