Resources and Information for CS 138 ISAs
This TWiki is for technical details only. Any other duty information can be found in Waterloo LEARN (
D2L): CS Instructional Support Group -> Course Admin & Duties for ISAs.
Key Links
Timeline
Week 0-2:
- Meet your colleagues.
- Enter the course account and familiarize yourself with the locations of files, the directory structure, and all the HTML files under public_html.
- Complete the training required by the University of Waterloo.
- Attend the ISA training sessions, especially the ones on Linux, course accounts, and Marmoset.
- View
manual.txt
in the course account under the useful_info
folder to get familiar with your work.
- Attend the lectures and give feedback about the lectures to the instructor.
- Prepare for the tutorials.
- Set up and release the first assignment(s). Details are in the "Assignments" section below.
- Monitor and answer questions on Piazza and the course email.
- Hold office hours and tutorials.
- When an assignment is due, update the marks and run MOSS. Details are in the "Assignments" and "MOSS" sections below.
Throughout the Term
- Continuously check the course email and reply to any pertinent emails. Typically, the order of importance is course staff > student emails.
- Regularly check Piazza and answer student questions.
- Attend the lectures and prepare for the tutorials.
- Hold office hours and tutorials.
- Read through the assignment specifications and make any necessary fixes on the PDF before assignments are released.
- Release new assignments when the time comes.
- When an assignment is due, update the marks and run MOSS on student submissions.
Midterm & Final
- On the exam day, arrive at the ISC's office at the specified time for instructions on proctoring the exam.
- Proctor the exams.
- Attend the marking meeting and mark the exams.
For midterm only:
- Post an announcement on Piazza when midterm marks are released. Include information about midterm remark requests.
- Handle midterm remark requests as instructed by the ISC.
Course Directory Structures
Most directories contain a README.txt with details pertinent to their specific contents/function.
- Course Account (cs138@linux.student.cs.uwaterloo.ca)
-
useful_info
: Contains useful instructions, such as ssh.txt
, first_time_setup.txt
, dailyTasks.txt
, weeklyTasks.txt
, etc.
-
archives
: Contains backups of previous terms.
-
bin
: Contains scripts used by other scripts.
-
marks
: For downloading and compiling assignment marks.
-
moss
: Workspace for downloading student submissions and running MOSS.
-
public_html
: Contains the contents of the course website.
- Testing Account (cs138t@linux.student.cs.uwaterloo.ca)
-
marmoset
: Contains folders for assignment test setups and canonical solutions to be uploaded to Marmoset.
Assignments
First Time Setup
- Clone the staff git repo to your personal account.
- In the testing account, copy over the last term's folder (e.g. w24) and rename it after the current term.
- Update the term/year information on
~/public_html/cgi-bin/displayMarks.py
in the course account. This script is used to display the unofficial marks on the course website.
Setup For Each Assignment
- Create a directory for the assignment. It is recommended to separate the contents into at least the three following sub-directories:
- Description: The LaTeX and other files (such as images) for creating/editing the assignment PDF.
- skeleton: The skeleton files for the assignment.
- solution: Solution files for the assignments.
- Copy over the assignment files from the previous offering's files.
- Modify the year and the due dates for the assignment in the LaTeX file.
- Read through the specifications carefully with the instructor and modify them if necessary.
- Attempt to do the assignment yourself before releasing it. This helps you identify which specifications require further clarification.
- To compile the LaTeX file into a PDF, run
pdflatex <.tex-file-name>
.
Marmoset Setup
The details can be found on
~/marmoset/README.txt
in the testing account.
- In the current term's folder, navigate to the directory for the current assignment. Within each project folder, there should be at least a directory named "test" for the test setup, and another named "sol" for the solution files.
- For projects that use standard input/output, you may need to generate the
*.out
, *err
, and *.expected
files by running ./maketests
in the test/code
directory.
- Update the test setup if necessary. The instructions are provided in
~/marmoset/README.txt
.
- Run
~/marmoset/bin/runtest <solution-directory>
to test the solution files for correctness and generate the zip files.
- On Marmoset, create a new project for each part of the assignment.
- Upload the test setup and the canonical solution to each project. Assign points to activate the test setup.
Releasing the Assignment
- Create an empty git project in the student skeleton group, and clone the repo to your personal account somewhere else.
- Copy over the skeleton files and the PDF.
- Commit the changes and push the commit to the remote repo. Students should be able to see and pull the assignment files now.
- Change the Marmoset projects' visibility to "Visible to Students". Marmoset projects should now be available for the students to see and submit their solutions.
- Post an announcement on Piazza and/or LEARN about the newly released assignment.
After the Deadline
- Grant any extensions for students on Marmoset as notified to you by the ISC.
- After the deadline passes for all students (including those given extensions), change the test-outcome visibility of each assignment project to "Everything".
- Inside the directory
~/marks/download
in the course account, run ~/bin/marm_sql -v -m <assignment>
to download the marks for the assignment.
- Edit the script
combine.bash
as necessary. Then, run ./combine.bash > public-marks.txt
to calculate the marks and compile them into a single file.
- Double-check that the marks have been compiled correctly; change the marks manually for instances like remark requests if necessary.
- Document all the remark requests in a single text file.
- When ready to publish, copy
public-marks.txt
to the parent directory (i.e. ~/marks
). Students should now be able to see their marks on the Unofficial Marks page.
- Download the student submissions from Marmoset and run MOSS as explained in the section below.
MOSS
The instructions can also be found on
~/useful_info/manual.txt
in the course account.
- Create a directory for each assignment project in
~/moss
. You may want to create directories for each assignment first, then create sub-directories for each project.
-
cd
into each project directory, then run ~/bin/marm_sql -v -d <project-name>
. This will download all student submissions for the project in a new sub-directory with the project name.
- You can also download the submissions from the Marmoset web interface.
- Run
yes O | /u/isg/bin/runMoss -d <path-to-submission-directory> '-l ascii'
to run MOSS on the submissions. This will generate a sub-directory named html
with HTML pages of MOSS results.
- Note that the O after
yes
is the capital letter O, not zero.
- You may want to replace
ascii
with cc
in the command to run MOSS with C++ language.
- To generate a more readable results page, run
cd html
then u/isg/bin/moss_makereadable index.html 10 > readable.html.
- Open the
readable.html
file and manually inspect the submissions with high match percentages.
- Compile a list of submissions you think are suspicious, then follow the instructions from your ISC.
Others
Please see the folder
~/useful_info
for more details on the course.
Non-Technical (To be moved to D2L)
Outdated
No Longer Relevant
<As CS138 makes use of
Marmoset for testing but also requires some hand marking from TAs, it's worth checking
PrintingMarmosetAssignments for scripts that will help accomplish this.>
Topic revision: r16 - 2024-04-15
- MaxJung