Size: 3535
Comment:
|
← Revision 25 as of 2021-03-30 09:20:31 ⇥
Size: 4011
Comment:
|
Deletions are marked like this. | Additions are marked like this. |
Line 2: | Line 2: |
#acl All:read |
|
Line 4: | Line 6: |
||<#FFFFAD> [[give.spec/subspecs|Submission spec]]||<#FFFFAD> [[give.spec/runspecs|Autotesting spec]]<<BR>>~-[[https://cgi.cse.unsw.edu.au/~give/Autom/| Web interface]]-~||<#FFFFAD> [[http://www.cse.unsw.edu.au/~give/Admindata/tutors/xmark.html|Xmark]]||<#FFFFAD> [[Plague|Plagiarism Detection]]|| | ||<#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 6: | 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 <<Include(CreatingMarkFields)>> |
Line 9: | Line 14: |
* 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.'' * To test the submission pass a simple test, create a ~+`dryrun`+~ file under ~+`$WORK/`''`assignment`''+~ . [[https://www.cse.unsw.edu.au/~give/Documents/Examples/2521-20T1.dryrun|dryrun example]] |
Line 16: | Line 28: |
* 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. * Enter the autotesting specification into the ''give.spec'' file. . ''Read about [[give.spec/runspecs|runspecs and related autotesting]] directives.'' |
Line 19: | Line 34: |
* ~+'''`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 26: | Line 43: |
* `tests` directory * `results` directory |
* ~+`tests`+~ directory * ~+`results`+~ directory |
Line 29: | Line 47: |
. ~+'''`run1`''' ''`assignment`'' ''`group`'' ''`studentID`''+~ - runs specified assignment, output to `$OUT/`''`group`''`/`''`assignment.studentID`'' | . ~+'''`run1`''' ''`assignment`'' ''`group`'' ''`studentID`''+~ - runs specified assignment, output to ~+`$OUT/`''`group`''`/`''`assignment.studentID`''+~ |
Line 31: | Line 49: |
Line 35: | Line 52: |
||<style="border:none;">`-t`||<style="border:none;">test phase, don't timestamp, don't update logs|| ||<style="border:none;">`-m`||<style="border:none;">mark phase, don't run if already marked|| * ~+`less $OUT/summary.assignment`+~ - summarises the run results, it can reveal problems with the autotesting * ~+`grep latepen $OUT/*/assignment.*`+~ - check that the late penalty is applied correctly |
||<style="border:none;">`-t`||<style="border:none;">test phase, will not timestamp, will not update logs|| ||<style="border:none;">`-m`||<style="border:none;">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 |
Line 42: | Line 62: |
. ~-''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 44: | Line 65: |
Line 45: | Line 67: |
* '''&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.
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