One of the finest universities north of Prospect in Fort Collins

Jack Applin

PmWiki

Responsibilities of a TA

Terminology

  • TA: a Teaching Assistant, whether an undergraduate student (UTA) or a graduate student (GTA).
  • Instructor: the person giving the lectures.
  • Test: a quiz, midterm, final exam, etc.

Lectures

  • You are expected to understand the class content, well enough to help students with it.
  • Whether you knew it before this semester, or whether you learn it with the students, is all the same to me.
  • If you already know the material perfectly, then feel free to skip lectures.
  • Otherwise, attend lectures. Don’t make me teach the subject to the students and to you separately.
  • Confessing a lack of knowledge to me will not harm your standing in the Computer Science Department. I have nothing to do with your degree program. Be honest.

Email

Students will ask you questions about homework via email. If you make a decision (for example, telling a student that error-checking is not required on a particular assignment), then cc: the instructor, so that we both tell the students the same thing. Feel free to use cc:—email is cheap.

Canvas

Respond to students in Canvas, if you can help, especially if you graded the work under discussion.

Grading

  • Homework is submitted & graded via Canvas.
  • Read the assignment, particularly the requirements section. It is your responsibility to identify gradeable requirements. For example, an error message may have mandatory text, or input may be case-independent.
  • Don’t apply a curve—if the average for an assignment or test turns out to be 40%, or 90%, so be it.
  • Partial credit and fractional scores (e.g., 3.6) are up to you.
  • No matter how bad an assignment is, don’t give a negative score.
  • Avoid a zero score, except in extreme cases (the student turned in poetry instead of a program). Even if penalties should take their score to zero, give them something for trying and getting it to compile.
  • Grade the assignment on a scale that corresponds to its value in the class. For example, if an assignment is worth 5% of the overall points, then grade it on a scale 0–5. This makes it much easier for students to compute their grade.
  • Grade from the top down. That is, for a five-point assignment, the student initially has 5.0 points. If the first test, worth 0.25 points, fails, then the student has 4.75 points. Another test fails, down to 4.5 points, etc. The possible penalties usually add up to more than the total points.
  • Explain grading decisions to the students, if they inquire. If they disagree, refer them to the instructor.

Automated Grading

  • Grading is hard—don’t just write a script and let it make all the decisions.
  • For example, if the assignment specifies that the output contain the word “vertical”, some students will misspell it as “verticle”. This will cause all of their output to be different than yours, and so they will lose most, if not all, points. It is not acceptable to lose all points for a simple misspelling. Check the output to see why students lost all points, assign a small penalty, and regrade.
  • Similarly, students will issue an incorrect prompt. Manually correct this, assign a penalty, and move on.
  • Implement multiple test cases as separate programs. Writing a single giant test program will not work if the student code aborts in the first test case. Similarly, the student might not have implemented all of the required methods in a class—separate programs will ensure that he doesn’t lose all points because a single test case failed to compile.
  • As a spot-check, after automated grading, inspect a few of the submissions that scored 100%, and all of poor saps that got 0%. Make sure that it’s not a problem with your process.
  • I don’t mind extra trailing spaces in the output of student programs, or if they use tabs instead of spaces, as long as the output lines up properly. Filter the student output through col -px to expand tabs and eliminate trailing spaces.
  • Don’t trust student code—isolate it. For each submission:
    • create a temporary directory
    • copy the student code there & build/compile it
    • copy in any required data files
    • run the program with a time limit, e.g.:
         # Run ./HW5 with a five-second time limit:
         timeout -v -s kill 5s ./HW1
    • extract the results from the temporary directory
    • remove the temporary directory.

Grading feedback

  • You must provide useful feedback to the students. It is not good enough to merely give them a score. They must know what test cases they failed, and why. They need useful feedback.
  • It is not acceptable to merely say “run my grading script; the output will explain everything”. You must break down each case in the feedback.
  • It is ok to provide data files used in testing in a subdirectory of ~/pub, e.g., ~/pub/HW3-files.
  • The trailing signature tells the student who to contact for questions. This is especially useful if we have more than one TA for the class.
  • Explanations are only required for homework, not quizzes or tests.
  • Don’t create grades unless something was turned in.
    • If a student doesn’t take a given quiz, his zero score shouldn’t be curved up to a non-zero score.
    • I need to be able to distinguish between a score of zero that was earned and a default score of zero because nothing was submitted.
    • If a student receiving financial aid fails the class, the financial aid people ask me the date of the student’s last participation, so I need to know which tests the student showed up for.

Cleanliness

  • When grading homework, don’t litter the class home directory. Create your own directory (~/Grading or ~/your-name is fine) and use that.
  • Don’t change config files such as ~/.bashrc or ~/.vimrc without consulting me.

Cheating

  • If you suspect cheating, notify the instructor. Do not discuss it with the student.

Lab Op

  • You’re required to be a lab operator in the Linux Lab, which also serves as office hours.
  • When scheduling that time, keep in mind when homework is due. It’s useless to have office hours just after the work is due.