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

  • &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
  • &backups - Keep previous submissions

    • Example:
      # current submission and keep the previous three submissions
      &backups = 3


CategoryGiveSpec

  • &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


CategoryGiveSpec

Autotesting Specs

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


CategoryGiveSpec

give.spec/assignment (last edited 2014-05-20 10:44:00 by MeichengWhale)