Posted: Wed, 02/09/2022 - 10:02 am EST
One of the ideas that has really stuck with me as a theme from my summer professional development and subsequent reading of Hello World’s Big Book of Computing Pedagogy (check it out if you haven’t yet!) was the idea that one must be able to read code before they can write code. Students in my classroom do spend time reading code examples and identifying key features. However, if we were to approach this like learning a new language, what was missing was talking about code.

When students have to talk about their code, they have the opportunity to use new vocabulary in context. Hearing students explain their code has allowed me to identify key misconceptions and areas of growth. From the student perspective, though they are uncomfortable at first, they also notice a better understanding of how their code works and feel more confident with the material. So, how do you get students talking?
Here are five ways that work well in my classroom:
- Collaborative programming: Whether in pairs, small groups, or as a whole class, collaborative programming allows students and teachers to hear the thought process behind the code. Initially, providing structures like pair programming or having each student in the class write a line, helps to organize a project. I’ve found that multiplayer IDEs, such as Replit, have really improved this process as well.
- Rubber duck debugging: Rubber duck debugging (no, seriously it's a thing) replicates the experience of being able to fix an error in the process of explaining the code to someone else by explaining it to your rubber duck instead. I find that middle schoolers tend to do this naturally with each other and the teacher. At the high school level, I make a ceremony out of everyone getting a small rubber duck, naming it and decorating them in our first computer science course. Most of the students hold on to them for years!
- Code review: Another strategy stolen from industry is the code review. After students have written code individually, they pair up and look for specific features in their partner’s code such as efficiency and readability. This definitely takes practice for the students, but guiding questions and modeling can scaffold the process.
- Make a video: Flipgrid is one of my favorite tools that I discovered during remote learning. The platform makes it easy for students to record and watch others and puts everything in one place for the teacher! I’ve asked students to explain a bug they found and their process for fixing it, why they chose a particular coding structure (if-statement, loop, function, etc), and share their code working. I’m really looking forward to using videos to capture their work in our robotics unit since we won’t be able to leave all the robots assembled.
- External accountability: When students have a goal of sharing their project with someone outside the class, they have a bigger stake in the project. This could mean inviting another class or grade level in for a gallery walk of their projects, asking administration to offer feedback, finding stakeholders to interview about their project design, or play-testers for their games.
What ways do you get students talking in your classroom? Share your tips in the comments!
CS for All Teachers Community Ambassador Michele Lombardi is the middle and high school computer science teacher at The Ellis School, an all-girls independent school in Pittsburgh, PA. Michele strives to build a curriculum that inspires students to use computer science as a problem-solving tool and as a medium of expression. She wants her classroom to be one where each student feels valued and sees how they can use technology to positively impact their community.
Comments
Permalink
Submitted by Bil Lewis on Fri, 04/08/2022 - 4:50 pm EDT
"Rubber duck debugging" -- that is wonderful!
I advise my students to explain their problems to whomever is around, which at 2am is usually the janitor.
:-)