TWiki
>
ISG Web
>
CompSci116
>
Assignments
(2013-11-12,
GradonNicholls
)
(raw view)
E
dit
A
ttach
---+ Walkthrough For Everything to do with Assignments %TOC% (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. ---++ Create tests for the assignment ---+++ Create a tests folder Use =[[AutomatedAutotestCreation][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. ---+++ Write 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. ---++ Create the assignment in Markus See [[https://cs.uwaterloo.ca/twiki/view/ISG/MarkUs][Markus]] for details. Make sure to disallow re-mark requests on the assignment. ---++ Setting Up ---+++ Post Assignments on Course Web page. 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 Announcement on Course Web page. 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. ---++ Preparing Submitted Assignments for Graders ---+++ Write Autotests Using =[[AutomatedAutotestCreation][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). ---+++ Prepare MarkUs for Graders 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. ---+++ Run RST See [[MarkUsGroupsSVNRepos#Auto_testing_Procedure][here]] for details. The abbreviated instructions are: 1 Create a folder to download students assignments to, such as =/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= 1 Download groups from MarkUs, and save to =/u/csXXX/marking/a01/a01groups.csv= 1 Set the variables in =<nop>CheckoutAndCommit.py= and =<nop>MakeGradedAssignment.py=. See MarkUsScripts for detailed info about those scripts. 1 Checkout (download) the students code using =python CheckoutAndCommit.py checkout viewcmds= followed by =python <nop>CheckoutAndCommit.py checkout runcmds= 1 Run the autotests: =distrst -t t a01_autotest 1 toPrint= (note: the second 1 should not change from assignment to assignment) 1 Run any other pertinent scripts (such as checking student test cases with =checktests.sh= (Racket) or =test_tests= (Python); details for these scripts can be found at CheckTestcases and TestTests) 1 Combine all of the student files, including autotest results, into a single file: =python <nop>MakeGradedAssignment.py= 1 Commit (upload) the autotest results to Markus using =python <nop>CheckoutAndCommit.py commit viewcmds= followed by =python <nop>CheckoutAndCommit.py commit runcmds= 1 We have to tell MarkUs to mark the revision we committed from the previous step. Logon to MarkUs with Admin Role, and go to the assignment's "Properties" page. 1 Change the deadline to a few minutes after =<nop>CheckoutAndCommit.py= finished. 1 Go to the "Submissions" page. Every row should be white, with a blue square for marking state. Click the "Collect All Submissions" link. Wait until every row is green. 1 Change the deadline back to the posted deadline so that students don't get confused. ---+++ Assign Graders Follow the instructions in =/u/cs116/marks/markusGraders/HowToAssignGraders.txt= gives the instruction to assign graders. ---+++ Run moss See [[https://cs.uwaterloo.ca/twiki/view/ISG/MossScript][Running moss]] ---++ Release Marks and Post Solutions ---+++ Release marks on website The file =/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/cs116-scripts/AssignMarks/HowToConvertMarks.txt=. ---+++ Release marks on Markus Under =Submission=, select all students, and click =Release Marks=. ---+++ Post Solutions Get a copy of the assignment solutions from the course instructor, and save it as a PDF in =/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.
E
dit
|
A
ttach
|
Watch
|
P
rint version
|
H
istory
: r19
<
r18
<
r17
<
r16
<
r15
|
B
acklinks
|
V
iew topic
|
Ra
w
edit
|
M
ore topic actions
Topic revision: r19 - 2013-11-12
-
GradonNicholls
ISG
ISG Web
ISG Web Home
Changes
Index
Search
Webs
AIMAS
CERAS
CF
CrySP
External
Faqtest
HCI
Himrod
ISG
Main
Multicore
Sandbox
TWiki
TestNewSandbox
TestWebS
UW
My links
People
CERAS
WatForm
Tetherless lab
Ubuntu Main.HowTo
eDocs
RGG NE notes
RGG
CS infrastructure
Grad images
Edit
Copyright © 2008-2025 by the contributing authors. All material on this collaboration platform is the property of the contributing authors.
Ideas, requests, problems regarding TWiki?
Send feedback