Here's Why Programming Skills Are Being Introduced to Young Children

By 2018-12-20 23:26:08

Keep up with the technology revolution

By Ben Hanna

It is clear to anyone who has ridden the metro through People’s Square at rush hour: computers and computer technology have become a cornerstone of modern society all over the world. The major artery of Shanghai public transportation is rife with smart phones that, by any measure, are as sophisticated and common a sight as any conventional desktop computer. An entire cabin of users engaged in their personal world of TV dramas, eBooks, or mobile games is no longer a novelty.

Meet the CPU

At the center of this information-technology revolution that is infecting so much of our daily lives is the processor, or “CPU,” a vitally important part of any computer. A CPU can be accurately described as a baby that does everything it is asked to do, perfectly. It doesn’t think for itself; instead, it follows directions exactly to the letter. A good example of this also happens to be a good example of why correct punctuation is so important. Take the example of the following pair of nearly identical sentences:

The panda eats shoots and leaves.

The panda eats, shoots and leaves.

The two are nearly identical except for the comma in the second sentence. But that one comma changes the meaning of the sentence from one describing what the panda eats (shoots and leaves) to one describing what a panda (somehow) does, e.g. it eats (it’s not clear what), then it shoots (it’s not clear what or what at) and then it leaves to go somewhere else. At least for now, most computers cannot infer from the context whether or not the hypothetical comma has been intentionally or unintentionally placed between the words “eats” and “shoots.”

For this and other reasons, programming computers is not only quite diffcult, but takes years and years of practice and study. This explains why computer programmers tend to be highly sought after in any field that requires the use of computers – which, these days, is almost every field.

The focus on STEM

To keep up with this trend, priorities in education have changed over the last 10 years from curriculums strongly focused on STEM subjects like algebra to tech subjects like software programming. Amita Patel, Integration Leader of Primary Information and Communication Technology (ICT) at Yew Chung International School of Shanghai (YCIS), states that the school has even “started to move away from the idea of ICT being a ‘separate subject,’ particularly for our older Primary students.” She argues that technology should be incorporated into every area of study, a reflection of how technology is these days incorporated into every area of life.

Daniel Horwood, ICT Head of Department at YCIS, adds that at the school, “We believe that computer education is as important as reading, writing, maths or science in a child’s learning.” Students begin with the fundamentals of programming at YCIS, but courses there eventually become much more academically focused, says Horwood:

"Our IGCSE and IB Diploma courses...include theory topics on computer and Central Processing Unit (CPU) architecture, networking, binary and hexadecimal number systems, and embedded control systems."

Every computer, from the most basic to the most advanced, requires programming to one degree or another – more depending on the complexity of the tasks the computer was designed to perform. Imagine, for example, the job a satelite is required to do while orbiting hte Earth as opposed to the job an office computer is required to do during business hours.

Wrapping your head around computer language

To make things even more complicated, there are a lot of computer language out there, and very often they excel at doing different things or function in different ways. The reason for this is that these languages have not, like most languages in the world, evolved what we might call "naturally". Instead, they've been designed around the principles of logic and mathematics. This is why the technology curriculum for junior students at Dulwich College Shanghai focuses “not on a specific programming language but more on developing logical reasoning skills,” says Dulwich teacher Alex Smith. The idea is to first develop logical and critical thinking skills before moving on to any one programming language.

The most popular computer language today is one that anyone who has used any major operating system like Windows should be familiar with: Java. As a library-based computer language, Java is more innovative than the traditional script-based languages (the original type of computer language). At its inception, Java allowed people who didn’t have the time or desire to memorize thousands of lines of code to get their hands dirty in the world of programming.

One of the reasons they were able to do this was because of Java libraries, or sets of code with a particular job. For example, one library might create the graphical frame of a menu window, and another might create the content. Putting together a number of libraries became a much simpler way to create a working program, with significantly less knowledge and experience needed. However, in the end, this innovation created more complexity rather than reducing it because programmers became free to focus on the “big picture,” leading to further innovation. Consequently, so ware itself has become far more complex, so programmers have to pull more tricks than ever with those libraries.

Horwood shares that at YCIS, “students learn programming in Python and Java.” Meanwhile, according to Mark Wilson, the ICT Curriculum Coordinator at The British International School Shanghai (BISS), Puxi, Discovery Education Espresso Coding is taught at the primary level, “where the children learn Block Coding, and later go on to look at programming (text) languages such as HTML and Python.” Wilson says:

“IGCSE Computer Science students apply their understanding to develop computer-based solutions to problems using algorithms and a high-level programming language. They also develop a range of technical skills, as well as the ability to evaluate computing solutions. It’s also stressed upon students the need to appreciate both the current and the emerging computing technologies and the benefits of their use, [as well as] the need to consider the ethical issues and potential risks when using computers.”

Getting to know binary

There are literally thousands of languages out there, but in the end they all boil down to the same thing: binary. Binary is the language that talks to the physical parts of computers and interprets the commands of the more complex languages like Java and C. It represents the “yes” and “no,” the “on” or “off” in machine language, and its name is derived from its nature: it’s comprised solely of ones and zeros. For example, 01100001 could be programmed to represent the letter “a,” 01100010 could be programmed to represent the letter “b” and so on. The sentence “The panda eats shoots and leaves,” then, would read like this:

01110100 01100001 01100101 01110011 01110011

01101000 01101110 01100001 01101000 00100000

01100101 01100100 01110100 01101111 01100001

00100000 01100001 01110011 01101111 01101110

01110000 00100000 00100000 01110100 01100100

00100000 01101100 01100101 01100001

According to Shanghai-based freelance programmer Ian Armstrong, whose career has spanned 15 years and included projects ranging from databases to web apps for the London Stock Exchange, programmers are “very much self-starters.” People who find a career in programming worthwhile tend to be adept at defining, narrowing down and solving problems on their own. This kind of detective work includes thousands of moving parts that need to be kept track of, and consequently, a programmer needs to hold many things in their mind simultaneously.

For young programmers-in-training, Armstrong stresses that “reading blogs and books, taking courses – these are all helpful, but in the end it’s doing. Create a pet project; it doesn’t matter how useful it is,” he says. The classic example is an elevator simulator; the programmer needs to gure out how the elevator’s buttons, weights and cables all function together – how and when the elevator stops. According to Armstrong, programmers constantly ask themselves, “What’s the problem domain here, and how do I go about solving it in the most efficient way?” In the end, programming is about managing complexity.

With such a heavy prescription for the aspiring programmer, starting early like the students at Shanghai’s international schools is ideal. After all, learning to navigate comfortably through abstraction takes years of experience and training, particularly in a field that will only become more complex as time goes on.