CS105 ISA Handbook

Getting Started

Congrats on becoming an ISA! We hope you enjoy your term and make some great memories along the way (:
We have created this manual to help specifically with the online version of CS105 and to hopefully help with your first few weeks.

ISA: Instructional Support Assistants help with marking all course assessments, hold weekly office hours, organize marking marking between TAs, IAs, ISAs. We are first in line for answering general student questions (relating to course content, logistics, debugging).

ISC: The Instructional Support Coordinator will usually deal with enrollment, managing grades, VIFs, cheating cases.

Instructors: They prepare course content / assessments, deliver lectures and hold weekly office hours. You should consult the instructor when creating rubrics and updating course content.

IAs: Instructional Apprentices are graduate students who help with marking labs / tests and hold weekly office hours.

TAs: Teaching Assistants are graduate students who help with marking assignments / labs / tests. They do not hold office hours.

To access the course account, you will first need to follow the instructions to create a public / private key and paste the public key into authorized keys (this should be covered during orientation)

You can access the course account using ssh or samba, we recommend using samba since you will be able to see files in File Explorer / Finder. Follow the instructions here for either Windows or Mac. Here you should be able to find the classlist, course website, moss script and archived course content.

The course website can be accessed at cs105/public_html/index.html, to edit, right click on the file and open it with a text editor.

At the beginning of the course, you will need to edit the website to put in the due dates for each assessment, enter the office hours for the instructors and to also put up the names & pictures of the ISAs, IAs, Coordinator and Instructor.

  • Get pictures of the IAs and ISAs to put on the course website: Put the pictures in the cs105/public_html/ISA_ISC_Photos folder and change its permissions using chmod 755 so it can be seen in the public website.
  • Updae course website to have the correct due dates for each assessment
  • Plan out office hours between ISAs, IAs and instructors and put them up on the course website
  • Create Assignment / Lab Marking Groups in LEARN: Create an Assignment Marking Group for each ISA & TA and create a Lab Marking Group for each ISA, IA & TA(See Learn > Groups to see how this is done)
  • Make an announcement introducing yourself to students on LEARN: (See Learn > Announcements to see how this is done)
  • Trun off auto replies for the course account (email)
  • Course Email

    The course email is used mostly to communicate with students about personal questions (remark requests, debugging) or any question that cannot be asked in the public teams channel.

    Go to Outlook Office and Login using your uwaterloo email account > Click your icon at the top right > Open another mailbox > type in cs105@uwaterloo.ca (the icon should be purple). Once you open that it will take you to a new website called connect.uwaterloo.ca and you should be able to see all the emails.

    Enrollment Questions/ VIF: These emails should be forwarded to the ISC to deal with.

    Debugging and Content questions: If a student asks you to debug their code try to give them a push into the right direction. Do not debug their code for them, but you can give them tips on how to debug their code such as: checking the console, running print statements, etc. As for content questions: point them to the correct lecture and try to explain the concept in different ways and with more examples.

    Remark Requests: For this email you should check their submission and see if any mistakes were made. If any, correct them and email the student telling them where the mistake was and that it was corrected. If none, then explain to the student where and why the marks were lost.

    Extension Requests: For these emails you should forward them to the ISC and Instructor (*make sure you are not sending this to the student*) and ask them how they would like you to proceed.

    Late Submissions: For late Lab Submissions you can ask the student to send you a screenshot of the last modified date and to email you the submission. If the date is fine, mark it as normal, update their grade, and let them know it was graded (See Learn > Grade Items to see how this is done). For late Assignment Submissions you should forward the email to the ISC and Instructor to see how they would like you to proceed.

    Once you have sent a reply to an email and it is done, move it into the Archived Folder, this will help you stay on track with emails.
    If an email is still being dealt with you can Pin and Flag so you don't forget about it.

    At the end of the term, please make a new folder under the "Archives" folder. Name the folder with the current term number (e.g. Fall 2022 is 1229). Move all emails from Archived folder to the new folder.

    At the end of the term, please trun of the auto reply in Outlook Web Application. Address the student to contact the ISA of the course if they need any help.

    Using LEARN

    LEARN is the primary platform for submitting, organizing and grading assesments, so knowing how to use its tools is vital. All of the course content resides here along with dropboxes, rubrics and grades. Announcements will usually be posted on here as well as on Teams.

    To create an announcement, you go to Course Home > Click the Announcements Dropdown > New Announcement.

    Make an announcement stating that Discussions (Participation Mark) happens on Teams! We had a quite a few students who didn't know this.

    To create a new dropbox go to Submit > Dropbox > New Dropbox > Fill it out accordingly. Then select "One file per submission" and "Only the most recent submission is kept", this will stop students from uploading tons of files (which makes marking messy).

    To create a rubric go to Resources > Rubrics > New Rubric. Once you have created one we recommend copying that rubric and editing it to make the new ones. You can do that by hitting the specific rubric's dropdown and selecting Copy.

    You will likely have at least 3 different sections for each assignment. Have a section for the small criterias (1 mark) and then a section for the big criterias (2 or 3 marks depending on the assignment). The last section will be coding style. See example below

    Tip: Go through the assignment yourself before making the rubric. It will be much easier to predict what mistakes students will make which is very useful to know when creating the rubric.

    Once you are completely done and checked to make sure there are no mistakes, set the status of the rubric to Published. To do this: Resources > Rubrics > Click the dropdown of the rubric > Set Status > Published.

    Once it is published go into the Dropbox > Click the dropdown of the Assignment > Edit Folder > Add Rubric.

    To manually input a student's Grade you must go to the Grades Tab > Click the Dropdown of the Grade Item > Enter Grades > Find the Student > Add Feedback and change the Grade > Save and Close.

    Important: Before publishing grades, make sure that the rubric, dropbox and grade item are out of the same marks!

    Once all the marking is done go to Submit > Dropbox > Go into the dropbox you are publishing > Click Publish All Feedback. Then go into Grades > Click the Dropdown of the Grade item > Make Visible to Users. Then wait for the great remark emails to start coming in :)

    To make marking groups go to Connect > Groups > New Category > Fill it out Accordingly. The Enrolment Type should be exactly: “# of Groups”.

    The number of groups is the number of people marking. There shouldn't be any restrictions. The Group Prefix can be "Group". Then under Advanced Properties select Auto-Enroll New Users and Randomize users in groups.

    Distributing the Groups: If you have ISA1, TA1 and TA2, you will have 3 groups. The first week ISA1 can take group 1, TA1 can group 2 and TA2 can take group 3. This rotates every week and make sure you update the TAs/IAs on what group they are marking that week! You can do this using one of the Teams Channel.

    To give students special access, make sure you turn off the New Learn Experience, there should be dropdown arrow on the top right corner.

    To give special access to a student go to Submit > Dropbox > Click the dropdown of the specific Dropbox > Edit Folder > Restrictions > Add Users to Special Access > Find and Select the Student > Change the Due Date and End Date > Then Save.

    Before You Start

    Solution template is available under course account >> solution-template.

    Please DOWNLOAD the template to your local computer before editing

    You will need:

  • LaTeX (can be installed from Self-Services – MacTeX)
  • Visual Studio Code (can be installed from Self-Services)
  • LaTeX Workshop plugin: https://marketplace.visualstudio.com/items?itemName=James-Yu.latex-workshop

    Remove the following file before use:

  • *.aux
  • *.fdb_latexmk
  • *.fls
  • *.log
  • *.synctex.gz
  • Basic Information

    The template structure is:
    |-- root/
     |-- *_*_solution.tex: main file
     |-- code/
      |-- a.js
      |-- b.js
      |-- c.js
      |-- ...

    Baisc formatting suggesstions: no page breaks in the code. This makes easier for students to copy the code from the solution and paste it into OpenProcessing or other IDEs.

    Things need to edit:

    Use Visual Studio Code to do all the editing:

    Generate PDF

    After finish editing, save the code with ⌘Command + S. The LaTeX Workshop will automatically generate the PDF. You will need to trust the folder before the pugin can be called.


    If you have any questions, please contact Christopher He by email: clhe@uwaterloo.ca or message on Teams.

    Using MS Teams

    MS Teams is the primary form of communication for instructors and students. It is the place where general questions are asked, office hours are held and weekly discussions take place. It is also commonly used to communicate with other course staff through chats and/or meetings.

    There is a General channel for every team. This channel is located at the top so it can be used for posting announcements.

    You can also change the channel settings so that students cannot start a post in this channel to avoid student asking questions or posting something unrelated.

    First you need to be a Teams owner, then right click on the channel > Click Manage channel > Change the permission to "Only owners can post messages".

    In this channel, students can ask question relating to course content, assignments, labs, etc. It will be part of your daily tasks to answer these questions.
    If students have questions about their grades or unusual bugs in their code, have them email to cs105@uwaterloo.ca

    Make sure that students do not post their code here!

    This channel is where office hours are held by instructors.

    You can also change the channel settings to avoid student posting something or starting a meeting.
    First you need to be a Teams owner, then right click on the channel > Click Manage channel > Turn on channel moderation > Uncheck "Allow members to reply to channel messages"

    When the time comes for your office hours, make a post stating the duration of your office hours and tell students to type Q under your post to get in line for a call.

    If you choose to do a group office hour, hit reply on your post, and click on the camera icon on the message bar. This will start a meeting under your post that students can join. To end the meeting, click the dropdown beside Leave, and click End meeting.

    Kevin will post a couple of questions every week in this channel. Students may reply to Kevin's post or make their new post to answer one of these weekly questions.

    We will be recording each students participation in these discussions who have replied under Kevin's post or made their own posts. They can gain 1/1 for the corresponding weekly participation mark. This channel will need to be locked at the end of the week so the responses can be marked.

    (See Marking Assesments > Marking Discussions to see how this is done)

    You will need to lock the Discussion channel every week, so students cannot respond to the discussion after the due date has passed. Also, we usually lock all the channels during a testing period so students.

    First you need to be a Teams owner, then right click on the channel you want to lock > Click Manage channel > Turn on channel moderation > Uncheck "Allow members to reply to channel messages"

    There will be an Assignment Marking channel and a Lab Marking channel in the Teams for course staff, here is where you will need to post the marking groups every week for both channels, so markers know which students they will be grading.

    You can also use this channel to discuss unusual cases with marking or changes in the rubric.

    Office Hours

    Office hours is primarily useful for helping students debug their code and learn course concepts. It is usually the most helpful resource for students since they will be on a call with an instructor who can guide them in the right direction with assignments.

    Students usually comment 'Q' under the post, but we recommend that you ask them to comment with their specific questions instead of just 'Q', because it can help you to decide if you want to hold a group meeting for saving time.

    This is the type of office hour that is commonly held since it is best for helping students debug (if there are a small number of students)

    If many of the questions are similar, or you want to go through general concepts before helping individually, you can do a group meeting.

    This is ideal if you find students struggling with the same issues or if you have a large number of students in line for an office hour. We usually also create demos that are similar to assignments / labs and explain them in call so students will find it helpful. Based on surveys, students really liked group office hours more so it is worth a try.

    Marking Assessments

    Organizing and completing marking on time is one of the biggest responsibilities for an ISA. You will need to assign marking groups to TAs, IAs and to other ISAs so they are aware of which students they will be marking every week.

    Organize a meeting every week on Teams where the instructor and all markers are in attendance.
    During the meeting, get feedback on the assignment marking rubric and discuss common issues that may occur during marking to ensure consistency.

    Creating a rubric is only required for assignments / tests.

    Assign a marking deadline for each assesment, ideally, aim to release the grades for each assesment one week after its due date.

    Open the assignment dropbox, View By > Groups > Apply. Select the group you are marking from the Assignment Marking Groups and download the submissions from that group.

    When marking each student, use the attached rubric and select the appropriate criteria. Once finished, the marks are automatically added up in the Score, then add feedback if needed and hit Save Draft (do not hit publish). Repeat this for every student in your assigned group.

    Open the lab dropbox, View By > Groups > Apply. Select the group you are marking from the Lab Marking Groups and download the submissions from that group.

    Usually when marking each student, 1 mark is given for each lab question. Add feedback if any marks were deducted and hit Save Draft (do not hit publish). Repeat this for every student in your assigned group.

    Labs are marked a lot more lenient than assignments.

    If the weekly participation mark is based on the Team discussion channel, then when you are marking students' discussion, we recommend that you have both opened the database window and the Team, then you can copy and paste each student's name into the database search bar so that you can enter 1 as their weekly participation grade.

    For those who have not participated, you do not have to deal with them because all blank grades will be assigned with a 0 by Barb. Sometimes the weekly participation mark is based on the LEARN survey. If so, you do not have to record the mark since Barb has a way to export all data from LEARN into the database.

    It happens probably twice each term (after the test #1 and test #2).

    Tests are marked on LEARN without any attached rubric. You may not mark tests by groups. Markers usually distribute the work based on different questions of the test. You can create a text-based rubric so that when leaving students feedback, you can paste the rubric items there.

    Using MOSS

    MOSS is anti-cheat tool used to scan student code and detect plagiarism. It searches through each student's code and displays a similarity percent for any identical code. It is usually run only for final projects but it may be used for assignments as well.

    This is for submissions in zip files.

    First, navigate to cs105/moss/handin/ in the course account and create a folder named after the assignment (eg. A01).
    Then navigate to LEARN, download all student submissions and unzip its contents into the folder you created (cs105/moss/handin/A01/).

    Now the files in the folder should look something like '0123-4566 - John Smith - 20123444 - Dec 12, 2020 123PM.zip'.
    Next, open the submission folder in terminal (cs105/moss/handin/A01/) and run the command >>renameSubmissions.

    Now all the folders should be unzipped and be named after the students WATIAM username (eg. j123smith).
    You might have to go through the submissions and manually change a few.

    This is for submissions in pdf files with links to sketches on Open Processing.

    First, navigate to LEARN, download all student submissions and put the zip file into the folder cs105/moss/handin/ in the course account.

    Then you can use the command >>~/moss/moss_openprocessing.py [output folder] [zip file] (eg. >>~/moss/moss_openprocessing.py handin/A01 handin/'A01 Downloaded Sep 23, 2021 1005AM.zip') to organize the submissions.
    The script examines the pdf submissions downloaded from LEARN and then downloads the corresponding JavaScript files from Open Processing one-by-one as if you had done it from a web browser.

    You will also be typing in the username and password for your Open Processing account after running the command.

    After all submissions are processed, the "sketches" folder in the output folder (eg. cs105/moss/handin/A01/sketches/) should contain folders named after each student's WATIAM username (eg. j123smith).
    You should be running MOSS with the "sketches" folder only.

    You might have to go through the submissions and manually change a few.

    Edit cs105/moss/moss.sh and update the term number (TERM) to the current term.
    Once all necessary files have been deleted, run the moss script using the command >>~/moss/moss.sh A01

    To see the results after the script has finished executing, open cs105/moss/A01/A01_moss.html.
    This will show matches of 25% or higher between student submissions (this percentage can be changed by editing moss.sh)

    To see all the matches, open cs105/moss/A01/index.html
    Look through the matches and see if there are any obvious cases of cheating.

    Bring up the student names to the ISC along with their submissions.

    Tips: lines matched is more important than percentage. Report anything that has 50 or more lines matched.

    ISA Tips

    Here are some extra tips, we hope that you have a successful term (:

    Keeping a weekly calendar will help you stay on top of your tasks. This is an exmaple of what it could look like:

    If your team consists of more than one ISA then organize a daily meetup (include the ISC as well)
    This works really well since daily tasks can be assigned to each person and the ISC can also hop in the meeting if needed

    When in doubt, ask your ISC, they will be there to guide you.
    Please add to this document if it is lacking in any way, so it can help future ISAs.