Size: 3180
Comment:
|
Size: 5427
Comment:
|
Deletions are marked like this. | Additions are marked like this. |
Line 1: | Line 1: |
## page was renamed from Autotesting #acl All:read |
|
Line 2: | Line 5: |
||<#CCCC00-4>|| ||<#FFFFAD> [[give.spec/subspecs|Submission spec]]||<#FFFFAD> [[give.spec/runspecs|Autotesting spec]]||<#FFFFAD> [[http://www.cse.unsw.edu.au/~give/Admindata/tutors/xmark.html|Xmark]]||<#FFFFAD> [[Plague|Plagiarism Detection]]|| |
|
Line 3: | Line 8: |
* [[Give|Install give and sms for a new session.]] If you have installed give and sms, proceed to next step. |
* [[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 }}} |
Line 6: | Line 37: |
* creates ''`assignment`'' directory under the current work directory * 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 [[give.spec/subkeysubgroup|subkey and subgroup]] directives. * Enter the submission specification into the `give.spec` file. Read about [[give.spec/subspecs|subspecs and related submission]] directives. |
* 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 [[give.spec/subkeysubgroup|subkey and subgroup]] directives.'' * Enter the submission specification into the ~+`give.spec`+~ file. . ''Read about [[give.spec/subspecs|subspecs and related submission]] directives.'' |
Line 13: | Line 48: |
* If the submit works, the files can be found under the assignment directory. * Enter the autotesting specification into the ''give.spec'' file. Read about [[give.spec/runspecs|runspecs and related autotesting]] directives. |
* If the submit works, the files can be found under the ~+''`assignment/group`''+~ directory. * dryrun to test the submission pass a simple test. Create a ~+`dryrun`+~ file under ~+`$WORK/`''`assignment`''+~ . Example: [[https://www.cse.unsw.edu.au/~give/Documents/Examples/2521-20T1.dryrun|dryrun]] * Enter the autotesting specification into the ''give.spec'' file. . ''Read about [[give.spec/runspecs|runspecs and related autotesting]] directives.'' |
Line 16: | Line 57: |
* ~+'''`genrun`''' ''`assignment`''+~ - compile the spec into shell scripts * `GROUPS`, `SUBKEY` ~-(exists if `&subkey` is not the default `stuID`)-~ * `compile` * `execute` * `compare` * `cleanup` |
* ~+'''`genrun`''' ''`assignment`''+~ - compile the spec into shell scripts (below) * ~+`GROUPS`+~ * ~+`SUBKEY`+~ (created only if ~+`&subkey`+~ is not the default ~+`stuID`+~) * ~+`compile`+~ * ~+`execute`+~ * ~+`compare`+~ * ~+`cleanup`+~ |
Line 23: | Line 66: |
* `tests` directory * `results` directory |
* ~+`tests`+~ directory * ~+`results`+~ directory |
Line 28: | Line 72: |
Line 34: | Line 77: |
* ~+`less $OUT/summary.assignment`+~ - summarises the run results, it can reveal problems with the autotesting | * ~+`less $OUT/summary.assignment`+~ - show summary of run results, useful when checking the autotesting works |
Line 36: | Line 81: |
Line 39: | Line 85: |
. ~-''to avoid a rerun, you can use the `-t` option of rungrp''-~ | . ''To avoid a rerun, you can use the ~+`-t`+~ option of rungrp'' |
Line 41: | Line 88: |
Line 42: | Line 90: |
* '''&withhold''' . ''assignment'' . '''&end''' . add this to `$WORK/give.spec` to stop students collecting assignments before tutors have finished marking |
* 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 }}} . |
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.
- 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.
dryrun to test the submission pass a simple test. Create a dryrun file under $WORK/assignment
Example: dryrun
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, don't timestamp, don't update logs
-m
mark phase, don't run if already 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