Assignment Submission and Autotesting using Give
Install give and sms for a new session. If you have installed give and sms, proceed to next step.
- 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.
Privilege
Students
Tutor
Open
Visible
Can Edit
Closed
Visible
Can't Edit
Private
Hidden
Can Edit
Private Closed
Hidden
Can't Edit
Commandline:
e.g. echo "assign1 mark 0 10 0.1 hard (closed) @7" | smsaddfield
The input format of smsaddfield is based on the output format of smsfield -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
give-install assignment
creates assignment directory under the current work directory ($WORK)
creates give.spec in the assignment directory
- creates submission directories for each tutorial group.
If no tutorial groups, creates all and orphans directories instead.
Read about subkey and subgroup directives.
Enter the submission specification into the give.spec file.
Read about subspecs and related submission directives.
To test the submission pass a simple test, create a dryrun file under $WORK/assignment
- Test that files can be submitted.
The submit command: give cs9999 assignment files..
If the submit works, the files can be found under the assignment/group directory.
Enter the autotesting specification into the give.spec file.
Read about runspecs and related autotesting directives.
- Run the autotesting
genrun assignment - compile the spec into shell scripts (below)
GROUPS
SUBKEY (created only if &subkey is not the default stuID)
compile
execute
compare
cleanup
genresults assignment submission.tar - generates the standard output of a reference submission
tests directory
results directory
run assignment group studentID - runs specified assignment, output to screen
run1 assignment group studentID - runs specified assignment, output to $OUT/group/assignment.studentID
rungrp [options] assignment [group] - runs a group of assigments
options:
-v
verbose
-c
remove the temp directory after each run
-t
test phase, will not timestamp, will not update logs
-m
mark phase, will not run a submission if it has been marked
less $OUT/summary.assignment - show summary of run results, useful when checking the autotesting works
grep latepen $OUT/*/assignment.* - check that the late penalty is applied correctly
rerun assignment - reset time stamp so that you can run autotesting again
rerun assignment group
rerun assignment group/assignment.studentID
To avoid a rerun, you can use the -t option of rungrp
torun assignment - list assignments like late submissions that have not been tested
Xmark to mark the assignments.
To stop students collecting assignments before all tutors have finished marking, add the assignment to the withhold directive in $WORK/give.spec
&withhold assign1 &end