(with lots of reference to BitterSuiteWalkthrough)
For This Walkthrough, we will assume that all work is being done with Assignment 1 on ubuntu.student.cs
. This document has been significantly changed at the beginning of Winter 2013. If there is anything not working, please contact your ISC or look up the older versions of this document.
Use make-all.py
to create a folder called aXX that contains test.1, which is used to store auto-tests, and test.pt, which is used to store public tests.
In /u/csXXX/marking/aXX/test.pt/in/
, write at least one test for each question. For each test, create a file (and directories) .../in/Q/tXX/test.rkt
, where Q
is the question number and XX
is the test number. You do not need to make-test.py
to create the public tests.
Public tests should cover simple non-base cases; for example, a list of length one. Checking the empty list is less useful, because it doesn't ensure the students are including the correct types of data in the list.
If you have trouble to find format of public tests or auto-tests, u/csXXX/archives/XXXX/Marking/
has the tests from previous terms.
See Markus for details. Make sure to disallow re-mark requests on the assignment.
On the assignments.shtml
page, there should be a link to the assignment (a1.pdf
)
that is commented out. First, move the actual assignment file to the
public_html/Assignments
folder and rename it to match the link in assignments.shtml
. 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 755 a1.pdf
. The assignment
is now available for students to view.
You can post other files, like interfaces, in the same way.
Post an announcement to tell students that the assignment is posted, and point out the due date in this announcement. Courses with Piazza will probably want to post an announcement there as well.
Using make-tests.py
, write autotests for each question. Consult with the instructor who wrote the assignment; they may want to contribute and/or review test cases. While writing test cases, it's good to keep two things in mind: how correct do students need to be to pass, and how correct do students need to be to get perfect. Usually you will want a wide spread of difficulties in the tests you write so that students with major mistakes get some marks (from easier tests), while students with minor mistakes lose some marks (from harder tests).
Create a marking scheme and annotations on MarkUs. Again, consult with the instructor to see how much input they want to have in this process. ISAs from previous terms should have archived past marking schemes and annotations as csv files; you can upload these files to use as a starting point for this term's assignment.
/u/csXXX/handin/a01_autotest/
, and create a symbolic link to the autotests with a matching name using ln -s /u/csXXX/marking/a01 /u/csXXX/marking/a01_autotest
/u/csXXX/marking/a01/a01groups.csv
CheckoutAndCommit.py
and MakeGradedAssignment.py
. See MarkUsScripts for detailed info about those scripts.
python CheckoutAndCommit.py checkout viewcmds
followed by python CheckoutAndCommit.py checkout runcmds
distrst -t t a01_autotest 1 toPrint
(note: the second 1 should not change from assignment to assignment)
python MakeGradedAssignment.py
python CheckoutAndCommit.py commit viewcmds
followed by python CheckoutAndCommit.py commit runcmds
CheckoutAndCommit.py
finished.
/u/cs116/marks/markusGraders/HowToAssignGraders.txt
gives the instruction to assign graders.
/u/cs116/marks/public-marks.csv
stores all student-viewable marks, and if you update marks in public-marks.csv
, it will automatically updates the marks on website.
For the script to update marks in public-marks.csv
, read /u/cs116/marks/markusAsgnMarks/HowToConvertMarks.txt
.
Submission
, select all students, and click Release Marks
.
/u/csXXX/protectPDF/a01solns/a01solns.pdf
(to save the original file as a pdf, use the "print to PDF" option from the print menu). You may need to change the permissions of this file and/or folder; follow the instructions on posting the assignment to the course webpage. Edit the array in /u/csXXX/public_html/protect/requestAssignmentSolutionCommon.php
to include the new assignment.