This page describes important tasks CS 247 ISAs must do throughout the term. The focus of this page is mostly on tasks that require technical knowledge or step-by-step instructions (rather than e.g. "set up a meeting with the course instructor").
See CompSci241ISADuties for information on these topics.
All the files for the course webpage are stored in /u/cs247/public_html
. The HTML source for the main page of the site is in the file index.html
. Most of the other webpages are stored in /u/cs247/public_html/current
, and its various subdirectories. Changes you make to files in public_html
will be reflected immediately on the course webpage. All file paths listed below will be relative to /u/cs247/public_html
.Some of the first things you'll want to do are:
current/outline.shtml
) and "Personnel" ( current/personnel.shtml
) section to list the current term's instructor and ISA. Make sure to change the office hours as well.
current/Assignments
current/newsgroup.shtml) and MarkUs (current/mark.shtml
) links to point to the current term's pages.
Most of the information for setting up Marmoset and giving student access can be found on the CompSci241ISADuties page: the details are very similar. Any differences will be listed below. Note that for CS 247 there will be two Marmoset accounts per user: one for the course assignments ("CS247" account) and one for the course project ("CS247_Project").
Each assignment problem in CS 247 gets its own Marmoset project. Here is how to create a project:
After creating the projects, you need to upload and activate the test scripts for each assignment problem. The marmoset tests and solutions can be found in /u/cs247/marmoset
on the CS247 course account.
/u/cs247/marmoset
folder. Look for a file called test.zip
.
sol.zip
Your ISC may have already set this up for you. If not, talk to your ISC and see CompSci241ISADuties for a detailed setup procedure.
Several scripts used by ISG-supported courses expect there to be a file in the home directory of the course account containing information about the course staff for the current term. The file should be stored in /u/cs247
and should be named .coursestaff.XXXX
, where XXXX is a number corresponding to the current term. The term number should be in the "MFCF format": * The first two digits encode the current year, e.g. 12 for 2012. * The last two digits encode the starting month of the term: 01 for January, 05 for May, or 09 for September. For example, the file for Fall 2012 would be called .coursestaff.1209
, and the file for Winter 2015 would be called .coursestaff.1501
. The command termcode -m
returns the number corresponding to the current term in this format.
The format of the course staff file is described at ClassListPerlModule, though it is not necessary to include the information about lectures, tutorials, labs, etc. as mentioned on that page. It should be easy to figure out what the file should contain by looking at examples from previous terms. Here is an example course staff file:
gdavies:tutor:::: glu:isc:::: olhotak:instructor::::
You can check that this file is set up correctly by visiting the marks page on the CS 247 website. This page uses the course staff file to determine who the ISC for the current term is. If the file is correct, it should show the ISC's name on this page. Otherwise, it will show "None".
Details are avaliable at cs247/handin/README.txt.
To upload student submissions from Marmoset to MarkUs, follow these steps. This could be turned into a script with a little extra work, but this is the basic algorithm
/u/cs247/markus/bin/CheckoutAndCommit.py
. Read the comments in the file for details, the new settings should all be self explanatory once the current term's MarkUs instance has been set up.
/u/cs247/markus/bin/CheckoutAndCommit.py checkout viewcmds
. This will output the sequence of commands that will be run in the next step. Check over one or two entries to make sure they look correct (i.e. that the correct assignments, students, and file locations appear, etc.)
/u/cs247/markus/bin/CheckoutAndCommit.py checkout runcmds
. This will checkout the MarkUs repositories for every student for the current assignment. At this point they should all be empty.
/u/cs247/handin/
and unzip them there.
cd /u/cs247/handin/
- if you are not already there
./changename.sh AxQy
. This will change the names of the individual directories within AxQx from the format "studentName-On-time", etc. to read just "studentName"
./copyToMarkus.sh AxQy ~/markus/AxQy
to copy all of the files in the AxQy directory to the /u/cs247/markus/AxQy
directory (this is the checkout folder from CheckoutAndCommit.py) (see handin/README.txt for more details about how this script expects the files to be organized)
/u/cs247/markus/bin/CheckoutAndCommit.py commit viewcmds
to see the list of commands that will be run in the next step. As before, check to make sure that the commands seem reasonable.
/u/cs247/markus/bin/CheckoutAndCommit.py commit runcmds
to save all of the assignment submissions to Marmoset (i.e. commit to the respository)
Since this course uses a subtractive marking scheme for its assignments MarkUs cannot calculate the grades itself. To obtain the student grades:
/u/cs247/markus/bin/
directory
getMarks.config
file to give the number of questions in the assignment and the number of criteria, max mark and base mark for each question (format specified in getMarks.bash
)
getMarks.bash rubric detailedMarks
, this will generate the marks as a csv to stdout, you should redirect it where you want it.
sed -i "s/\r/\n" rubric
then add a newline to the end of the file to fix it.
Your ISC will ask you to run Moss (plagiarism checking system for code) on some of the assignment problems. The exact set of assignment problems used can vary slightly from term to term. Once you know which assignment problem you will be running Moss on, see RunningMoss for more details on the process. For CS247, navigate to the /u/cs247/moss/Scripts
directory and open the moss247.sh file. You will want to change the lines that say "TERM1NUM=abcd", "TERM2NUM=efgh", and "TERM3NUM=ijkl" to the appropriate term numbers for checking against a previous term's assignments, uncomment line 116 and (or) line 117 and (or) line 118 depending on the terms you want to check against with. Check with your ISC to decide which previous terms to test against. Copy student solutions from Marmoset into /u/cs247/handin
in a directory called "mossAxQy". Navigate to /u/cs247/moss
and run the command "Scripts/moss247.sh mossAxPy". The moss247 script will copy the directory to /u/cs247/moss
and run moss on that directory and against any past terms. If asked about exceptional cases, enter "c" to continue. After the scripts finish running you will get the output in the file /u/cs247/moss/mossAxPy/html_cc/_readable.html
As of writing, CS 247 has a group project that students are allowed to complete either by themselves or in pairs. The following sections explain any relevant procedures for the project.
Details are avaliable at cs247/group/before/README.
Create the directory /u/cs247/handin/groups
if it does not already exist. Create the file .subfiles
with the following contents:
############## group.txt
Then run the deadline command to set a due date for the submission. See PreparingSubmitAtStartOfTerm and PreparingSubmitForEachAssignment for more information.
Currently, there is a readme located at /u/cs247/group/README
that describes the procedures for setting up project groups in detail (note that this readme differs from the instructions below and not all of the steps are completed every term; check with you ISC if you are unsure). These steps are to be performed after the due date to minimize manual edits. If you have to make changes to the groups after they have been created the first time, those edits should be done by hand since the scripts could mess up the existing group ordering (e.g. if you add a new group, that could shift existing groups back, etc.). The steps are as follows (see the readme for more information). Many of these steps could be modified for more automation.
/u/cs247/group/before.bash
. This script is just a wrapper for most of the scripts in the before directory that would need to be run in order. Here we just simplify the task slightly by not requiring you to know the order of execution.
cat /etc/group | grep "cs247"
to ensure that no groups are leftover from previous terms. If you get no output then you are fine. If you get output, you will have to remove those groups. See man edit_group
on the student.cs machines for details on how to remove groups.
man edit_group
for information on the edt_group
command. This command will allow the cs247 account to create group names of the form cs247_xyz
without any extra permissions from CSCF.
setenv PATH "${PATH}:`/bin/showpath Usedby=Maintainer ${HOME}/bin standard`"
to set the PATH environment variable
/u/cs247/group/before/createGroup.bash
to actually create the groups
cat /etc/group | grep "cs247"
to ensure that groups have been created
/u/cs247/group/after/email_groups.bash
to change the tutor_sig variable, then run the script to email all of the students in the course. You can uncomment/comment the lines near the bottom to email to the cs247 account first to test that everything is working.
/u/cs247/group/before/marmosetGroupsClasslist
to create a classlist file for the marmoset group accounts. This script expects to receive the course classlist file on standard input.
Students will go to https://www.student.cs.uwaterloo.ca/~cs247/cgi-bin/project_booking/demo.php to book a demo timeslot for the project. Edit the demo.php file (
/u/cs247/public_html/cgi-bin/project_booking/demo.php
) to update the time when booking closes, the demo room, and set the READ_ONLY variable at the top to 0 (you will need to set this variable to 1 to close booking). Set up the list_of_times.txt
file with time ranges that are valid options, e.g.:
Wed_a 24 July 2013 1230 1410 Wed_b 24 July 2013 1250 1410 Wed_a 24 July 2013 1630 1810
To specify that 12:30 - 2:10, 12:50-2:10, on July 24, and 4:30 - 6:10 on July 24 are valid time ranges, etc. The demo.php will generate all of the time slots of length 20 minutes each (this is the variable LENGTH at the top of the generate_time_options
python script, in case it ever needs to be changed). Finally, copy the /u/cs247/.classlist
file to /u/cs247/.classlist_tmp
and add the following two lines:
99999998:rschlunt:Schluntz, Rob:001:gene:engineering:eng:0:NU:BM:Al Masri:R:F:1:lec=001,tut=101,tst=201 99999999:kaanders:Anderson, Karen:001:gene:engineering:eng:0:NU:BM:Al Masri:R:F:1:lec=001,tut=101,tst=201
Replacing "rschlunt:Schluntz, Rob" with your details. You should then be able to go to the demo page above to book a time and make sure that it all works before telling the students about it. Also don't forget to delete your test booking when you're finished!
Copy all of the student submissions into /u/cs247/aaProjectDemos
. The submissions should remain in the handin directory as well, but all demo testing and modifications should be made on this copy.
You will be given a marking sheet for the demos. There are three columns: Present, Graphical, and Updates. The requirements for these levels are cumulative, so it is not possible to satisfy "Updates" without satisfying both Present and Graphical, etc. When marking, you will run down the checklist to ensure that each feature is present and check off the appropriate box depending on how well the feature is completed. After running through the checklist, you will then get to the bonus features section. For each extension, write a short description of what the feature is supposed to be. You must then use the feature to ensure that it works. If it works, you then give a mark from 0 to 5 depending on how much the feature improves the experience. Bonus features should be marked after the students have left.
If the student's submission does not run without modifications, check the box on the top right. Students are allowed 2-3 lines of modifications, which you must make note of if they manage to get it working.
When entering the marks for the bonus features, remember that even though students can have more than 2 extensions worth 5% (6.25 marks if the total is 12.5) each, they can only receive a maximum of 10% extra.
If xterm fails to open, try the following in a terminal:
-- AbrahamDubrisingh - 2014-08-21
-- MaxBardakov - 2015-08-20
-- AlexRowaan - 2018-08-16