Teaching Critical Comparative Data Structures and Algorithms
What do we have so far?
What do we have so far?
How we run class in my remote, introductory programming course.
Our class meets for 50 minutes every Monday, Wednesday, Friday (MWF) in addition to small sections on Tuesday and Thursday (TuTh) led by undergraduate teaching assistants (TAs). I’ll describe the structure of our MWF class sessions. Before class, I have students prepare by completing interactive readings with “Explain in Plain English” questions, Parsons problems, and short quizzes interspersed throughout the reading. (These would be great activities for in-class work too, but I still need to create many more of them!) At the start of each class session, I do some just-in-time-teaching to respond to student questions, which oftentimes means walking through some of the more challenging pre-class preparation activities.
Then, we spend the next 25 minutes as a single block of time for students to work on programming problems in groups using Zoom breakout rooms. Each group moves at their own pace through 2 or 3 programming problems.
Are students randomly assigned to rooms? In the first week, students are assigned to rooms randomly since I wanted them to meet various other students. They can also meet some students through their small section. From the second week onwards, we have students sign-up for their preferred in-class problem solving groups through our learning management system, Canvas. Canvas groups are then imported into Zoom pre-assigned breakout rooms with Justin Hsia’s handy canvas-api.
Are they assigned ‘roles’ and required to swap roles periodically? We use large groups of 6 to 8 students in each room. Each room picks a student to screen-share and drive the group programming activity. Everyone else serves as a navigator to help out. I suggest rotating after each problem or at least between each class session. When I was first starting out with this pedagogy in the Spring quarter, we tried out various group sizes before settling on 6 to 8 students. These groups are much bigger than recommended for in-person activities, but it helps in the online environment since not all students may be in a position to participate in their breakout room. Out of those 6 to 8 students, about 3 students will lead the discussion, 2 students will chip-in here and there, and the remaining student(s) will be mostly silent. Your mileage may vary, especially if your students come into the course knowing each other already. I’ve had one group this quarter prefer a smaller 2 or 3 person groups, and their interactions were very similar to more traditional pair programming.
Do instructors and/or TAs circulate around observing/answering questions? Yes, some of our TAs attend class on MWF in addition to leading their TuTh sections. Their role in the MWF class sessions is primarily facilitation of group work and occasionally helping groups get unstuck.
Any best practice to get students actually working together? The students who had the best experience in this system were the ones who were the most proactive early on about creating a study group that persisted outside of scheduled class meeting times. I chatted with a student last week who had a really great experience because they connected with a few peers from their section through Facebook or LinkedIn and formed their problem solving group through those connections. Next time, I will be taking more intentional steps to try to do this for everyone and fully embrace micro-classes: