3.1. The Basics

Here is a basic submission information file for the example presented above.

<assignment> 1
  <title>CS361: Keeping Your Distance</title> 2
  <directory>/home/zeil/courses/cs361Submissions/editd</directory> 3
  <file4 filter="editdist.cpp"5 required="1"6>
     Your implementation of the editDistance function.</text> 7
  </file>
  <file filter="README.txt">
     Notes to the grader, if any.
  </file>
</assignment>

1

The entire description is wrapped in the assignment element.

2

This gives the title that appears on the various web pages.

3

The directory where student submissions for this assignment will be placed. Usually, each assignment would have a separate directory.

4

One or more file descriptions. Each of these describes a single file to be submitted by the student. A file description has the following components:

5

A filename or filter for the desired filename. These can include the usual wild card characters (e.g., *.txt). Students can override these filters to submit files with completely different names, if they have particularly stubborn or suicidal inclinations.

6

(Optional) Required file marker. If present and if the value of this field is "1", then the file will be marked as "required" in the listing presented to the student.

If a student attempts to submit an assignment that is missing one or more required files, the student receives a warning. (Students will be allowed to go ahead and submit anyway, if they wish, because sometimes students do need to submit incomplete work.)

If the required element is missing or contains some other value, the file is marked as optional and no check is made before submission.

7

(Optional) Descriptive text for the file.

An older release of the websubmit tool used a less compact format in which the filter, required marker, and description were provided as nested elements within each file element.

<assignment> 
  <title>CS361: Keeping Your Distance</title> 
  <directory>/home/zeil/courses/cs361Submissions/editd</directory> 
  <file> 1
    <filter>editdist.cpp</filter> 2
    <text>Your implementation of the editDistance function.</text> 3
    <required>1</required> 4
  </file>
  <file> 
    <filter>README.txt</filter>
    <text>Notes to the grader, if any.</text> 
  </file>
</assignment>

1

One or more file descriptions. Each of these describes a single file to be submitted by the student. A file description has the following components:

2

A filename or filter for the desired filename. These can include the usual wild card characters (e.g., *.txt). Students can override these filters to submit files with completely different names, if they have particularly stubborn or suicidal inclinations.

3

(Optional) Descriptive text for the file.

4

(Optional) Required file marker. If present and if the value of this field is "1", then the file will be marked as "required" in the listing presented to the student.

If a student attempts to submit an assignment that is missing one or more required files, the student receives a warning. (Students will be allowed to go ahead and submit anyway, if they wish, because sometimes students do need to submit incomplete work.)

If the required element is missing or contains some other value, the file is marked as optional and no check is made before submission.

This older format is still supported to provide backwards compatibility.

When a student submits an assignment, the assignment is saved using the same directory structure as in the local "submit" command utility: the student's first submission is placed within a directory studentLogin.0/ and the time of submission in a file studentLogin.0.time. The student's second submission goes in studentLogin.1/ and studentLogin.1.time, and so on.

No provision is made for students' withdrawing old assignment submissions because I don't believe in destroying the "audit trail". Also, no provision is made for limiting submissions to before a "due date", because any such mechanism would inevitably require frequent overriding to accommodate excused late submissions, students working off incomplete grades, etc. This seems to be easier to handle at grading time.