Electronic Sumbissions

by Apostolos "Toli" Lerios

This document applies only to classes whose projects are developed on the Sweet Hall UNIX systems.


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:

  1. The teaching staff provides a script (in sh or perl) which the student executes when they are ready to turn in their work.
  2. The script guarantees that the student has created a complete submission (comprising all code files and documentation).
  3. The script somehow makes an electronic copy of the student's work in an area accessible to the staff.
  4. 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.
  1. Package it in a file and mail it to a staff account.
  2. 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