Guidelines for TAing a course in the Computer Science department at Columbia University

 

TAing a computer science course can be an interesting, learning, socializing, and perhaps a frustrating experience. There are three actors that determine how smooth this experience can go. 1) Your professor 2) Your students 3) You

 

Responsibilities of a TA

Teaching assistant is like an ordinary job and this is how it should be perceived. Many people think that the responsibility of a TA is to grade the assignments and help the students. These are indeed the two main goals of a TA. However depending on the course for which you are a teaching assistant, these responsibilities can take various forms. Following are the official responsibilities of a TA. (Please email me if there is an error)

1)      Grade the assignments, midterms, and finals

2)      Respond to student emails

3)      Maintain a bulletin board

4)      Maintain the course website and mailing list

5)      Maintain the grading sheet

6)      Devise the homework / programming assignment / solutions

7)      Hold 2 hours of office hours / unit of TAing

 

And the following are unofficial responsibilities of a TA

1)      Of course meet with the prof

2)      Work as an unofficial head TA if the course enrollement is less than 100. There is no extra compensationL

3)      Meet with other TAs and divide the work among them.

 

TA workload

Programming is an essential part of computer science but not every course has a programming requirement. Workload for a course with a programming requirement is significantly different (and higher) from the course with no programming requirement. I thus classify the course offerings in two categories: One, which has some programming content and the other, which does not have any. Further, for each category, I discuss the amount of workload according to the course level.

 

Courses with a programming requirement

 

Introductory level courses (1xxx-3xxx)

Some of the courses in this category include Intro to Computer Science, Advanced Programming, and Data Structures in C / C# / Java.

 

The material in these courses is not difficult and as a CS graduate, undergraduate junior or senior, or a PhD student, you should have good grasp of the material. However, the most important aspect is how effectively you understand the student’s problems and explain them in a way that is understandable by them and not you.

 

A significant number of students of in these courses can have a non-CS major and therefore depend a lot on instructor and TA to help them.

 

The number of students enrolled for these courses is at least 50. For intro to computer science or intro to programming, the enrollment can easily go above 100.

 

These courses are easy to TA, so most people apply to TA for them.

 

Sometimes, PhD students teach these courses and manage most of the workload themselves. The TA responsibility is reduced to merely grading the homework and programming assignments.

 

4xxx Courses

This category includes courses like Operating Systems, Computer Networks, Artificial Intelligence, Computer Architecture, Problem Solving, User Interface Design, PLT, and Embedded System Design

 

The difficulty level of these courses is medium to advance and the TA either has taken this course, or has significant experience in the field. Courses like Operating System, Computer Networks, and Artificial Intelligence have high workloads and I strongly recommend not to TA them, if you do not have a good grasp of the theoretical and programming aspects or have trouble managing your time. Operating System is perhaps the most load intensive course both for the students and the TAs. For these courses, a TA has to help the students on almost a 24 hour bases near assignment submission time. It therefore can be argued, that the TA compensation for these courses should be higher since the amount of workload is quite a lot.

 

As a TA, you can be asked to devise a homework or programming assignment or come up with the solution for a programming assignment.

 

If you are TAing for one unit (which means 25 students), the total number of hours you spend for TA work can easily exceed 20 hours. The official time you should work as a TA for these course is 10 hours.

 

Also, if you are a PhD student and you are TAing a 4xx course, you may have to spend more time compared to other TAs.

 

The number of people enrolled for these courses is between 40 to 100+. If there are more than 100 people in the class a head TA is appointed. However, I feel that if there are three or more TAs for a course, a head TA should be appointed.

 

6xx and Above

This category includes courses such as Advanced Internet Services (AIS), Advanced OS, Advanced Network Security, Computer Networks (EE), and some courses offered by visiting faculty.

 

The TAs appointed for these courses may not have a complete knowledge of the subject, since this might be the first course offering. Some professors may mandate that you attend the class if you have not already taken the class.

 

There is not a significant workload for these courses (AIS is an exception). There are two to three programming assignments. Most of the students will realize pretty soon if you don’t have a significant knowledge of the subject and will start bugging the professor instead of you. The students are typically pursuing MS, or PhD, or some brave undergrads.

 

Around 20-40 people are enrolled in these courses.

 

Courses with no programming requirement

Courses offerings with no programming requirement do not have significant workload. Normally the professor provides his/her TAs with the problem solutions and the grading scheme, and the student merely has to grade the homework.

 

 

The TA stipend

Though terribly less paid, it has a prospect of getting you funding for your tuition and a small stipend. As a normal graduate TA, you get 1,500$ for one semester or 450$ / month approximately which is terribly less. But unfortunately, this is how the things are.

 

 

Tools available to a TA

There are a number of tools provided by Columbia and available on the Internet that can help the TA in performing his/her job. These tools can be categorized in three categories. 1) Plagiarism detection 2) Student grade information 3) Bulletin boards / mailing lists

 

Plagiarism Detection

For plagiarism detection, MOSS, a tool developed in Stanford University can be used. It is a very effective tool and has been successfully used in many courses. PUT THE LINK

 

Student Grade Information

Student grade information should be available online. First, it helps students track their performance throughout the semester. Second, many times student lose their graded assignments and thus have no way of knowing their grade in a particular homework. Third, there is unfortunately no place in computer science department, where the TAs can put the graded assignments and from where the students can pick them up. Fourth, it helps reduce the number of regrade mails, and the end semester panic by allowing the student to see his performance immediately.

 

Columbia has an online system called CourseWorks. It is said to be a turnkey solution for things like mailing lists, bulletin boards, posting lecture slides, grades and assignment solutions. I however prefer using it for posting grades, assignment solutions, and mailing list. It is run on a very slow server and has a really bad bulletin board.

 

Prof. Neih has a nice set of tools for posting the student grades, and student performance viz-a-viz whole class.

 

Bulletin boards / Mailing lists

There are three types of bulletin boards used at Columbia. None is really good enough. First is the old acis bulletin board. The second one is the courseworks bulletin board. The third one is the PSL bulletin board. PUT THE LINKS

 

 

Relationship with the professor

This is the most important relationship of your assignment. Your professor is your boss and he is the one responsible for recommending you for TA continuation or further funding. Some professors tend to micro-mange their TAs i.e. monitor their every activity. Some professors are completely laid back, and leave it completely to the TAs how they want to proceed. Most are in between. As a TA, it is your responsibility to know your professor. Being micro-managed is relatively better than leaving everything upto the TA. Confusions can arise, and do arise if the professor is laid back, and there is more than one TA for the course. Then TAs have to distribute work among themselves and since nobody is interested in spending time on the TA work, it can lead to significant conflict.

 

Some professors can ask you to maintain a course website.

 

Your co-TAs

If your co-TAs take their responsibility seriously, then it is well and good. However, it is not always the case. If you think, your co-TA is not working enough, you can always complain to the professor. I suggest that you use it only as a last option, after you have explained the other TA in polite terms his or her responsibilities. Also you have to be careful, since your co-TA can be your student colleague, and can become your TA in the future.

 

Conflict with the other TAs arises, when the professor does not clearly define the responsibilities of other TAs or a TA shirk his responsibility. A good way to avoid this is to keep professor in the communication loop i.e. cc your mail to the professor.

 

Also, it is very imperative to clearly communicate with other TAs the grading criteria of the assignment.

 

Another important aspect is the student emails to the TAs. First, you should encourage students to mail all the TAs. Whenever a TA responds, he or she should mail to other TAs also to keep them in the communication loop.

 

Another reason your workload as a TA can significantly increase, when the other TAs do not respond to email, or do not check the bulletin board. The TAs should divide the number of hours or days, he or she will monitor and respond to the email and on the bulletin board. Professors generally do not check the bulletin board, so its only upto the TAs to check it.

 

Relationship with students

TBW

 

Guidelines for grading an assignment

The work should be divided so that one TA grades either one assignment for all the students, for some questions in the assignment for all the students. This ensures uniformity in the grading; however it can take more time to grade the assignment.

 

If different TAs grades the same problem set, then professor and TAs should ensure that grading criteria has been well communicated. I do not prefer this form of grading.

 

After the grading is done, results should be compiled in an excel sheet, and posted on the courseworks. The TA should send an email to the students, that the assignment has been graded, which questions have been graded by which TA, and should announce the day they will be distributed in the class.

 

Students will come to the TAs for regarding issues. I suggest that as a TA, you should ask your professor to announce the policy in the class that regrading issues will be dealt within two weeks after assignments are distributed.

 

The last assignment

Care should be taken by the professor and the TAs so that the last assignment of the course is assigned and returned well in time, so that students can come for review.

 

Best TA Award

The best TA award, a cash award of 500$ is given to five TAs, who are rated the highest by the students in their course ratings. To ensure that you are in contention, you must not forget to register yourself as a TA with the online course evaluation system at proper time. Perhaps, TA coordinator should send a mail regarding this. Bests TA award is not necessarily a function of how good you are, but rather a function of how good you are AND how strict you were as a TA.

 

Things a professor should ask and know about his TA(s)

 

 

Things a TA should know about his professor