The Missing Piece of Coding Education

0
5058

Just about any teacher who has incorporated Scratch into her classrooms knows that students love this free block-based coding language. Invented by MIT, Scratch allows users to drag-and-drop blocks that snap together to form “lines of code” that they can then run to see an output. With almost 40 million users, Scratch and its block-based coding language is the primary way students are introduced to coding in school.

It is what comes after learning block-based coding where we have a problem.

Over the last five years of using Scratch with students, I’ve encountered a disappointing reality: block-based coding doesn’t turn students into text-based coders. My students will spend a lot of time making games and other programs in Scratch. On Scratch, they are excited and engaged. When students are ready, I’ll challenge them to leave block-based coding behind and try text-based coding. I start with programs like the Raspberry Pi or Codecademy to learn Python, an easy to learn text-based language. When first confronted with these programs, almost all of my students shut down.

As they work through the beginner Python tutorials and videos, students aren’t shy about telling me how much they hate text-based coding. Computer science concepts like loops and conditional statements don’t transfer over easily into text-based coding for them. They are intimidated by the wall of text-based code they eventually generate and they hate going back through that wall of text to figure out when their code isn’t working, In all, I would say 9 out of 10 of my students lose interest in coding when making the move to text-based coding.

How can we help these students? There are some programs like Microsoft’s MakeCode that are starting to address this issue. With Makecode, users can switch between block-based coding and the text-based Javascript language. When students use blocks, it also generates the text-based code so students can switch back and forth and see how one turns into the other. When students are ready, they can write in Javascript and flip back and see the blocks they made using Javascript.

By exploring tools that bridge the gap between block- and text-based coding, we can better prepare our students to learn both of these languages.