What is Block Based Coding?

Block Based Coding is the de facto way to teach kids introductory programming in the US.

Instead of traditional , text based programming, block based coding involves dragging “blocks” of instructions. The most popular, by far, block based app is Scratch. As you can see in the pic, below, you drag peblocks of instructions on the left into the editor on the right!

Scratch Blocks and editor
Scratch Blocks and editor

Pros and Cons of Block Coding


First, the Pros

There are many reasons that educators in love block based coding

  • low barrier of entry. You simply drag blocks and run the program. this helps both teachers and students.
    • Low student frustration : lack of syntactical errors that always come with text based programming
    • There is a well known shortage of CS teachers (at least here in the US).    Teachers, who didn’t major in computer science in college, can  pick up and learn block coding relatively quickly.
  • teaches  programming concepts. Including operators, events , control structures, and more
  • fosters experimentation . Good programmers don’t mind experimenting with the code.  Block coding is so easy that it begs its users to just try some blocks out and see what happens!
  • fosters creativity. Just play around with Scratch and you’ll see.

Frankly, the only way that you find cons, we believe, is if ultimately, you want to learn text based coding  because your goal is to learn industry language like Javascript or like  Python, as we teach here.


So, in that case, here are some Cons

  • traditional debugging is limited. While you can do some debugging in Scratch,  the nature of debugging in a text based environment is often fundamentally different.
    • For instance, a “step by step” debug with breakpoints does not exist, to our knowledge, in any block based application
  •  Much wider support of various data structures Text coding vs Block coding
  • Potentially bad habits :  What works in block based coding can causes problems for first time coders,  who have never had to think about syntax errors.  In the block environment,   Students tend not to incrementally test out new instructions.  Instead, it’s pretty common for kids to throw lots of blocks together before testing out if their instructions work.  This is only natural, given the creative and fun nature of using blocks.  Heck, I’m guilty of this too when I use blocks!   Well, this approach works fine with Scratch or Code.org. However, once syntax errors are introduced in text coding, this same habit can actually increase student frustration. Compilers and  interpreters are notoriously cryptic and typically only complain about the first syntax error. So, when a student sees an error message he/she might fix a few ones but not the one that compiler is complaining about.

For further reading on the transition from block to text code, check out this pdf.

All in all, we think block based coding is great. It’s helping get more and more kids into programming, and it’s obviously here to stay, a question is–how can the cons be best addressed?

We hope that, when you are done with block coding and ready to learn text coding, you’ll try out Penjee to learn Python.