Teaching to groups

Advice for leading sections, and other thoughts from shadowing undergrad TAs.

This post was originally written Fall 2017 for CS 61A staff.

The purpose of discussion and mentoring sections is to provide a space for students to recognize patterns and construct mental models for solving programming problems. To achieve this broad goal, we’d like for students to spend time thinking critically about not only the concepts themselves, but their perceptions and understanding of the material. Through discussion section and mentoring, students have a unique opportunity to get hands on with problems while still supported by your guidance. The importance of having a trustworthy mentor throughout this process is hard to understate.

Here are a few universal principles that encompass the majority of the feedback I give to teachers.

Focus on ideas

Communicate intentions clearly

Prepare lessons with students in mind

Before the first session, reach out with emails and check-in with them so they’re more comfortable with talking to you. It’s hard to break the ice after two or three sessions. Getting students to buy-in to what you do in class is important. If you want them to talk with each other, expectations should be setup early. Make it both your goal and a goal for the students to get to know students in section. Even if you run into difficulty remembering students’ names, demonstrating consistent effort to get names right is appreciated.

Experiment with having students work independently at various points and also working together on paper or at the board. Think, pair, share is a great learning technique, with the caveat that students might need some help getting started with a problem for the “thinking” portion to be effective. It can be hard to know where to start without explicit guidance. Simply showing examples is not enough; we need to talk about how those examples represent an application of a more general problem solving process. Include things to look for in a problem and guiding questions that you ask to yourself when working on a problem. These metacognitive questions can help students construct their understanding of how to solve problems and for coming up with their own sets of questions for evaluating their progress on a problem.

Studies have shown that students ask better, directed questions and monitor their own progress through a problem better by having a concrete framework and set of steps to follow. Our job as instructors is to provide a more detailed application of some of the trickier concepts in the course in the framework of a generalizable problem-solving strategy. With recursion, for example, we might want to: