(with lots of reference to BitterSuiteWalkthrough)
For This Walkthrough, we will assume that all work is being done with Assignment 1.
On the assignments.html
page, there should be a link to assignment (a1.html
)
that is commented out. First, move the actual assignment file to the
public_html/assns
folder. Then uncomment the link and test it out.
If it says that you do not have permission to access this folder, you must
change the permissions on the file, so type chmod a+r a1.html
. The assignment
is now available for students to view.
The hand in folder should already be created, but if it is not, simply create a
folder called a1
in the folder handin
in the main course account.
In your command window, enter the cs115/marking/
folder.
Issue the following commands:
mkdir a1 chmod 710 a1 cd a1 mkdir testp.1 chmod 710 testp.1 cd testp.1
Now we create the runTests
and computeMarks
files.
touch runTests chmod 750 runTests touch computeMarks chmod 700 computeMarks
Note: The chmod
commands listed above may or may not be necessary
for your scripts to operate, but they may provide more security than
the default settings.
The most important things to check are that runTests inside of the test directory is readable and executable by the _course_-t group, and that nothing is world-readable or world-writeable. For security reasons, nothing should be group-writeable either, and should only be group-readable if absolutely necessary since student code is run from an account with matching group permissions.
The next step is to place code inside of runTests
and computeMarks
for rst
to execute.
So, using your favourite text editor, put the following code inside of
runTests
:
#!/bin/bash /u/isg/bittersuite2/runTests/scripts/runTests
and the following code inside of computeMarks
:
#!/bin/sh exec /u/isg/bittersuite2/computeMarks/scripts/computeMarks -q -f -n
Create the following two folders in your testp.1
folder.
mkdir in chmod -R 750 in mkdir provided chmod 750 provided
See the Scheme specific Bittersuite page for details on testing hierarchy and different options for formatting tests.
In the folder marking/a1/
, input the following:
mkdir test.pt cd test.pt touch runTests chmod 750 runTests touch computeMarks chmod 700 computeMarks
Put the same code from the other runTests
and computeMarks
into these files.
Using the same hierarchy as the autotests, create one simple test for each of the questions.
Ensure that you have all of the right options.ss
files and test.ss
files.
Once the assignment is open for submission, uncomment the section on the drop down menu on the request public test web page so that students can request public tests.
First of all, in the folder handin/a*
, create a file called .subfiles
In that file, type the names of the files to be submitted. For example:
a1q1.{ss,scm} a1q2.{ss,scm} a1q3.{ss,scm}
To open the assignment, types the following in the command window
/u/isg/bin/deadline a1 o
To set a dealine:
crontab -e
This will open up an editor, in which you will write the command that will close the assignment submission at the right time.
The format you should follow is such
#Comment stating purpose of command minute hour date month day /u/isg/bin/makelateclone a*
For example, in order to have assignment 1 due at 4:00 on a May 23, use the following
#Assignment 1 deadline 00 16 23 05 * /u/isg/bin/makelateclone a1
Note that we use *
because the day of the week is not important. Now, as of 4:00 p.m.
on May 23, a1
will no longer be available for submission on time, but a folder a1late
will be created where, if they still choose to, students can submit their late assignments.
First, put some sample student submissions in the handin
folder to try out your tests.
From the command line window, use the RST command.
rst a1 p 1 '*' time
a1
is the name of the folder in handin where the assignments will be found.
p
means that .ps
files will be created with the students code, ready for printing for the markers.
1
is the number after the .
in testp.1
'*'
refers to which students you want to test. To test all the students, use '*'
. To test one student,
type their use ID between the quotes. To test a group of students (for example, all students whose IDs
start with b
would be 'b*'
. To test multiple individual students, separate their IDs with spaces, with
all the IDs enclosed in square brackets '[ m2jones h5smith ]'
time
allows you to test multiple times, and save the results from all of the tests. For example, the first
time you run your tests, use 1
, then 2
and so on.
The results will be saved in a folder /marking/a1/testp.1.time
Note: When testing many students, use distrst
instead of rst
, allowing you to run multiple submissions at once.
See MossScripts
Run the Autotests one final time, using printOut
as the timestamp
distrst a1 p 1 '*' printOut
Once distrst
has finished, if everything is in order, you are ready to send the assignments to the printer using the following code.
printOut a1 1 printOut lab -g
This will send everything from the printOut timestamp to the Graphics printing station on the main floor of DC (across from the library). The -g
tag send it to graphics with instructions. The lab
tag will print out the assignments sorted by lab, so they do not have to be resorted in order to hand back. You will receive an e-mail from Graphics when the assignments are ready for you to pick up.
When you have the assignments back, sort them into equal piles for each marker, and provide each one with a list of the assignments they are marking, as well as the marking scheme and the solutions to the assignments.
-- JonathanTemplin - 08 Jun 2009