Submission and Autotesting
| ||||
give.spec: Submission | give.spec: Autotesting |
Submission
Create the assignment field in sms:
Interactively: Student → Maintain Fields → Insert
To insert before the Comment field, click on the Comment item in the listbox, then click on the Insert button.
Commandline:
e.g.
echo "assign1 mark 0 10 0.1 hard (closed) @7" | smsaddfield
open, closed, private, private closed are SMS field permissions
The input format of
smsaddfield
is based on the output format ofsmsfield -v
smsfield -v Running Tcl8.6... ClassKey patstring \d\d\L\d\4{\A}\4{\d} [0-9][0-9][a-zA-Z][0-9](([A-Z])([A-Z])([A-Z])([A-Z]))(([0-9])([0-9])([0-9])([0-9])) (secondary closed) @0 StudentID patstring \7{\d} (([0-9])([0-9])([0-9])([0-9])([0-9])([0-9])([0-9])) (primary closed) @1 Name name (secondary closed) @2 Program patstring \4{\d}/\d (([0-9])([0-9])([0-9])([0-9]))/[0-9] (secondary closed) @3 Plans string (secondary closed) @4 Login string (secondary closed) @5 SpecialFlags set audited_subject;z satisfactory;s unsatisfactory;u enrolment_continues;e withhold;w query;q further_assessment;f absent;a newname;n consideration_received;c consideration_acknowledged;y z->!(s|u|e|w|q|f) s->!(z|u|e|w|q|f) u->!(z|s|e|w|q|f) e->!(z|s|u|w|q|f) w->!(z|s|u|e|q|f) q->!(z|s|u|e|w|f) f->!(z|s|u|e|w|q) c->!y y->!c (privateclosed) @6 Comment text (private) @7
Install give for assignment:
give-install assignment
. The installation does the following:creates
assignment
directory under the current work directory ($WORK
)creates
give.spec
in the assignment directory ($WORK/<assignment>
)creates submission directories for each class (tuts or labs or tut-labs e.g.
$WORK/<assignment>/tue15a
,fri10-kora
)creates
all
directory instead if course don’t run classes
Enter the submission specification into file:
$WORK/<assignment>/give.spec
.Simple testing during submission:
Create
$WORK/<assignment>/dryrun
- dryrun example
Submit command:
give cs9999 assignment files..
Under the assignment directory are the “class” directories and under them are the student/group directories:
if <class> exists:
<class>/<studentID>
or<class>/<groupID>
if course don’t run classes:
all/<studentID>
orall/<groupID>
if don’t belong to any class in SMS:
orphans/<studentID>
Under the directory above are the files:
submission.tar
sub0.tar, sub1.tar, ... sub{N-1}.tar
- Previous submissions,&backups = N
log - Submission and Autotesting history. Submission line contains date and number of days and hours late
Autotesting
Enter the autotesting specification into file:
$WORK/<assignment>/give.spec
Run the autotesting on the submissions. Commands you need to know below:
|
|
---|---|
| Compile give.spec into shell scripts
|
| Generates the standard output of a reference submission
|
| Runs specified assignment, output to screen |
| Runs specified assignment, output to file: |
| Runs a group of assignments
Must clear the temp directory before each run at the start of Example: &compile
rm -f datecalctest datecalctest_dcc datelib.o datelib.c
fetch $A datecalctest.c datelib.h
classify -v $1
list datelib.c
<compile file here>
&end |
| Reset time stamp so that you can run autotesting again. To avoid a rerun, you can use the -t option of |
| List assignments (e.g. late submissions) that have not been tested |
Check the autotesting results
Testing results or summary:
$OUT/summary.assignment
Check late penalties are applied correctly -
grep latepen $OUT/*/assignment.*
Subjective marking - Xmark or the newer Imark (Imark uses a different suite of autotesting commands)
To stop students collecting assignments before all tutors have finished marking, add the assignment to the
withhold
directive in$WORK/give.spec
&withhold exam_q1 exam_q2 exam_q3 &end