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