Assignment-wide give.spec
/home/cs9999/YYsN.work/assignment/give.spec
Contains submission and autotesting specification.
Submission Specs
&subspecs - Specify which files are accepted during submission
Example 1: accept allocator.c and optionally any .h files and any other .c files.
&subspecs accept allocator.c *.h/0+ *.c/0+ &end
Example 2: accept files1 or accept files2 or ...
&subspecs accept FPView.java readme.txt *.java *.jar/0+ *.jpg/0+ *.png/0+ *.txt/0+ *.fpe/0+ accept readme.txt *.h *.cpp *.tem/0+ dsview.pro *.jpg/0+ *.png/0+ *.txt/0+ *.fpe/0+ *.tgz/0 accept *.zip readme.txt accept *.tgz readme.txt &end
Example 3: reject all
&subspecs reject * &end
reject * to stop submissions. Used when automarking prac where the submissions come from the exam account
&deadline - Specify assignment deadline
group deadline [[, startdate], enddate]
Example 1: Accept submissions any day.
&deadline all Tue 23 Sep 09:59:59 &end
Example 2: Accept submissions until a specified date.
&deadline all Tue 23 Sep 09:59:59, Sun 28 Sep 09:59:59 &end
- When student submits after this date, they will get this message:
You cannot submit after this date: Sun 28 Sep 09:59:59 Submission NOT accepted
Example 3: Accept submissions from a start date until an end date.
&deadline all Tue 23 Sep 09:59:59, Mon 8 Sep 09:59:59, Sun 28 Sep 09:59:59 &end
&latepen/&earlybonus - Specify the late penalty or early bonus
- Example 1:
&latepen ceiling % 0 per hour for 1 hour 15 per day for 4 days &end
ceiling - penalty is reduction in maximum available mark
ceiling % - penalty is specified as percentages, default is mark
0 per hour for 1 hour - exempted if less than an hour late
15 per day for 4 days - 15% of the total mark is deducted from the maximum for each day late
- Example 2:
&earlybonus raw 0 per day for 3 days 1 per day for 1 day &end
raw - change to the raw mark
0 per day for 3 days - no change to the raw mark if 3 days or less early
1 per day for 1 day - one mark added to raw mark if 4 days or more early
- Example 1:
&extension - Add students who need extensions
Example 1: Specify days late
&extension 3123456 5 &end
The student will get 5 days extension. After 5 days, the usual late penalty applies.Example 2: Specify hours late
&extension 3123456 0:1 &end
The student will get 1 hour extension.
&maxsize - Change submission file size
- Example:
# 1 MB &maxsize = 1024
- Example:
&backups - Keep previous submissions
- Example:
# current submission and keep the previous three submissions &backups = 3
- Example:
&subkey &subgroup specify how submissions are stored.
- Individual submissions into tutorial groups
- Each submission is stored under a directory named after the student's id, which in turn is located under the student's tutorial directory.
e.g. $WORK/ass1/mon12a/3123456, ~/08s2.work/assign1/mon12-bell/3123456
&subkey = stuID &subgroup = sms tut_lab
to store submissions under student login names, replace &subkey by the following
&subkey = sms Login
- Individual submissions where there are no tutorial groups
Each submission is stored under a directory named after the student's id, which in turn is located under the all directory.
e.g. $WORK/ass1/all
&subkey = stuID &subgroup = none
- Group submissions into tutorial groups
- Each submission is stored under a directory named after the group's id, which in turn is located under the group's tutorial directory.
e.g. $WORK/ass1/mon12a/123, ~/08s2.work/assign1/mon12-bell/M12A-15
ass1, assign1 are assignments; mon12a, mon12-bell are tutorial groups; 123, M12A-15 are group ids;
For group work submissions, add the directives (as shown below) to the give.spec file under $WORK/assignment
Any member of a group can submit. The submission by a member of a group will override a previous submission by another member of the group. The group ids must be created beforehand in sms.
&subkey = sms groupID &subgroup = sms tut_lab
Autotesting Specs
&runspecs - autotesting specification follows after this directive until end of file
Refer to the give manual for further documentation
Web interface to help you set up the autotesting specfication.
&testmode mode
where mode can be automark, notest
Examples:
Pre-test phase
&compile rm -f *.c rm -f a.out f=grid.c classify -v $1 dos2unix $f list $f options="-O -Wall -Werror" echo "Compiling with $options ..." echo gcc $options $f compile_status=$? if [ $compile_status != 0 ] then echo echo "** No good. Exiting..." exit 1 fi cp ~/bin/trim.pl . cp $A/gridTest[1-6] . &end &timelim 3 &linelim 120 20 &exec ./a.out
&compile - enter the script to compile submission and to print code listings, terminate with &end
&prep - enter the script to run before each test, terminate with &end
&linelim m n - print the first m output lines and the last n output lines
&timelim s - cpu time limit
&exec command - $exec anywhere in the test suite will be substituted by the command
Test phase
&test 1 &mark 1.5 gridTest1 no valid row col input &invoke $exec < gridTest1 | ./trim.pl &match < Student output and > Sample output diff -iw $stdout $stdres &showdiff -120w -iWt &test 2 &mark 1.5 gridTest2 middle cell &invoke $exec < gridTest2 | ./trim.pl &match < Student output and > Sample output diff -iw $stdout $stdres &showdiff -120w -iWt
&test n
&mark mark description
&invoke command
&match description - put the command to match the student output and the sample output on the following line
&show file
&showdata optional_command
&showdiff arguments
&showdiff -nw sdiff_arguments - translate into sdiff command and arguments
&showdiff -w diff_arguments - translate into diff command and arguments
&special mark description - enter the script to define testing that can't be defined using the standard testing directives, terminate with &end
Post-test phase
&performance 10 &subjective 5 Human Marker 5 &end &totalmark 15
&performance total_testing_mark n
can use &auto instead of &performance
total_testing_mark is the maximum mark for passing all the tests, each failed test deducts mark from this maximum
n is either abort_test_number or deferred_test_number depending on the testmode
abort_test_number: if testmode is automarked, the autotesting aborts after failing n tests. This is described very well here
- deferred_test_number: if testmode is deferred, the first n tests are immediate autotesting, thereafter the autotesting is deferred until the human marker is present.
&subjective total_subjective_mark
description TAB mark
description TAB mark
- ...
&end
Used by Xmark (classrun -mark).
You must insert a TAB character between description and mark in order that Xmark parses the subjective assessment correctly.
&totalmark total_assignment_mark