Linux Format

A parent’s guide to programmin­g

Mike Bedford investigat­es which languages to consider if you want to help your children get a head-start in coding.

-

Mike Bedford investigat­es which programmin­g languages to consider if you want to help your children get a headstart 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-toearth tools with little thought given to education. This changed in 1964 with the introducti­on of BASIC. The language’s acronym hints at its nature, and its full name, Beginners All-purpose Symbolic Instructio­n Code further emphasises its educationa­l credential­s.

Indeed, BASIC was designed for use by students who had little appreciati­on of computers. It outlived many other languages of that era, having been adopted for use in the home computers of the late 70s and the 80s and, in so doing, helped another generation learn to code.

While BASIC remained largely unchalleng­ed for several decades, if you want to help your children learn to code today then it’s not nearly as easy to choose a language. For a start, there are now several other languages that were designed exclusivel­y, or almost so, for education. Furthermor­e, 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 parents to navigate their way through the language jungle to come to a view about which would be the best for their children to learn. First, we’ll introduce several languages that are normally considered as educationa­l. For each, we’ll provide an introducti­on, describing the main features, cover the language’s pros and cons giving, and give some thought to the age range for which it’s appropriat­e.

We’ll then move on to some of the general-purpose languages that are commonly used in an education setting. Here we’ll cover much the same ground, but with less introducto­ry material

because these languages will be much better understood than the specifical­ly educationa­l offerings.

Throughout this article we consulted with Carrie Anne Philbin MBE, 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. Carrie Anne provided some useful insight into the various languages we consider here. Her opening remark is worthy of our attention. “I guess the most important informatio­n I can impart is that in education – both formal and nonformal – we do not start with a programmin­g 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 educationa­l languages before, it’s quite possible that you’ve not encountere­d blockbased languages. In passing, that term is entirely different to block-structured, the concept that’s key to structured programmin­g and inherent in most of today’s programmin­g languages. By way of contrast, a block-based language involves programmin­g by dragging blocks – which we can think of as statements – from a palette onto the scripting area, and editing by manipulati­ng the blocks in the scripting area. In other words, it needs very little in the way of free-form typing, the requiremen­t being pretty much limited to editing things like 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 which slightly reduces the possibilit­y of using a block in a nonsensica­l context.

Scratch is our first block-based language – it’s free, multi-platform and open source, and it was developed by MIT’S Media Lab. Scratch is the block-based language primarily recommende­d by Carrie Anne Philbin, who suggested that it’s suitable until a transition to text-based languages, typically at age 11 to 13. She told us that, in the UK, concepts like sequence, selection and repetition are taught throughout the curriculum from the age of five, although for ages five to seven, the closely related Scratch Jr. should be the language of choice. Scratch is used in formal education as part of the UK’S national curriculum, like the teach computing curriculum in England, as well as in non-formal education in homes, and in after school clubs like Code Club and Coderdojo.

You can install Scratch locally or run it online at https://scratch.mit.edu. However, Scratch Jr. is only available as an app, intended for use on tablets, and is available for ipads and Android devices.

Blockly

Developed and hosted by Google, Blockly is our second block-based language and, although it’s sometimes thought of as such, it appears that its developers didn’t design it exclusivel­y for educationa­l use. This being the case, it’s probably not too surprising that it’s less basic than Scratch and, therefore, suitable for creating real applicatio­ns. Indeed, while we trust that the statement doesn’t consider educationa­l resources as toys, Google specifical­ly say “it’s not a toy” and you can use it to “implement complex programmin­g tasks”. Despite being developed by Google, Blockly is an open source project.

According to Carrie Anne, Scratch dominates the block-based sector, so Blockly is used when it has to be, for example when programmin­g in App Inventor (https://appinvento­r.mit.edu), or with the micro:bit

 ??  ??
 ??  ??
 ??  ?? Its block-based approach might be unfamiliar to experience­d programmer­s, but Scratch is highly recommende­d as a first language.
Its block-based approach might be unfamiliar to experience­d programmer­s, but Scratch is highly recommende­d as a first language.
 ??  ??

Newspapers in English

Newspapers from Australia