So what is this group work thing I'm talking about? I did group work in three forms with my class this summer:
- Short, straightforward exercises reinforcing what we just talked about, done on their own or with the people sitting near them, usually lasting about 5 minutes. After introducing an algorithm and doing a sample run of it on the board, I would often give another input instance and ask the students to run the algorithm again.
- Longer, more difficult exercises applying the topic of the day with the aim of making sure all students can see a typical (easy) problem on this topic through from beginning to end, done in groups of about 4 at the boards around the classroom, usually lasting about 20 minutes, with me walking around and talking them through it when they get stuck. For example, proving that a problem is NP-complete.
- Out of class group project - I'm putting off a full explanation of this project until a later post, but in short, they were asked to work in groups of 2 or 3 on a 3-week long (out of 6 weeks) in-depth project.
Practice exercises in class - isn't that what discussion sections and homework are for? Yes (though this class didn't have a discussion section). But making sure the students understand the material is important enough to do multiple times, don't you think? In fact, most algorithms classes take the time to run the algorithm on sample input, it's just usually done by the professor at the board. So it doesn't actually take much more time to have the students work on it together, but it seems to me that they're much more likely to understand it if they had to do it themselves than if they watched you (and maybe a few of the more outgoing members of the class) do it on the board. Also, as the teacher, it gives you a chance for some mental breathing space, and a chance to find out what your students are struggling with instead of just guessing.
So, are you convinced? Already a fan? I'd be interested to hear other folks' experiences and suggestions.