A PARENT’S GUIDE TO PROGRAMMING
Mike Bedford investigates which languages to consider if you want to help your children get a head start in coding
Let’s start with a history lesson. The first high-level languages—which made their debut in the 1950s and included the likes of FORTRAN, ALGOL, and COBOL—were designed as down-to-earth tools with little thought given to education. This changed in 1964 with the introduction of BASIC. The language’s acronym hints at its nature, and its full name, Beginners All-Purpose Symbolic Instruction Code, emphasizes its educational credentials. Indeed, BASIC was designed for use by students who had little appreciation of computers. It outlived other languages of that era, having been adopted for use in the home computers of the late ’70s and ’80s, and helped another generation learn to code.
While BASIC remained largely unchallenged for several decades, if you want to help your children learn to code today, it’s not nearly as easy to choose a language. For a start, there are now several other languages that were designed exclusively, or almost so, for education. Also, any discussion of beginners’ languages invariably brings up various languages which, although not originally intended for such, are considered to have a role in education.
We’re here to help you navigate your way through the language jungle to decide which would be the best for your children to learn. We consulted Carrie Anne Philbin, director of educator support at the Raspberry Pi Foundation, who also leads on the teach computing curriculum for the UK government-funded National Centre for Computing Education (NCCE), and she provided some useful insight into the various languages we consider here. Her opening remark is worthy of our attention. “I guess the most important information I can impart is that in education—both formal and non-formal— we do not start with a programming language,” she explained. “We always start with concepts, usually offline, before using tools that help learners make the concept more concrete in their minds.”
SCRATCH
If you’ve not delved into educational languages before, it’s possible you’ve not encountered block-based languages. In passing, that term is entirely different from block-structured, the concept that’s key to structured programming and inherent in most of today’s programming languages. By way of contrast, a block-based language involves programming by dragging blocks—which we can think of as statements—from a palette on to the scripting area, and editing by manipulating those blocks in the scripting area. In other words, it needs little in the way of free-form typing, the requirement being pretty much limited to editing things such as the time in a wait block or the distance in a move block. Ease of use is also enhanced by virtue of the blocks being shaped somewhat like jigsaw pieces, an approach that slightly reduces the possibility of using a block in a nonsensical context.