Introducing Block-Based Coding

Esme Hotston Moore
4 min readNov 29, 2021

An accessible pathway into the world of computer programming

Block based coding uses a simple “drag and drop” UI to allow learners to piece together “blocks” of coding instructions to create simple codes like animated stories, quizzes or games, thereby providing an accessible introduction to the world of computer programming.

To understand this better, let’s go back to the beginning: what is programming? Computer programming, or coding, is how we tell a computer what to do next, how we give it instructions. This list of instructions can be called a code or a program (the words are essentially interchangeable). The aim of this code is to solve a problem or to do a task.

We use coding languages to issue these instructions to the computer, similarly to how I would use a spoken language to give a set of instructions in the form of a recipe. For example, I could write a creme brûlée recipe in English or French. While spoken languages often have tenses and punctuation, coding languages also use grammar and symbols. Somewhat fortunately, they do not rely on context and nuances as much as well established spoken languages; instead each programming language has rules about how it will be interpreted. Programming languages are very well structured but they have a smaller vocabulary. As each programming language has its own set of rules, or syntax, not every programmer is familiar with the rules of languages outside their expertise. However, all programming languages are underpinned by formal logic similarly to maths.

In contrast, block based programming is language agnostic — it provides a way for learners to get to grips with fundamental concepts of programming without getting bogged down in the syntax of any specific language. Learners escape the distraction of where to put semi colons, as they can drag pre written “blocks” of coding instructions together to create their own set of instructions to give the computer, or their own program. The jigsaw style appearance, shows learners how to combine commands, snapping valid statements together and preventing blocks from being combined if they are not compatible.

Therefore, learners can explore programming concepts such as loops (while… or for…) or conditional statements (if… else…) which are common to all languages without worrying about pedantic syntax rules’ obscure errors or even having to decide which language to choose! They can enjoy the creativity and design of programming without being hindered by the less fun aspects. This helps learners to expand their understanding of the world around them (which increasingly relies upon programs after all) and to motivate some to continue on to text-based languages when they reach the limitations of block-based languages.

When beginning to teach those already committed to learning programming, I see starting with block-based coding as the best way to iron out a clear understanding of the fundamentals of programming without the distractions of the syntax of any text-based language. For example, at Code Your Future, we have had great success in focusing our fundamentals course around block-based coding in order to lay the foundations for the full-stack course. To start with I was cautious that learners who were already familiar with other text-based languages may be bored, but we saw that they too learnt a lot from these methods. For a class with more learners already familiar with text-based languages, then a block-based language such as “App Inventor” could give them the advantage of the capability to create phone apps which may otherwise be beyond their abilities, or for the most advanced they can make open source contributions, all whilst keeping the whole class aligned to the same theme.

When writing a book, putting pen to paper in order to start writing can be the biggest challenge, and when confronted with a blank screen when coding, knowing what to write on the first line can be similarly intimidating. Most block-based coding environments combat this by listing possible options down one side of the screen and so provide that first prompt or memory jog to get you started and so to overcome writers block.

When recommending block-based coding, it is important to be aware of two disadvantages. Block-based coding can be less accessible than text-based coding for those with certain visual or motor disabilities, and so it is not the answer for every individual wishing to learn to code. Additionally, you may come across others who argue that it is not really programming, however I would encourage you to discuss this idea further. If you are of this opinion, please do share your thoughts to encourage discussion.

--

--