The CS1951t TA Handbook

Written by Ross Briden, Spring 2022

Table of Contents

Introduction

Course Infrastructure

  1. The Wiki

  2. Slack

  3. Paperspace and Virtual Desktop4

  4. Oculus Quest Headsets

  5. The Course Board

TA Camp & Course Scheduling

  1. Core Responsibilities

  2. Hiring

  3. Refactoring the Wiki

  4. Planning Course Content

  5. Validating Course Demos

In and Out of the Classroom

  1. Core Responsibilities

  2. During Class

  3. Office Hours

  4. Course Planning

  5. Grading

Introduction

Welcome! This document serves as a comprehensive guide to TAing CS 1951-t. It outlines your core responsibilities throughout the various stages of the course, key course infrastructure, and provides some helpful tips and tricks.

Course Infrastructure


Much like the software you survey while taking the course, CS 1951-t has several fundamental dependencies. The course’s most fundamental dependency is the wiki, which is hosted on Google Sites. We use Slack to facilitate communication between students and the course staff. Paperspace is used for running HTC Vive and / or Oculus Rift apps. Since Spring 2021, we’ve used Oculus Quest 2 headsets for running software. A shared Google Doc, referred to as the Class Board (2022 version: https://docs.google.com/document/d/17Ugfkku0qp9G8db0mlEsyryg5B6MTeQk2yP3tAbAT2Q/edit), is used for interactive class activities, to synchronize findings from course activities (e.g. screenshots), host student feedback, among other in-class functions. Finally, we typically use Google Sheets to record course grades.

1 - The Wiki

The course wiki runs on Google Sites, and contains:

  • Student journals, used for logging hours, hosting presentations, project planning, and to chronicle project progress.

  • A course homepage, which outlines the theme of the course, course policies, the course syllabus, and other useful links.

  • A slew of software reviews, descriptions, and tutorials.

  • Information on VR, AR, and large display hardware.

  • Archives of past course homepages.


Though not exhaustive, this list indicates the importance of the wiki. As a TA, you will be responsible for generating the course homepage, refactoring the wiki, updating the course timeline, and serving as general tech support for any wiki issue. See the TA Camp & Course Scheduling section of the handbook for a more detailed overview of your responsibilities.


You may wonder, why are we using Google Sites to host the wiki? Google Sites is easy to use (no HTML / CSS hacking required), supports a wide variety of embedded media (e.g. spreadsheets, videos, photos), and has a nice hierarchy for organizing pages. The downsides: it’s sometimes slow and supports only a limited set of version control features. As a TA camp project, you may consider migrating the wiki to another hosting service, but be warned that this is a non-trivial endeavor.

2 - Slack

We use Slack for course communication and announcements. While it’s nice to schedule activities through the wiki, students are much more responsive to Slack messages! We also use Slack to give students feedback on project proposals / presentations, resolve tech issues, and to schedule office hours. Here’s a nice template for setting up a course Slack workspace:


  1. Generate the usual channels: #Official, #Help, and #Random. All course announcements should go through #Official. All tech support issues should be posted to #Help.

  2. Generate group DMs for each student and add David Laidlaw to each of these. These channels are useful for giving private feedback or responding to private issues.


As a TA, you’ll be responsible for setting up the course Slack workspace. The URL for the workspace should be of the form: cs1951t-<ADD YEAR>.slack.com.

3 - Paperspace and Virtual Desktop

Building, testing, and evaluating VR software is graphics-intensive and requires a specific suite of software. As expected, very few students come into the class already having access to a laptop with sufficient power. To resolve this, we rent gpu-accelerated virtual desktops for each student using Paperspace. Paperspace is a cloud computing platform, similar to AWS or Azure. Paperspace's main advantage is that it supports a variety of machine templates designed specifically for gaming; this means that key software and drivers often come preinstalled with most machines! Paperspace’s main disadvantage is that it can be buggy and certain machine types may not be available during peak times. During TA camp, you might consider switching to a different cloud computing platform.


As a TA you will be responsible for:

  1. Selecting an appropriate machine type for the class. Paperspace supports a wide variety of machine types. In short, the machine should have an NVIDIA GPU with 8GB of VRAM, 100GB of storage, and should utilize the Parsec template. In Spring 2022, we used an A4000 machine based on the Parsec template.

  2. Generating a template for the class. This template should include an updated suite of GPU drivers for the machine, Steam (already included in Parsec template), the Virtual Desktop streamer, Oculus SDK, and Visual Studio Community (with the C++ development package installed).

  3. Creating a Paperspace machine for each student. This typically happens during the first or second week of class.

  4. Providing tech support. Paperspace is not perfect and sometimes has weird software / networking issues. Being generally comfortable with the platform is necessary.


Please see the Paperspace Guide for more details about how Paperspace works.


To connect a VR headset to a Paperspace machine, we need Virtual Desktop. Virtual Desktop consists of two components: a client and a streamer. The client relays headset actions (e.g. controller and head movements) to the Paperspace machine. On receiving events from the client, the streamer responds to these actions and returns a rendered frame to the client. From the user’s point of view, they can control and run programs on their Paperspace machine using only their headset. This enables graphics-intensive games to run on the Oculus Quest 2 and other standalone VR headsets. Students are typically required to purchase Virtual Desktop in the Oculus store at the beginning of the semester.

4 - Oculus Quest Headsets

At the beginning of the semester, students receive a loaner VR headset to support their work over the semester. Since Spring 2021, we’ve used Oculus Quest 2 headsets. As of writing this, we have approximately sixteen Oculus Quest 2 headsets that students can borrow. You’ll be responsible for distributing these headsets to students; when checking a headset out, you should record the headset’s serial number along with the name of the student borrowing it. In the past, we’ve used the grading spreadsheet (see Section 6) to record this information. After receiving their headset, students will be required to go through the setup process. Detailed setup instructions can be found here. As a TA, you’ll be responsible for ensuring that these instructions are up to date. In addition, be prepared for students to ask you questions about the setup process (e.g. replacing batteries and installing updates).

5 - The Course Board

Throughout the semester, students will engage in discussions, participate in in-class activities, give feedback to other students, among other activities. In past semesters, we’ve found it useful to have a persistent space for recording these interactions, which we call “the Course Board.” The board is a Google Docs that’s shared with all students. The doc is ordered chronologically. See here for an example As a TA, you’ll be responsible for refactoring the Course Board and ensuring that students add entries to the board, when appropriate.

TA Camp and Course Scheduling

1 - Core Responsibilities

During TA camp and the months leading up to it, TAs will be responsible for hiring (HTA(s) only), refactoring the course wiki, planning course content, and building course demos. The following sections will review your responsibilities in more detail.

2 - Hiring (HTA Only)

CS 1951t, by design and enrollment numbers, is a small course. Consequently, as an HTA, expect to hire at most one UTA; in past years, we’ve found that having only one TA on staff was sufficient, though you should discuss this point with Professor Laidlaw based on enrollment numbers. Due to the unique structure of the course, we recommend hiring UTAs who have previously taken the course, though this is a heuristic rather than a strict rule.

3 - Refactoring the Wiki

Before the semester begins, the course wiki needs to be updated to reflect any changes to the course. This entails:

  1. Archiving last year’s wiki. This entails copying the previous year’s homepage (and all of its subpages) to the Course Archives section of the wiki (see image below). After copying the homepage, you should ensure that all links on the homepage and its subpages work correctly. This means that you may need to rename subpages so that they don’t collide with subpages for the current semester. For instance, last year’s “Journal” page should be renamed to “Journals - Spring 2022” or something similar.

  1. Build the homepage for this semester. At a bare minimum, the page should link to the course syllabus, the journals page, the course timeline, and the course archives. Feel free to be creative here!

  2. Fill out the course timeline. In particular, you should add all of the dates for the upcoming semester, including holidays. Then, you’ll need to fill in the timeline for the first 1-2 months with activities. As a general rule of thumb, you should always keep the course timeline updated 2-4 weeks in advance throughout the semester. This gives students enough time to plan out their course activities and presentations. See the Planning Course Content section for more information.

  3. Setup the Journals page. You’ll need to create a journals page and link it to the course homepage. The journals page should contain a template, which students can copy and customize. You might consider using the journal template from the previous year, assuming it fits the course theme.

  4. At this point, the wiki should be in a usable state for the upcoming semester. Your remaining time should be focused on cleaning up existing wiki pages (e.g. fixing broken links on key wiki pages) and drafting new ones.

4 - Planning Course Content

The first month of class is usually the most demanding. Ramping students up to start their first project is a non-trivial endeavor. As a TA, you’ll be responsible for (but not limited to):

  1. Distributing headsets to students and debugging any issues students have with their headsets

  2. Helping students brainstorm project ideas and advising students on their project plans.

  3. Leading 1-3 course demos.

Consequently, you’ll want to fill out the course timeline with precision, outlining activities and homeworks for the first two months of the semester. Here’s a rough outline you can follow:


Week 1:

During class:

  • (Prof Laidlaw): introduce students to the course format, structure of the wiki, and expectations.

  • (TAs): provide a brief presentation of past projects, giving students a feel for what the course might be like.

  • Start project planning in small groups.

HW:

  • Project planning.

  • Browse the wiki and suggest some changes.


Week 2:

During class:

  • (TAs): distribute headsets.

  • (TAs): have students run through headset setup guide and run an app with Paperspace + Virtual Desktop (e.g. Google Earth VR).

  • More project planning.

  • (TAs): some type of data visualization demo.

HW:

  • Solidify project ideas and evaluate using rubric.

  • Add wiki pages + editing.



Week 3:

During class:

  • (TAs): data visualization demo.

  • Peer-evaluation of project plans (x2).

  • Start of project 1 presentations.

HW:

  • Refine project 1 plans.

  • Create project 1 presentation.

Week 4:

During class:

  • Finish project 1 presentations.

  • (Prof Laidlaw): guest speaker.

  • Prep for student in-class activities.

HW:

  • Work on projects!

  • Refine journal for peer-review.


This is, of course, only a template. You’re encouraged to look at the course timelines from previous semesters to better refine.

5 - Validating Course Demos

Demos and in-class activities are a core component of CS 1951t. As a TA, you’ll be responsible for leading at least one in-class demo during the first month of the semester. Over the past several semesters, the course staff has developed a set of core course demos:


DinoVR


Paraview + Ben Volume Rendering


You’re responsible for ensuring that these demos are still functional before the start of the semester. Depending on time constraints and the course theme, you may even consider building new demos for the course!

In and Out of the Classroom

1 - Core Responsibilities

As a TA, you’ll be responsible for attending class, helping students outside of class, course planning, and grading.

2 - During Class

It’s expected that at least one TA will attend each class. If there are multiple TA on staff, you all might consider switching off. During class, you’ll be expected to help students with general technical problems (e.g. debugging headset issues), setup presentations, and aid course discussions. In rare circumstances, you’ll also be expected to host a course demo — as mentioned in previous sections. In short, TAs fulfill a unique niche that’s part tech support, part mentor, and part instructor.

3 - Office Hours

In general, you’re expected to be receptive to student questions outside of class. Typically, students will reach out over Slack or email. Please try to respond in a timely manner but don’t feel obligated to spend every waking hour on Slack. Aside from Slack, you may consider setting a formal time for office hours — though this is probably unnecessary given the size and format of the course.

4 - Course Planning

Throughout the semester, the course staff will meet at least once a week. The majority of this time will be spent planning course activities and homework assignments. As mentioned in prior sections, activities and HWs should be placed on the course timeline at least a week in advance before their scheduled date. It’s good practice to remind students of key course activities and homeworks on Slack by sending a @channel message.

5 - Grading

Students in CS 1951t are graded based on the following (non-exhaustive) criteria:


Journal quality

Throughout the semester, students are required to maintain a well-ordered journal. At the top level, a journal should contain links to project proposals, presentations, and wiki deliverables. All wiki deliverables should also contain the student’s name. Moreover, every student should log all of the hours they work outside of class in their journal. This log should be ordered by date, and each entry should contain the number of hours / minutes worked and a brief description of what the student did. Students are expected to log at least 140 hours per semester, which averages to ~10 hours per week. The total number of hours logged should be listed near the top of the journal. Try to review some of the journals from prior years to get a better understanding of what a complete journal should look like.


Class participation

CS 1951t is a seminar-like course. Consequently, course participation is heavily weighted when determining a student’s grade. Throughout the course, students are expected to engage in course discussions, give several presentations on project updates, and participate in in-class activities. As a TA, you’ll be expected to keep track of student participation. In the past, we’ve found it helpful to log this information in a shared spreadsheet. Reach out to Professor Laidlaw for more information on this.


Final presentation quality

At the end of the semester, students will be required to give a final presentation. The format of this presentation varies year-by-year, but in general students are expected to create a poster and prepare a brief talk about their projects. Students are expected to put a reasonable amount of effort into their final presentations and are graded accordingly.


Final grades are compiled at the end of the semester.