Undergraduate Teaching Assistant (UTA) Information

Applications for the Fall 2021 semester are OPEN. We fully expect that all UTAs are on campus in Fall 2021.

Apply Now

For Fall 2021 we will hold interviews around the beginning of exams, but we will not be able to send out decisions until the end of July after course registration when we learn more about enrollment numbers for courses.

We cannot hire students who will be residing outside the country for Fall 2021 (this includes studying abroad) and we cannot accept anyone on a volunteer basis. You must be an enrolled student during the semester you are a UTA i.e. not on leave. Even if you have been a UTA previously, you must re-apply to be a UTA each semester.

The soft deadline for applications is the Last Day of class April 23, 2021. Applications can be submitted after that, and will continue to be open through the Summer, but we cannot guarantee full consideration, especially for courses that will hold interviews, such as 101, 201, 250, 330. Depending on which course(s) you applied for, you may receive separate emails with follow up surveys or questions. Students applying for 101, 201, 330 will have to interview. Different courses have different timelines for UTA selections.

Contact the UTA Program Coordinator, Georgia Tse, uta-program@cs.duke.edu, if you have any questions about being a UTA or your application.


If you have taken a CompSci course previously, then you know there are many other people helping the professor to support your learning in that course, e.g., returning feedback about your assignments, reviewing concepts in a recitation section. Most of these duties are done by undergraduate students just like you! Here, you can get a chance to take part in a rewarding job, allowing you to help your fellow students out as they go through the same journey you once did.


Ideally, you loved the course that you want to UTA for! You should have at least taken the course before or have the equivalent background experience in the course topics and programming languages  or communicate with the professor that you feel confident that you grasped the materials covered in the course you would like to UTA.

If you have the time and expertise, you can indicate that you are willing to be a UTA for multiple courses (of your preferred choices). We will coordinate with you if we have such need.

For 101/201 -- If you choose one as a first choice and the other as a second choice, you will not likely be considered for the second choice course, regardless if you were a previous UTA for that course. For example, if you put 101 as your first choice and 201 as your second choice, you will not be considered for 201 because it is your second choice. This is only the case for 101/201 because of the number of applications we receive.

Courses that need UTAs for Fall 2021

Course Expected Duties Consideration
COMPSCI 94: Programming/Problem Solving (Rodger)
  • Lecture is taught as a lab, must attend
    lectures to help.
  • Grade
  • Hold office hours
  • Answer Piazza 

Must have availability to attend lectures.

COMPSCI 101: Intro to Computer Science (Washington)
  • Attend one lab training per week
  • Grade assignments
  • Lead lab section
  • Hold office hours
  • Answer Piazza
  • Grade exams and final

Must have availability to lead lab sections.

Estimated avg 4-6 hours/week.

COMPSCI 116: Foundations of Data Science
  • Office hours
  • Attend lecture (like a lab)
  • Attend weekly meeting
  • Grade assignments

COMPSCI 201: Data Structures and Algorithms (Stephens-Martinez, Fain)

  • Attend weekly meetings
  • Grade assignments
  • Lead discussion section
  • Hold office hours in the evening
  • Grade exams and final

Must have availability to lead a discussion section, which are throughout F 8:30am–4:45pm.


Estimated avg 6-8 hours/week.

COMPSCI 207: Intro to Mobile Application Programming (Thomas)   Must have taken this course previously (previously numbered 290) or have app development experience.
COMPSCI 216: Everything Data (Stephens-Martinez)
  • Grade weekly assignments & labs
  • Hold office hours
  • Attending weekly teaching team meeting
Strong preference for students who have taken CS 216 or proficiency programming in python and other statistics/data science experience at the 200+ level.
COMPSCI 230: Discrete Math for CompSci (Donald)
  • Attend regular grading parties
  • Grade assignments
  • Lead recitation session
  • Hold office hours in the evening
  • Answer Piazza
  • Grade exams

Min. requirement: CompSci 230 or equivalent. You should be able to handle the concepts the students work with in this course.

Recitation is various times on F.

COMPSCI 240: Race, Gender, Class & Computing (Washington)
  • Grade
  • Answer Piazza
  • Hold office hours
Min. requirement: Completion of CompSci 190.
COMPSCI 250: Computer Architecture (Lebeck)
  • Attend weekly meetings
  • Grade exams and homework
  • Lead recitation session
  • Hold office hours
  • Answer Piazza 



COMPSCI 307D: Software Design and Implementation (Duvall)
  • Evaluate student projects
  • Attend regular planning meeting
  • Independently meet with students regularly
  • Grade student demos
Min Requirement: Completion of CompSci 307 and internship experience by Fall 2020 OR CompSci 308
COMPSCI 310: Intro to Operating Systems (D. Zhuo)
  • Hold office hours in the evenings
COMPSCI 316: Intro to Database Systems (J. Yang)
  • Lead recitation sessions
  • Grade assignment and exams
  • Supervise team projects
  • Answer Piazza
  • Hold office hours
  • Attend planning meetings
CompSci 330: Design/Analysis Algorithms (Munagala)
  • Attend regular grading sessions
  • Hold office hours
  • Grade exams
  • Run discussion sections
COMPSCI 356: Computer Network Architecture (Gorlatova)
  • Grade exams and homework
  • Grade labs
  • Hold weekly office hours
  • Answer Piazza
COMPSCI 371D: Machine Learning (Tomasi)
  • Hold office hours
  • Answer Piazza
  • Help grade assignment and exams (grading parties with Gradescope)

Min. Requirement: Completion of CompSci 371D or CompSci 571 or CompSci 671.

COMPSCI 671D: Machine Learning (Rudin)

Some subset of this list, depending on preference:

  • Leading discussion
  • Design of materials (hw, tests, kaggle competitions)
  • Grading 
  • Office hours
  • Webmaster
  • Answer Piazza


Duties and Commitment

Being a UTA is a serious obligation that requires a firm and substantial weekly commitment on your part. It requires timely checking and responses to communication (e.g. email, Slack, Piazza). It is a semester-by-semester job that extends from the first day of classes through the end of final exams. You must re-apply each semester.

All UTAs will be required to attend a training session at the beginning of the semester before school starts.

Duties will vary between classes, but you can generally expect to do some of the following:

  • Grade – Responsibilities range from students’ assignments or in upper-level courses, projects. Sometimes a professor may have UTAs grade student exams.
  • Hold office hours – Most courses will have office hours in the evening. Office hours are used to answer student questions about topics covered in lecture, homework problems, etc.
  • Lead a recitation/lab – Lower level courses such as 101, 201, 230, etc. have a discussion section where students will get more application problems on topics covered in class. UTAs will lead students through the problems and facilitate collaboration and discussion among students about the topic. UTAs will have to prepare beforehand by attending a lab meeting, and/or looking over the material, and/or doing the problems beforehand so that they can come prepared for answering questions.
  • Answer Piazza questions – Most courses use Piazza as a tool where instructors can post course announcements, and communicate important information to students. Students can use this platform to ask questions about logistics of the course, get clarification on the homework, or a study problem. The professor cannot answer all questions in a timely manner, so UTAs will also respond to questions that students may have.
  • Attend planning meetings – Faculty will arrange a regular meeting to gather all their UTAs so that they can prepare UTAs for the upcoming week or address questions and concerns that UTAs may also have.
  • Meet with student groups – Some project-based courses such as 308 or 316 will require that UTAs independently meet with the group of students that they are assigned to.
  • Administrative duties - If you are a Head UTA, you may have to send out emails and organize various UTAs for specific duties. The professor will be in close contact and instruct you.
  • Attend lecture - Some faculty need UTAs during regular class time because the course is structured like a lab.


The pay begins at $12 per hour with opportunities for increases every semester of serving as a UTA and promotions. Due to COVID, there are no semesterly increases. You must detail your hours biweekly and fill out a timecard on time.

Work Study

Work study is not required for this job, but it is encouraged. You do not have to be on financial aid to be on work study. Please see the Duke Financial Aid Work Study section for more information on how to sign up for work study.