Written by Ross Briden, Spring 2022
Updates by Jakobi Haskell, Spring 2025
The Wiki
Slack
Paperspace and Virtual Desktop4
Oculus Quest Headsets
The Course Board
Core Responsibilities
Hiring
Refactoring the Wiki
Maintaining Links in the Wiki
Planning Course Content
Validating Course Demos
Core Responsibilities
During Class
Office Hours
Course Planning
Grading
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.
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 (2023 version), 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.
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.
You may also consider refactoring the order of pages and subpages on the wiki. Please note that this will break the currently indexed pages on Google, so proceed with caution. After a wiki refactor, immediately go to the Google Search Console type in the root URL for the entire page (https://www.vrwiki.cs.brown.edu) in the top search box and click "Request Indexing". This will reduce the amount of time that the indexed wiki results are broken for.
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:
Generate the usual channels: #Official, #Help, and #Random. All course announcements should go through #Official. All tech support issues should be posted to #Help.
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.
The logo for the Slack should also be updated with the new year. Here is the template for the logo in Canva. The font is Gotham and the font size is 154. I have also attached the class logo from 2025 below for reference.
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:
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.
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).
Creating a Paperspace machine for each student. This typically happens during the first or second week of class.
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.
At the beginning of the semester, students receive a loaner VR headset to support their work over the semester. From Spring 2021 up until Spring 2025, we’ve used Oculus Quest 2 headsets. Then, for Spring 2025, we switched to Quest 3 headsets. As of writing this, we have approximately thirteen Quest 3 headets (and still have sixteen Quest 2s) 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).
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.
During TA camp and the months leading up to it, TAs will be responsible for hiring (HTA(s) only), refactoring and maintaining the course wiki, planning course content, and building course demos. The following sections will review your responsibilities in more detail.
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.
Before the semester begins, the course wiki needs to be updated to reflect any changes to the course. This entails:
Duplicate last year's course home page as a new page "Spring <Year>" and its subpages and drag them under the new course home page*.
Rename last year's course home page to "Course Home Page - <Year>". Also rename subpages so that they don’t collide with subpages for the current semester. For instance, last year’s “Journals” page should be renamed to “Journals - 2022” or something similar.
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!
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.
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.
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.
*Keep in mind that if you duplicate the pages then drag, links from elsewhere in the wiki will by default continue pointing towards the old course home page and subpages. Be weary of this and try to replace ingoing links to the new pages when appropriate (i.e., if the Unreal Engine page links to the Project Ideas page to find UE project ideas, it would be best to point it to the most up to date project ideas page). Tools like Screaming Frog SEO Spider can help with finding these inlinks. If you prefer to point them towards the new up-to-date pages by default instead, then you can drag them first to the new home page, then duplicate them and drag the duplicate back under the old home page.
Left unwatched, links in the wiki will increasingly break (known as link rot). This happens due to websites changing, projects dying, and students graduating. External source breakage is impossible to control, but to safeguard against student material breaking, it is best to always make copies of student material such as powerpoints, videos, docs, and forms from Google Drive and store it multiple places (locally, GDrive, Dropbox).
You can detect broken links via various software tools (can do a search for "Broken Link Detector"), but my personal favorite is the Screaming Frog SEO Spider desktop app. It is recommended to run this regularly to detect and fix broken links when possible.
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):
Distributing headsets to students and debugging any issues students have with their headsets
Helping students brainstorm project ideas and advising students on their project plans.
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.
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:
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!
As a TA, you’ll be responsible for attending class, helping students outside of class, course planning, and grading.
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.
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.
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.
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.