Four years ago, when I started a makerspace at my current school district, I knew I wanted to introduce my middle schoolers to coding. I had taught coding to a small group of high schoolers in an informal, club-like format before, but I’d never taught coding in a formal classroom setting. I was excited to teach my first coding lesson. I prepared slides and some sample Scratch projects to help students through the lesson. Then, not knowing any better, I introduced coding to students as a whole class lesson.
It wasn’t long into the lesson when I knew I was in over my head. Some students had used Scratch before and were far beyond the introductory lesson I was giving. Other students didn’t even know how to turn on the computer and navigate to the Scratch website. The rest of my students fell somewhere on that novice/expert spectrum. I couldn’t keep up with all the kids asking for help. I had to go and tend to each student individually. Other, more proficient students, raced forward or grew frustrated having to wait for the lesson to continue because I was helping students catch up. My first coding lesson was a disaster.
As teachers, what do we do when students bring such different levels of experience to a lesson like coding? Before teaching in a makerspace, I was an English teacher. One of the first lessons I taught students back then was how to write a good thesis. I taught the thesis first because it was something students would need to use all year. But everytime I assigned an essay, I had students who couldn’t remember what a thesis was. Instead of reteaching the lesson over and over again, I made a video that retaught them about the thesis. Students could use the video when they needed, as many times as they needed, and since I didn’t have to reteach the thesis lesson I was free to help students with deeper learning. If creating videos worked for my English students I wagered it would work to help my students learn to code.
I apologized to students in our next class. I said I wanted to reteach them the coding lesson, but this time I was going to do it through video. Students logged on, watched the videos I had made for them and uploaded to YouTube, and moved at their own pace through the assignment. They would pause or rewind the video as needed. Because I wasn’t doing whole class instruction, I was free to move around the room and help students as needed.
The lesson went so much better than my first. I had found the secret to teaching coding to everyone: self-pacing. By allowing students to move through lessons at their own speed, whether through video or online dashboard like Google’s CS First or Codecademy, removes a lot of the frustration for kids because they can take their time. At the same time, by offering a reference video that allowed students to advance at their own pace, I could provide the personalized support each student needed for the lesson.
By integrating video and online resources into your coding lessons you can meet students where they are and keep them moving at their own pace. This way we can give them the kind of personalized instruction that supports the student-centered learning we value for any lesson.
Chris Aviles is a teacher at Knollwood middle school in the Fair Haven school district in Fair Haven, New Jersey. There he runs the Fair Haven Innovates program he created in 2015. Read more with Chris’s work on his blog TechedUpTeacher.com.