What is Block Based Coding?

Block Based Coding is the de facto way to introduce kids to programming.

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

When you run the app, the instructions on the right side are executed.

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. Easy to understand both for teachers and students.
    • Low student frustration : lack of syntax errors, something that  comes with text based programming
    • Easy for Inexperienced Teachers: 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!

What about the cons?

  • Limited Debugging Opportunities. While you can do some debugging in Scratch,  the nature of debugging in a text based environment is 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.


All in all, we think block based coding is great. It lowers the barrier of entry and therefore helps to get more people involved in programming, and it’s obviously here to stay, a question is–how can the cons be best addressed?  Not an easy question to answer or the topic of this post.

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



More Examples of Penjee’s Text Coding