The Missing Piece of Coding Education: How Do You Turn Block-Based Coders Into Text-Based Coders

(Image credit: iStock)

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. 

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 


12 Awesome Ideas for Ending the School Year

What Makes a Good STEM/STEAM Toy?

Screen-Free Week and STEM: Digital Resources

STUDENT REPORT: How I Learned About Art & History By Building with LEGO

Motivating Reluctant STEAM Learners: Changing how you assess can inspire students

Teacher, Fair Haven Schools, NJ