My 6.001 Thoughts

These thoughts were inspired by Ben Vandiver's thoughts on the 6.001 course. My hope is that this document will help future TAs in teaching this course. Ben's thoughts can be found here.

Respect the students. They are the best of the best and should be treated that way. If there is a misunderstanding, then most often the problem lies in the explanation, not the student.

Demonstrate your passion for the subject. This goes extremely far and will be appreciated by the students. You can have a pretty crappy day explanation-wise, but if you seem to be having fun doing it, the students will live with that. Optimally, your explanations should be as good as possible, but you may be out of it once in a while.

For long and complicated examples, create a handout. This saves lots of time and makes board management easier (especially since the tutorial offices have tiny boards).

Demand perfection from day one, project zero/one. The harder you are on your students on day one, the easier it will be to grade later on when the projects get tricky. Be harsh, especially when it comes to coding style (comments, test cases, sloppy code, pretty printing, etc.).

When grading projects, scribble all over their code and make comments where their mistakes are. Then, put the score on top of the project in fractional form with the numerator being their score and the denominator the point total of the project. Do NOT write down what each mistake was worth. This way, the student will take seriously each comment that you write down in their code and remember it for future projects. Think of it like grading term papers for a literature class. Of course, keep a private rubric in case one of your students calls you out.

If the students feel that you are grading too harshly, remind them that the project scores from the TAs are shifted and normalized at the end of the semester. I try to get a 25/30 average and rarely give perfect scores.

Solicit feedback sometime after the fifth week in the semester, preferably when the course is somewhat slow. Ask for constructive criticism regarding your tutorial style (what are the good and bad things in your tutorial) and also how they are feeling in the course (you might get feedback regarding the recitation/head instructor or the course in general). I usually say that my goal is to get everybody excited about course 6, so if I am failing in way they should let me know. The solicitation for feedback lets the students know that you care about their wellbeing in the course and allows you to make corrections DURING the semester, not AFTER the semester is over.

Always start tutorials on time and end on time (or early). Anything covered after the session will not be learned and is wasting your time (use any extra time to answer questions).

Abstraction violation rubber stamp...make the students fear it!

After each tutorial, grade each student on a scale of 0 to 5. The students should be coming to tutorials prepared, so this is a good way to keep the students on top. Also, it allows you to cover more interesting examples that build on top of the material.

In this vain, make the tutorials highly interactive. Since there are only 4-6 students, each student should be called on at least 8 times in a one hour session. Gauge your questions and give the more challenging ones to the top students. Try to treat your questions as a way of probing how much each student knows.

Steal material from anywhere you can find it! A good source is the textbook since it is not used much by the students. I hear that the teaching supplement to the text is also excellent. You should try to make at least one new problem for each tutorial so that the students (and you) have something fresh to think about. The best ones are based on everyday examples (such as a fantasy football/NCAA hoops league) and on your research (if that is possible). If you use a research example, make sure that it is easy to understand and relevant. The students will really appreciate these.

Be available. Respond to e-mail as soon as possible. Try to set up regular office hours in the 6.001 lab. I do not hold office hours in my office as I prefer keeping my teaching and research somewhat separate.

Stay on top of the projects. The worst feeling is having a student ask a question and you have no idea what is going on. A good idea is to work on the projects before they are released and help debug/clarify them.

I usually post reminders of all of the upcoming deadlines for a given week on the chalkboard or on the tutorial handout. The students appreciate this since there are so many components in the course.

Unfortunately, cheating does occur at MIT. If you have a case for cheating, immediately notify the head professor. Ask how you should handle it. I tend to be harsher than others regarding cheating because of my undergraduate background (you are kicked out for any violation of the honor code).

A nice thing to do during the first tutorial is to bring a digital camera in (if you have access to one) and take pictures of the students in your tutorials holding a sign with their name on it. It is a nice icebreaker and will help in you learning their names. I find that the class roster pictures are not very helpful (some of the pictures are blue!). You will earn extra brownie points if you study their names before the second tutorial and actually remember them.

All comments are welcome. I will happily post new thoughts/suggestions from other TAs. Please follow the "Home" link below to find my current e-mail address.


Home