This page provides a general description of the responsibilities of all the jobs that are available to UCAs in Princeton University’s Department of Computer Science. It also provides a description of the different job categories.
General Job Categories #
The department employs undergraduates to assist with many COS courses. The jobs are divided into three categories (most paid $18.5/hr):
- Lab TAs who help students in undergraduate-staffed office hours
- Graders who grade assignments and (in some courses) exams
- In-class TAs who help students in the classroom (these positions are called facilitators or precept assistants)
Some Independent Work (IW) seminars also hires 1-2 UCAs to do a combination of all three jobs (assisting in class to provide feedback to student presenting their projects, grading projects, and providing office hours for students to get help with their projects).
Finally, some courses also hire a higher-level position (paid $21.5/hr):
- Managers who coordinate and supervise the work of other UCAs (typically managers have already worked in the course in a previous semester)
Specific Job Categories #
In addition to the general jobs, there are some specific jobs.
For instance, the Intro COS Lab (which centralizes the undergraduate-staffed office hours for COS 109, 126, 217, and 226) hires a Head Intro Lab TA or Team. The Intro COS Lab also hires a team of Interviewers, who interview prospective Intro Lab TAs.
Several courses may hire UCAs on an ad-hoc basis to help with course development or tool building.
Jobs #
Below is a description of all the jobs that are available, with a description of their responsibilities.
These jobs are not always hiring every semester, so please check TigerUHR directly for the list of jobs currently hiring.
Intro COS Lab TA Program #
Supervised by UCA hiring coordinators and the Head Lab TA Team.
Team communication: Slack (
central COS UCA Slack: #lab-announcements
, #126-lab
, #2xx-lab
)
The Intro COS Lab, currently in Lewis 121 and 122, is a place where students taking introductory courses can go for help in debugging their programs. The Intro Lab TAs are those glorious individuals working on the front lines, providing that help. The lab is available to students taking COS 109, COS 126, 217, and 226. The Intro Lab TAs are coordinated by the Head Intro Lab TA (possibly with an Assistant), who is an undergraduate. Most of the shifts are on evenings or weekends, and they last 2 hours. Typically, a TA either has two shifts per week, or is a substitute TA.
For more information about the job, the conditions for applying, and the pay rate, please see this page about becoming an Intro Lab TA job.
The Intro COS Lab uses the LabQueue to manage the queue of students waiting for help.
Read specific information about the job responsibilities for:
- the Intro Lab TA job (which requires an interview if you are a first-time Intro Lab TA)
- the Interviewers job (apply directly by contacting the Head Intro Lab TA)
- the Head Intro Lab TA job
COS 109: Computers in Our World #
For description and past ratings, see course page on Princeton Courses
Supervised by Prof. Brian Kernighan (Fall 2024)
Team communication: Email
Description:
Assist students in understanding problem sets and completing labs
Responsibilities (6-8 hours/week):
Office hours (some in person, some Zoom) to assist with weekly problem sets and labs. This would normally be afternoon and evening before psets due (Wednesday) and labs (Sunday). Psets and labs are all done by Thanksgiving.
Checking problem sets and labs for errors, lack of precision, etc., before they are posted.
Requirements:
- Must understand basics of CS; 126 should be enough but more is better
- Must have some familiarity with HTML, JavaScript (minimal), Python, Colab
- Must be patient and empathetic with a non-technical population
- Must attend almost all lectures (MW 1:30-2:50)
COS 126: Computer Science: An Interdisciplinary Approach #
For description and past ratings, see course page on Princeton Courses
Grader position #
Supervised by Prof. Alan Kaplan (Fall 2024)
Team communication: Slack (
central COS UCA Slack: #126-grading
)
Description:
This position grades the programming assignments and programming exams, in Java.
Graders work through codePost to provide high-quality and supportive feedback to introductory CS students. A detailed rubric is included. The work consists of reading and understanding the student’s code, and providing feedback on the code’s correctness, efficiency and clarity.
Responsibilities (~3-5 hrs/week):
Attend weekly grader meeting (in-person only) on Tuesdays 4:30-7:00pm to review the rubric and complete all grading synchronously. Dinner is provided. Must be able to commit to attend the grading meeting for the entire semester (~2.5 h/week).
Grade late and remaining assignments asynchronously as needed (max ~1h/week).
Requirements:
- Having taken COS 126 (B+ or better typically)
Strong empathetic skills
Good written communication skills
Precept Assistant position #
Supervised by Prof. Ruth Fong (Fall 2024)
Team communication: Slack (
central COS UCA Slack: #126-precept-assistants
)
Description:
Precept assistants are responsible for helping students understand the solutions to a set of active learning exercises during precept (e.g., Java programming exercises, worksheets). You will work alongside a graduate student or faculty preceptor to help students work on these exercises and will answer questions regarding the course material.
A great precept assistant is enthusiastic and patient. They can connect with a wide variety of students, encouraging them to ask questions while explaining the course material in a variety of ways.
A precept assistant may also be hired as a grader or as a COS Lab TA.
Responsibilities (~3-4 hrs/week) :
Prepare by reviewing upcoming precept exercises before class (1h/week)
Attend two precepts per week and answer students’ questions (2-3h/week)
Work under the direction of a preceptor
Requirements:
Having taken COS 126 (B+ or better typically)
Being able to effectively assist and communicate with a diverse group of students
Schedules (updated for Fall 2024):
Before applying to this position, please confirm you are available for one of the scheduled precepts for COS 126, which you can find here.
COS 217: Introduction to Programming Systems #
For description and past ratings, see course page on Princeton Courses
Supervised by Prof. Christopher Moretti (Spring 2025)
Team communication: Slack (
central COS UCA Slack: #217-grading
)
Description:
The COS 217 grader evaluates COS 217 assignment transcripts and code to grade and provide high-quality, supportive feedback on students’ submissions. Grading is done via codePost using primarily pre-defined rubric notes and deductions.
Responsibilities (~6-10 hours/week):
Attend weekly grader meeting ~1 hour per week (Spring 2025: likely to be Thursdays 5:00-~6:00pm). During weeks an assignment is due, this meeting will refresh your memory of that assignment, describe common errors, and review the rubric and codePost items to prepare for grading. During weeks between assignment due dates, this meeting will serve as a grading session to do some synchronous grading and get questions answered.
Grade 8-15 submissions asynchronously. Typically this accounts for 4-8 hours per week, though some assignments may grade faster or slower than others.
Requirements:
- Having taken COS 217 and earned an A- or better. (Lower grades will be considered on a case-by-case basis.)
COS 226: Algorithms and Data Structures #
For description and past ratings, see course page on Princeton Courses
Grader position #
Supervised by Prof. Pedro Paredes (Spring 2025)
Team communication: Slack (
central COS UCA Slack: #226-grading
)
This position grades the programming assignments in Java, which happen about once every two weeks. It involves reading complex code, with the need to understand errors in the running time or memory efficiency of the code.
Responsibilities (~3-5 hrs/assignment) :
Attend weekly grader meeting (1-2h/assignment) to review the rubric and start grading synchronously. As of Spring 2025, this meeting is on Tuesdays 4:30-6pm.
Grade late and remaining assignments asynchronously (~2-3h/assignment).
Requirements:
For Freshman/Sophomores: Having taken COS 226 (B+ or better typically)
For Juniors: Grading experience in any course (or being a lab TA)
For Seniors: Grading experience in COS 226
Grading Manager position #
Supervised by Prof. Pedro Paredes (Spring 2025)
Team communication: Slack (
central COS UCA Slack: #226-grading
)
Description:
This position is for students that are interested in contributing to improve the class and can involve multiple things depending on your interests (see responsibilities below for examples), some of which don’t necessarily involve grading (despite the title name).
Grading managers will work closely with Prof. Paredes
Responsibilities (time commitment variable):
For students interested in grading it can be any of the following:
- Supervising the COS 226 graders (e.g. answering their questions, grading tougher submissions).
- Creating new materials to support the grading mission (such as the style guide, automation scripts, preparing grading briefs).
- Audit a subset of submissions to ensure quality of grading.
For students interested in interacting with other students, responsibilities might include holding office hours, assisting in precepts and attending staff meetings with the course instructors and graduate preceptors.
For students interested in creating new material for the course, responsibilities might include revising assignment statements, revising precept handouts, beta testing new assignments, creating supplemental material (like quizzes).
Requirements:
Having been a COS 226 grader for at least one semester
A vision on what can be done to do to improve COS 226
Candidates will be asked a few questions about what they are interested in doing for the course as well as their past experience with the course
COS 240: Reasoning About Computation #
For description and past ratings, see course page on Princeton Courses
Grader position #
Supervised by Prof. Iasonas Petras (Spring 2025)
Team communication: Email
Description:
The COS 240 grader grades COS 240 students’ work and provides feedback.
Responsibilities:
Grade (asynchronously) students’ work and provide feedback for ~5-7 hours a week (on weeks when grading takes place, which is more or less every 2 weeks).
Attend (and actively participate in) grading consistency meetings (most likely online) taking place on Thursdays 4:30PM-5:30PM
Attend (and actively participate in) weekly status meetings (most likely online) taking place on Fridays 3:30PM-5:00PM
Meet grading deadlines consistently
Requirements:
Having taken COS 240 and performed well
Must have satisfactorily answered the supplemental survey
Lab TA position #
Supervised by Prof. Iasonas Petras (Spring 2025)
Description:
The COS 240 Lab TA holds office hours where COS 240 students can ask questions on and discuss the course material and the course’s assignments. "
Responsibilities (~6 hrs/week):
Hold 4 hours of office hours per week.
Attend (and actively participate in) weekly status meetings (most likely online) taking place on Fridays 3:30PM-5:00PM
Requirements:
Having taken COS 240 and performed well
Must have satisfactorily answered the supplemental survey
COS 302: Mathematics for Numerical Computing and Machine Learning #
For description and past ratings, see course page on Princeton Courses.
Supervised by Prof. Ellen Zhong (Fall 2024)
Team communication: a course staff Slack channel
Description: This position grades assignments and exams. In both cases, submissions will be done through Gradescope. Generally there are two kinds of problems on the assignments: conceptual math problems, and practical work in Python. The Python is submitted as a colab notebook. Graders are expected to provide helpful and fair feedback that encourages understanding.
Responsibilities (~5 hrs/week:)
- Graders are expected to be reasonably responsive after assignment submission in order to determine who will grade what problems and to ask for help as necessary. My goal is to provide grades and feedback within a week.
Requirements:
- Familiarity with the material
COS 316: Principles of Computer System Design #
For description and past ratings, see course page on Princeton Courses.
Supervised by Prof. Wyatt A. Lloyd and Prof. Robert S. Fish (Fall 2024)
Team communication: a course staff Slack channel
Description: As a LabTA for COS 316 you will provide students with support working on our challenging programming assignments. You will help students learn how to think about and approach their assignments so they can be successful in 316, upper level systems classes, and beyond!
Responsibilities (~5.25 hrs/week:)
- 4 hours of office hours per week, typically in 2 separate 2-hour chunks
- course staff meeting to initially discuss responsibilities and later to discuss office hours for 1 hour roughly once a month
Requirements:
- Must have taken the class and gotten B+ (by default)
COS 324: Introduction to Machine Learning #
For description and past ratings, see course page on Princeton Courses.
Supervised by Prof. Ruth Fong and Prof. Lydia Liu (Spring 2025)
Team communication: Slack
Description:
This position is a joint grader and office hour position.
For grading, you will be part of the team that grades our weekly assignments, which typically alternate between a written homework (i.e. pen-and-paper pset) and a programming assignment (i.e. IPython notebook). Typically, you will grade one problem or sub-problem most weeks according to a rubric as well as handle regrade requests for your problem. Depending on the number of UCAs on the course, you may not be assigned grading every week (though you should be prepared to grade each week).
For office hours, you will host a weekly 2-hour office hours primarily for helping students get unstuck on our weekly assignments. Office hours will also provide prep support before our midterm and final. Office hours will be in-person by default (virtual office hours will be approved on a case-by-case basis, primarily to help staff unpopular office hour times). We aim to provide most of our office hours Friday to Tuesday, before the Wednesday assignment deadline.
Responsibilities (~5-10 hrs/week, depending on whether you’re assigned grading in a given week):
Attend and actively participate in 1-hour, in-person staff meeting each week (Mon 4:30-5:30pm for Spring 2025)
Prep for hosting office hours each week (i.e. do assignment yourself, ~2 hours/week)
Host 2-hour office hour block each week
Grade asynchronously one problem or sub-problem (~3-5 hours/most weeks) for the entire class (weekly grading period starts Saturday and is due Tuesdays EOD for Spring 2025)
Requirements:
Having taken COS 324 and received a B+ or better
Strong written communication skills (for grading)
Strong oral communication and relational skills (for facilitating office hours)
Preferred:
- Prior experience as a UCA (in any course)
COS 326: Functional Programming #
For description and past ratings, see course page on Princeton Courses.
Supervised by Prof. David Walker (Spring 2025)
Team communication: email
Description: The “COS 326 UCA” position includes developing grading infrastructure and assignments for COS 326.
Responsibilities (~4-6 hrs/week:)
The goal is to revamp the COS 326 grading infrastructure in consultation with Prof David Walker and Prof Andrew Appel.
Will involve writing OCaml code and scripts/Makefiles/Dune files to automate grading.
A secondary goal is to develop new assignments
Responsibilities can be flexible as long as the end goal is achieved. More work one week and none the next is acceptable, for instance.
If successful, may lead to summer internship developing new assignments
Requirements:
- Must have taken COS 326 and gotten B+ (by default), Must pass an interview, Must be familiar with OCaml, git, Makefiles, likely some scripting language (ie: possibly Python)
COS 333: Advanced Programming Techniques #
For description and past ratings, see course page on Princeton Courses
Supervised by Prof. Bob Dondero (Spring 2023)
Team communication: Email, and staff mailing list cos333instructors@lists.cs.princeton.edu
Description:
A COS 333 UCA works with a graduate student TA to grade some semester-long projects.
Responsibilities:
These responsibilities refer to “Reading Period” and “Dean’s Date” as defined in the Registrar’s Office’s academic calendar.
Each UCA will participate in a ~2 hour Zoom pre-grading meeting with the lead instructor and graduate student TAs. During that meeting they will discuss the project grading rubrics. That meeting will occur sometime during Reading Period.
After Dean’s Date each UCA will grade 4-to-6 projects, approximately one per day. Some slippage of that schedule will be fine. The grading will be mostly asynchronous, but could involve some synchronous interaction with the members of the teams whose projects are being graded. An UCA will devote ~5 hours to grading each project.
Finally, each UCA will participate in a final ~4 hour Zoom meeting with the lead instructor and graduate student TAs. During that meeting they will finalize the project grades. That meeting will occur shortly before the day when course letter grades are due at the Registrar’s Office.
Requirements:
- Having taken COS 333 and gotten an A- or better
COS 343: Algorithms for Computational Biology #
For description and past ratings, see course page on Princeton Courses
Supervised by Prof. Ben Raphael (Spring 2023)
Team communication: Slack (
central COS UCA Slack: #343-grading
)
Description:
The primary responsibility of this position is to grade 5 homework assignments, midterm, and final exam. HW assignments consist of written exercises and short programming exercises. The written exercises are graded for correctness and clarity using a detailed rubric that will be provided. Programming exercises are graded for correctness, but not for quality of code.
UCAs who are interested in other tasks such as helping answer questions on Ed, holding office hours to answer student questions, or contributing to the development/debugging of new assignments are welcome to do so, and will be paid for time spent on these activities.
Responsibilities (~ 5-8 hrs/week):
Attend bi-weekly in-person staff meeting (<1hr)
Consistently meet grading deadlines
Requirements:
Must be COS or ORFE/MAT majors (other majors acceptable with relevant experience)
Must have taken COS 226 with a grade of B+ or better
Must be interested in course topics (computational biology)
COS 350: Ethics of Computing #
For description and past ratings, see course page on Princeton Courses.
Supervised by Prof. Aleksandra Korolova (Fall 2024)
Team communication: Centralized Slack, if available
Description: The primary responsibility of this position is to help grade (together with graduate TAs) homework assignments and the final exam.
Responsibilities (5~10 hrs/week:)
- Attend grading meeting (about once in two weeks) to review / agree on rubric.
- Grade asynchronously about 5-10h every other week, while consistently meeting grading deadlines.
- Handle re-grade requests.
Requirements:
- Must have taken the class and gotten B+ (by default).
- Must be COS majors.
- Must pass an interview.
- Interest in course material.
- Prefer students with experience in ML and algorithms.
- An A in COS 324, COS 350, COS 226 is prefered
PSY/COS 360: Computational Models of Cognition #
For description and past ratings, see course page on Princeton Courses.
Supervised by Prof. Tom Griffiths (Fall 2023)
Team communication: a course Slack
Description: This position is for a grader who will help with grading of problem sets involving programming problems and written answers. The programming problems are in Python. An auto-grader will be used, and you will interpret ambiguous cases flagged by the auto-grader and provide feedback on the code. You will also help to test problem sets and develop questions.
Responsibilities (~10 hrs/week:)
- Attend weekly meeting (1 h/week) to coordinate on grading and course goals for the week
- Read rubric for grading assigned problems
- Test solve assigned homework problems
- Grade asynchronously for about 6-8h/week, flexible timing
Requirements:
- Must pass an interview, Prefer students with experience in ML, e.g. COS 324
COS 375: Computer Architecture and Organization #
For description and past ratings, see course page on Princeton Courses.
Supervised by Prof. Margaret R. Martonosi (Fall 2024)
Team communication: a course Slack
Description: This position involves helping students with the course and grading the programming assignments.
Responsibilities (Flexible 4~10 hrs/week:)
- Once a week office hours or on request, and
- grade a few times over the semester.
Requirements:
- Must have taken the class and gotten B+ (by default),
- Strong performance having taken COS/ECE375.
- Must pass an interview
COS 418 Distributed Systems #
For description and past ratings, see course page on Princeton Courses.
Supervised by Supervised by Prof. Michael J. Freedman and Wyatt Lloyd (Spring 2024)
Team communication: a course Slack
Description: As a LabTA for COS 418 you will provide students with support working on our challenging programming assignments.
Responsibilities (~5.25 hrs/week:)
- 4 hours of office hours per week, typically in 2 separate 2-hour chunks
- 1 hour of answering questions on EdStem per week (in a defined 1-hour window)
- course staff meeting to initially discuss responsibilities and later to discuss office hours for 1 hour roughly once a month
Requirements:
- Must have taken the class and gotten B+ (by default)
COS 423 Theory of Algorithms #
For description and past ratings, see course page on Princeton Courses.
Supervised by Supervised by Prof. Robert Tarjan (Spring 2024)
Team communication: TBA
Description: In this course, UTAs help students complete their coursework. They hold office hours, help in precept, answer questions on Ed, and participate in the grading team. .
Responsibilities (10 hrs/week:)
- Attend a weekly staff meeting to plan the week.
- Solve this year’s version of the assignments, which will differ a bit from those of previous years.
- Hold office hours.
- Help answer questions on Ed.
- Help the grading team.
Requirements:
- Must have taken the class and gotten B+ (by default),
- Must pass an interview
COS 426 Computer Graphics #
For description, see course page.
Supervised by Prof. Adam Finkelstein (Fall 2024).
Team communication: primarily through course-specific Slack workspace, supplemented by one weekly group meeting.
Description: In this course, UTAs help students complete their coursework.
Responsibilities (6-10 hrs/week:)
- Attend a weekly staff meeting to plan the week.
- Review assignment solutions to prepare for helping students.
- Hold office hours.
- Help in precepts.
- Help answer questions on Ed.
- Occasionally prereview course materials.
Requirements:
- Must have taken the class and received A- or higher grade.
- Must be patient helping others / effective communicator.
COS 429: Computer Vision #
For description and past ratings, see course page on Princeton Courses
Supervised by Prof. Olga Russakovsky and Prof. Vikram Ramaswamy (Fall 2024)
Team communication: a course Slack
Description:
We are looking for students with strong background in computer vision to help in this next iteration of the course.
All UCAs will be expected to assist with grading of assignments and exams.
Beyond that, we would welcome help with:
UCA-run office hours
UCA support to help guide the final projects
UCA support with debugging any new assignments
UCA support with grading the poster session and/or the final project reports
UCA support with the two exam review sessions
Responsibilities (~5-10 hrs/week, depending on whether there is grading in a given week):
There are 4 assignments and 2 exams. These will be due approximately every 2 weeks and need to be graded within a week. UCAs will be expected to be available to turn the grading around within about 5 days, and to work closely with the grad TA responsible for each assignment.
Requirements:
- Having taken COS 429 and gotten an A- or better
COS 433: Cryptography #
For description and past ratings, see course page on Princeton Courses
Supervised by Prof. Zeev Dvir (Spring 2023)
Team communication: Email
Description:
The position is for helping grade problem sets (about one Pset every other week). In addition, if the applicant is interested, they can also hold weekly office hours for additional pay.
Responsibilities (~6-10 hrs/week):
Attend grading meetings (about once in two weeks) to agree on grading rubrics.
Grade about one problem in each Pset (for all ~60-70 students of the course in Spring 2023) on Gradescope. There will be about 4-5 Psets in the semester.
Requirements:
- Having a strong mathematical background.
COS 435: Introduction to Reinforcement Learning #
For description and past ratings, see course page on Princeton Courses
Supervised by Prof. Benjamin Eyesenbach (Spring 2025)
Team communication: A course Slack
Description:
This position grades written and coding assignments. The coding assignments will be written in Python + PyTorch/Jax. You will work together with the graduate TAs to write, test, and grade assignments.
Responsibilities (10 hrs/week):
- We aim to have all assignments graded within 24 hrs of submission. This means that you’ll have to block out some hours in the day after the submission for grading.
- Clear communication (i.e., staying on top of Slack messages from the rest of the course staff, letting us know if you’re unable to grade for some week)
- You won’t be expected to join the weekly staff meetings (though are welcome to if interested).
Requirements:
- An “A” in COS 324 (or equivalent). Some experience with RL.
COS 445: Economics and Computation #
For description and past ratings, see course page on Princeton Courses
Supervised by Prof. Matt Weinberg and Prof. Mark Braverman (Spring 2025)
Team communication: Email + a course Slack
Description:
UCAs for COS 445 are primarily responsible for grading (PSets, midterm, and final). That is, every UCA must grade assignments, and it is common for most UCAs to only grade assignments.
UCAs who are interested in other tasks (such as helping answer questions on Ed, providing advice on course policy, etc.) are definitely welcome to do so (and be paid to do so, and appreciated for doing so), but the primary need is grading.
Additionally 1-3 UCAs can instead volunteer to be the “Strategy Design Czar(s)”. The Strategy Design Czars do not grade assignments, but are responsible for maintaining the codebase for strategy design assignments. This role requires significant independence in comparison to grading, but would be fun for students who enjoyed the strategy designs more than the PSets. If you are interested in this, you should email Matt (
smweinberg@princeton.edu
) to discuss.
Responsibilities (~3-4 hrs/week):
Attend weekly in-person meeting Fridays 2PM - 3PM. These meetings will tee up grading for the most recently submitted assignment, and we will ask you to stay for the entire hour to grade assignments with other course staff in the room.
Note:
We will always be as efficient as possible with these meetings (e.g. we won’t force you to show up if you’ve already finished grading). However, we do ask that you think of in-person attendance every week as “required”, and block this time off on your calendar.
Many weeks, Matt and/or Mark will take a subset of interested staff out for bubble tea at 3PM.
Grade asynchronously ~6 hours every 2 weeks. PSets are due every other Monday. Grading tees off on Friday, and is due 10 days later on Tuesday. Because the next cycle starts soon after, we do need to be sticklers about deadlines.
Be available for ~6-8 hours (total) of grading the final during the two days after it’s due (the university has not announced the deadline for each course yet, but we will let everyone know the deadline as as soon as we find out). If you’re on-campus, we’ll ask that you grade in-person (and provide food/bubble tea). If you’re off-campus (which is completely fine), we’ll ask that you grade remotely. If your travel plans prevent you from grading (even remotely) during this period, please let Matt know this in advance (but you do not need to change your travel plans to be available).
There will be no staff meeting during Spring Break, and it is entirely feasible to complete your responsibilities without working at all over Spring Break. However, some UCAs prefer to grade the midterm over Spring Break, and we will have an optional remote tee-off meeting for those who want to do so.
Be prepared to give actual feedback on written PSet submissions to help students improve. We will try our best to make this as efficient as possible, but you should be prepared that any assignment that doesn’t receive full credit does typically require you to write something specific to that submission (copy/pasting comments across solutions historically leads to confusion by the students and results in appeals that we have to resolve anyway).
[For Strategy Design Czars only] There is a codebase for strategy designs on github that, afaik, is complete, bug-free, etc. However, every SD still requires an initialization (TigerFile submission needs to be set up for every SD, sample files need to be uploaded for students, files need to be downloaded from TigerFile), and a run (some submissions have bugs and will crash the execution, you’ll need to figure out which ones and edit/remove them, etc.). You will also be responsible for answering any questions about the coding portion of the SDs (because Matt/Marcel may not know the answer). This requires more independence than a typical UCA role, because this has always been designed/maintained by UCAs (there is a detailed SD czar onboarding document, and previous years’ czars are often happy to answer quick questions).
[For Strategy Design Czars only] You are free to do more interesting things with the SD codebase, if that interests you. For example, you are free to add more ‘check submitted files’ test cases so that there’s fewer buggy submissions, write more efficient code, write new ‘staff solutions’, or develop any new infrastructure that you think would be beneficial. But this is entirely optional–your ‘responsibility’ is just to make sure that SD files are uploaded in a timely fashion, and grades are computed in a timely fashion as well.
Requirements:
Must have taken COS 445 and gotten an A- or better. (If you have taken COS 445 and are interested in being a UCA, but did not earn an A- or better, feel free to reach out to Matt to discuss).
Must be available for a weekly 2-3PM staff meeting on Fridays, in-person.
If you apply for this position, we will assume that you’ll block off every Friday 2-3PM for an in-person meeting. Exceptions are possible (and we understand there will be sporadic absences), but you should email Matt (
smweinberg@princeton.edu
) with your situation before applying for this position.
COS 448: Innovating Across Technology, Business, and Marketplaces #
For description and past ratings, see course page on Princeton Courses.
Supervised by Prof. Robert Fish (Fall 2023)
Team communication: centralized Slack (TBD)
Description: Students will assist the class AI’s in scoring assignments and speaker reflections based on a rubric. They will also be able to attend class and listen to the lectures and guest speakers in this new and highly sought-after class. .
Responsibilities (6~10 hrs/week:)
Assist in the scoring of 5 assignments spread out over the term
Assist in the scoring of lecture or guest speaker reflections or book reports
Requirements:
Must be interested in the course subject matter
Good written communication analysis skills, must be better than ChatGPT.
Any applicant will be interviewed by the course staff prior to hire and we would like to see a writing sample.
COS 461: Computer Networks #
For description and past ratings, see course page on Princeton Courses
Supervised by Prof. Kyle Jamieson (Spring 2023)
Team communication: Course Slack
Description:
This position supports and grades the programming assignments for COS 461 (see
https://github.com/kyleatprinceton/COS461-Public
), supports precept content development, and other miscellaneous course duties.
Responsibilities (~2-10 hrs/week):
Attend weekly grading meetings
Hold supplemental office hours before programming assignment deadlines
Hold supplemental office hours before exams
Requirements:
- Having taken COS 461 and gotten an B+ or better
COS 471: Blockchains, Decentralized Trust, and Their Applications #
Supervised by Prof. Rob Fish and Prof. J. P. Singh (Spring 2024)
Team communication: Slack (
central COS UCA Slack: #471-uca
)
Description:
Students will assist the class AI’s in scoring programming assignments and speaker assignments based on a rubric. They will also be able to attend class and listen to the lectures and distinguished guest speakers in this class.
Responsibilities (~6-10 hrs/week):
Assist in the scoring of 2-3 programming assignments
Assist in the scoring of lecture or guest speaker-based assignments
Assist in the scoring of projects
Requirements:
Must be interested in the course subject matter
Good written communication analysis skills, must be better than ChatGPT.
Any applicant will be interviewed by the course staff prior to hire
COS 484: Natural Language Processing #
For description and past ratings, see course page on Princeton Courses.
Supervised by Danqi Chen, Tri Dao and Vikram Ramaswamy (Spring 2025)
Team communication: Course Slack
Description:
This position is a joint grader and office hour position.
For grading, you will be part of the team that grades our assignments: there are 4 + 1 assignments throughout the semester (including one warm-up), and each assignment has a written component, and a programming component based on Colab. Typically, you will grade one problem (or part of a problem) a week according to a rubric.
For office hours, you will host a weekly 1-hour office hours primarily for helping studying get unstuck on our assignments, or provide prep support before midterm, or provide guidance on their final project.
Responsibilities (~4-8 hrs/week, depending on whether there is grading in a given week):
Attend and actively participate in 30-min staff meeting each week (time TBD)
Prep for hosting office hours each week (0.5~2 hours; this really depends on your familiarity of the course materials. For the weeks that have an assignment due, you are expected to do the assignment yourself and it will take longer)
Host 1-hour office hour block each week
Grade asynchronously one problem/sub-problem (~4-6 hours for each assignment; there are 4+1 assignments in total throughout the semester) for the entire class.
Responsible for regrade requests after the grades are released (0-3 hours for each assignment; really depends on how many issues we may have).
Help with answer questions on Ed together with graduate TAs
Requirements:
Having taken COS 484 and gotten an A- or better
Ideally have prior experience as a UCA (in any course)
Strong written communication skills (for grading)
Strong oral communication and relational skills (for facilitating office hours)
COS 597C: Advanced Topics in Computer Science: Theory of Natural Algorithms #
For description and past ratings, see course page on Princeton Courses
Supervised by Prof. Bernard Chazelle (Fall 2024)
Team communication: email
Description:
Currently the course has a web site with a bibliography. This needs updating. I will provide the UCA with all the data needed to do that. Basic knowledge of html (and unix) useful. Students in the class are expected to work on projects and make presentations. The UCA will help me set up the schedule and will maintain it. No knowledge of the material needed. No grading. No office hours. No help sessions. No slack channel.
Responsibilities (-10 hrs/week):
- Manage schedule,
- maintain bibliography,
- help students with special needs
Requirements:
- Basic knowledge of html
- No specific requirement (except basic sense of duty and responsibility)
External Courses Jobs #
Occasionally, the Department of Computer Science will hire UCAs for courses outside of the COS department. These positions are listed below, and may not recruit every semester. Please check the TigerUHR application for confirmation.
EGR 154: Foundations of Engineering: Linear Systems #
For description and past ratings, see course page on Princeton Courses.
Supervised by Prof. Bernard Chazelle and Kritkorn Karntikoon (Spring 2024)
Team communication: Email
Description:
UCAs, working under the direction of the instructor and head TA will do one of the following three tasks (based on their preference): helping craft homework problems, grading, and facilitating help sessions.
Responsibilities (~3-5 hrs/week):
UCAs work from the second week of classes to the last day of classes. UCAs will not have to work during midterm week, spring break, or after Dean’s Date.
UCAs can work in person or entirely remotely depending on their preference.
UCAs will work about 3 hours per week and not more than 5 hours.
There is a weekly 30-minute meeting via Zoom (based on everyone’s availability)
UCAs can pick from among three different tasks depending on their preference:
- Grading, which happens remotely every Friday via Gradescope with a rubric provided by the head TA. Assignments are submitted on Thursday and we always return grades within 24 hours. UCAs will not be responsible for grading the midterm exam or final exam.
- Facilitating help sessions, which are on Monday and Wednesday from 4:30PM-7:30PM in COS 301. UCAs can help with all or part of one or both of these help sessions.
- Working with the head TA to create the homework, which must be done by each Wednesday, so we can post the assignment on Thursdays.
Requirements:
Must have taken EGR 154 and gotten an A, or have taken MAT 202/217 and having gotten a B+ or higher
Must be reliable and consistent
Must be communicative via email, and respond to emails within a few hours
IW Seminar Jobs #
The Department of Computer Science offers “IW seminars” for its majors, in which a faculty advises a group of 8-10 students each on their own project around a theme of the faculty’s choosing.
Generally, the faculty member is responsible for the overall theme of the seminar, and the UCA(s) is/are responsible for the logistics of the seminar. The UCA(s) is/are expected to be available to answer questions from students, to help students with their projects, and often to provide feedback during the group meeting time.
The meeting times as well as the specific themes of each seminars are updated every term on the IW seminar page of the Department of Computer Science.
➡️ Please note that a UCA for a seminar is expected to be able to make the class meeting time for the seminar. It is your responsibility to check that you are available for the IW seminar for which you apply to be a UCA.
Prof. Ryan Adams #
See academic website.
Team communication: Course Slack
Description:
This position is to provide support for students taking the IW seminar. UCAs will be expected to attend some of the weekly class meetings, hold office hours, and provide support for students on, e.g., Slack. The primary aim will be to offer guidance, conceptual help, and troubleshooting.
Responsibilities (~5-6 hrs/week):
Attend the weekly class meeting at a frequency jointly determined with the instructor.
Hold 2 hours of office hours a week, with extra before significant deadlines.
Be responsive on Slack to issues raised by students in the class.
Requirements:
- Must pass an interview,
- Must have previously completed an IW.
Prof. Suma Bhat #
See academic website.
Team communication: Course Slack
Description:
This position primarily assists students in the seminar course.
A UCA attends (most of) the weekly seminars, listens to the students’ project updates and holds office hours.
Responsibilities (~3 hrs/week):
Attend the weekly seminar (Spring 2023: Fridays 11AM-12:20PM) and listens to the students’ project updates and action items
Hold office hours for ~3 hours/week for students to stop by around key deadlines (beginning of semester, midpoint checkpoint) and clarify conceptual questions and troubleshooting implementations
Requirements:
- Must have been an UCA for an IW seminar or COS 333
Prof. Benjamin Eysenbach #
See academic website.
Team communication: Centralized Slack if available
Description:
This position is to provide support for students taking the IW seminar. UCAs will be expected to attend some of the weekly class meetings, hold office hours, and provide support for students on, e.g., Slack. The primary aim will be to offer guidance, conceptual help, and troubleshooting.
Responsibilities (~5-6 hrs/week):
Attend the weekly class meeting (1.5 hr / week)
Hold 2 – 4 hours of office hours a week.
Be responsive on Slack to issues raised by students in the class.
Requirements:
- Passing an interview with Prof. Benjamin Eysenbach
- The most important responsibility of the UCA will be helping students debug RL algorithms and associated infrastructure (e.g., Slurm, WandB). Thus, the UCA must have previously taken an applied RL course (e.g., COS 435) or have a comparable amount of experience in RL.
Prof. Chistiane Fellbaum #
See academic website.
Team communication: Email
Description: This position requires assisting seminar participants in conjunction with the instructor. The UCA should attend some of the weekly seminars, specific dates to be agreed upon with the instructor. The UCA is expected to familiarize themselves with the students’ projects and to hold office hours addressing the students’ questions.
Responsibilities (Approximately 5-6 hours/week):
- Attend approximately half of the weekly seminar meeting (Fridays 11AM-12:20PM) , give feedback in class, and review the students’ project updates and action items presented there.
- Hold office hours for ~3 hours/week for students to stop by esp. around key deadlines (beginning and end of semester, midpoint checkpoint) and clarify conceptual questions, troubleshoot technical problems.
- Approximately 5-6 hours/week. There’ll be less in the middle of the semester and more at the beginning and the very end.
Requirements:
- Some familiarity with NLP and ML.
Prof. Felix Heide #
See academic website.
Team communication: A course Slack
Description: This position supports training job running and bringup of the base IW codebase on research clusters.
Responsibilities (Approximately 5 hours/week):
Attend weekly sync up meetings.
Support in environment bringup and testing of base code structure for IW projects.
Aid in IW code architecture bringup.
Requirements:
- Must have prior experience as a UCA (in any course),
- Must be COS majors,
- Strong communication skills.
Prof. Robert Fish #
See [academic website]( https://www.cs.princeton.edu/courses/archive/fall23/cosIW04/ https://www.cs.princeton.edu/courses/archive/spring24/cosIW03).
Team communication: Email
Description: This position provides near-peer support for students in IW seminar, particularly those who have never done an IW before. UCA should be available to come to the seminar and find out what projects the students are doing. They should also have some office hours at convenient times to work with students to overcome barriers to success, particularly programming issues.
Responsibilities (Approximately 6-10 hours/week):
- Come to seminar
- Have office hours at convenient times and be flexible about meeting students
- Able to check a GitHub or similar repo
- Willing to help with programming issues
Requirements:
- Must pass an interview,
- Should have completed an IW project before
Prof. Xiaoyan Li #
See academic website.
Team communication: Email
Description:
This position holds office hours to help answer students’ questions on using ML packages or coding with Python. The UCAs are also expected to help organize students’ project presentation in class and check their weekly progress.
Responsibilities (~7 hrs/week):
Attend weekly class meeting ~1.5h/week or 3h/week (Fall 2024: Wednesdays 11AM-12:20PM or 3:00PM-4:20PM)
Hold office hours 1h or 2h/week
Read students’ weekly progress report 2h or 3h/week
Requirements:
Passing an interview with Prof. Xiaoyan Li
Having completed an IW in machine learning or data science
Good programming skills with Python
Good verbal and written communication skills
Prof. Mae Milano #
See academic website.
Team communication: Slack
Description:
This position supports the course infrastructure and assists students in using it.
The course infrastructure consists of virtual machines and services hosted by Amazon, Microsoft, and Google. The purpose of this course is to gain experience using and configuring distributed systems. Experience with kubernetes, S3, EC2, Azure, or any other cloud-hosted services and cloud providers will be helpful. TAs will ensure virtual services remain available, help configure them correctly for the course, and help students effectively use these resources.
Responsibilities (~8 hrs/week):
Attend weekly 30min/week sync-up meeting to check on status of course infrastructure and assign action items
Take direct responsibility for a particular cloud service or vendor
Configure networking and services on virtual machines
hold 2-4 hours / week of office hours for students attempting to use these services
communicate availability and summarize expected progress with cloud-specific tasks
monitor course email and slack
monitor assigned cloud services
Requirements:
experience using linux-based systems
comfort on the command line
familiarity with at least one cloud service
Prof. Yuri Pritykin #
See academic website.
Team communication: Slack and email
Description:
The position requires assisting the IW seminar participants. The UCA should come to seminars, provide feedback for student presentations, assist students with various IW tasks and milestones during the semester. The UCA should become familiar with students’ projects as they develop, and give specific and valuable feedback and advice, be willing to help troubleshoot programming and data analysis tasks. The UCA should communicate with students and instructor via slack and email, hold office hours at convenient times for students.
Responsibilities (~7 hrs/week):
- Come to seminar (two 1.5h seminar meetings / week, for different groups of students).
- Hold office hours (2h / week).
- Provide feedback to students’ presentations and progress in IW tasks during the semester.
- Provide technical assistance with programming and data analysis during office hours and by slack or email.
- Communicate with students and instructor.
Requirements:
- Must pass an interview,
- Must have completed a COS IW project before
- Having taken a computational biology or data analysis course is a big plus.
Prof. Jaswinder Pal Singh #
See academic website.
Team communication: Centralized Slack, if available
Description:
Undergrad-staffed Office Hours, Grading, Helping students with tool recommendations or software for their projects, and with helping them use these. Optionally, helping refine their product ideas
Responsibilities (6-8 hrs/week):
- Attend weekly seminar on Wed at 3 to 4:20 pm
- Help students with their projects, especially in software and tools.
- Help with infrequent milestone checkins
- Grade some checkins, based on completion, and projects.
Requirements:
- Must pass an interview,
- Must be interested in the course subject matter: building software products and web services or startups.
- Experience with blockchain a benefit, but not at all necessary.
- Having taken COS 448 can be a big plus, but also not at all required.
- Good written communication and analysis skills, Good empathetic skills and desire to help students.
- Any applicant will be interviewed by the course staff prior to hire and we would like to see a writing sample.
Prof. Olga Russakovsky #
See academic website.
Team communication: Centralized Slack, if available
Description:
The two IW seminars on “Computer Vision for Social Good” will provide opportunities for students to either build or analyze a computer vision system (depending on the student’s background). Some of these students will have plenty of experience working with computer vision software; others (most) will be experiencing it for the first time. The UCAs should be available to help support them in this process, e.g.,:
- help identify good open-source package(s) to build off of
- provide assistance with system-level or installation issues
- offer suggestions on code optimization, file management, or other roadblocks that may need to be addressed
Highly experienced UCAs can also offer suggestions on scoping the project, recommend additional analysis, point to relevant datasets or relevant literature, etc.
Above all else, the goal is to ensure that students have a good time and feel empowered in what is likely to be their first research experience!
Responsibilities (~4 hrs/week):
- Hold ~4 office hours per week (some may be by appointment)
- Be responsive on slack to requests from the professor (e.g., “please look up software code that can do task X for one of the student groups)
- (Optionally) Be responsive on slack to direct requests from students – can specify at the beginning of the semester whether you’re open to that
- Assist in giving feedback on the report drafts and on the final reports by providing written answers to a set of guiding questions
- Note that attending class sessions is not required
Requirements:
- Must Must pass an interview,
- Taken COS429 (A- or better, including an excellent final project)
- Completed at least one semester of IW (on any topic) with an A grade
- Have strong coding and system-building skills in AIML
- Committed to making sure students have a good time in what is (possibly) their first stab at research
Prof. Huacheng Yu #
See academic website.
Team communication: Email
Description:
UCAs participate in in-class discussions, give quick feedbacks to the student presentations in class and project proposal and mid-term reports, and hold office hours.
Responsibilities (~3 hrs/week):
Attend weekly class meetings (80 minutes)
Hold a 1-hr office hour every week
Attend TA meetings before “grading” the proposal and mid-term report
Requirements:
Must be COS or ORFE/MAT majors
Must have taken a COS 4xx (and gotten an A- or better) or a 5xx-level theory course