Although computer programming was once seen as a skill reserved for geeks and computer nerds, it’s now regarded as an essential ability for 21st century learners and is becoming a key component of many curriculums, even in primary schools. So what’s the benefit of teaching kids as young as five years old how to code?
For starters, basic coding courses in schools provide students with the know-how to develop their own websites, apps and computer software.
LinkedIn data shows that skills like mobile development and user interface design will be in high demand in the coming years, and a 2016 Gallup report found that 40% of American schools now offer coding classes, compared to just 25% a few years ago.
In Australia, the government has been investing in STEM initiatives in recent years, and coding classes will soon be mandatory in Queensland schools. Meanwhile in the UK, kids aged five and over have been learning the fundamentals of coding since 2014.
But coding education can also be beneficial for students who aren’t necessarily interested in pursuing computer programming, but would like to gain a better understanding of technology and how it’s shaping our world.
At its most basic, learning how to code is learning to tell machines what to do. But this requires the mastery of a problem-solving skill known as computational thinking, which involves breaking larger tasks into a logical sequence of smaller steps, diagnosing errors and coming up with new approaches when necessary.
So what exactly does coding look like in schools and learning institutions throughout the world and why does it matter? We talked to a few teachers and EdTech experts about some of the ways coding is being implemented in education.
Coding bootcamps have gained popularity over the past four or five years as a way to help students from all backgrounds learn coding and pursue careers in software development. Most programs last about three months on average and can be full-time, part-time, online or in-person.
Jonathan Lau is a coding bootcamp veteran and owner of an online resource for prospective coding students called SwitchUp. He points out that while most bootcamps don’t promise to transform beginners into experts in a matter of weeks, they can provide a foundation and ensure students have the tools they need to build on their programming knowledge once the course ends.
“Another important goal for a bootcamp is to help students to secure entry-level roles in the tech industry,” says Lau. “To achieve this, bootcamps aim to teach current and in-demand curriculum, and also to establish relationships with local employers.”
He adds that coding bootcamps can be an especially valuable option for people who are switching to the tech industry from a different career, as they are often less expensive and require less time than a Master’s program.
Additionally, coding bootcamps are helping to diversify the tech industry, and research from SwitchUp shows that on average 43% of bootcamp grads are women, compared with just 12% of computer science majors.
Coding to Transition Into the Workforce
PK Agarwal, regional dean and CEO of Northeastern University-Silicon Valley, says teaching students how to code is also a great way to prepare them for a strong transition into the workforce.
“International Data Corporation (IDC) predicts a need for 181,000 people with deep analytical skills by 2018,” says Agarwal.
“To put this into context, we have a current shortage of computer science professionals, engineering professionals, product developers, software professionals and system integrators. What we’re seeing now is a focus and enthusiasm from employers in “just-in-time” education that partners on-the-job training with classroom learning, such as coding.
“The influx of coding in the classroom preps students for real-life situations and sets them up for a strong transition into the workforce.”
Coding For Cyber Security
Director of Academic Affairs at Carnegie Mellon University’s Information Networking Institute (INI) Martin Carlisle, says one of the biggest issues we’re facing is the critical national shortage of qualified cyber security workers who can fill the jobs available in both the public and private sectors.
So how does coding tie in with cyber security and why is this important right now?
“The demand for cyber security professionals is far greater than the supply and shows no signs of abating,” says Carlisle. “With this in mind, it’s a great time to explore a career in cyber security and it’s never too early or late to start.”
He explains that an important part of being a cyber security professional is developing an adversarial mindset, which involves thinking about using protocols and tools in ways that weren’t considered by the designers.
“Since existing tools aren’t likely to do this, it’s often necessary to be able to write code to test what kind of responses you get to things like a replay of a previous message or sending messages in the wrong order or format.”
He says one of the things he likes about the Carnegie Mellon computer science curriculum is that it very early on teaches students about writing adversarial code and trying to prove the correctness of code. Both of these skills will be essential in order to deploy secure systems in the future.
Coding to Build Logic and Persistence
Cody Swann, CEO of software development company Gunner Technology, believes teaching kids and adults how to code is one of the best ways to teach logic and persistence, two skills he says are being lost in today’s connected society.
“Our connected society tries to push the notion that feelings are paramount, and everyone’s opinion should be respected,” says Swann. “Combine that with the powerful Internet-created echo chambers, and we have an environment where beliefs aren’t challenged anymore regardless of how nonsensical they may be.”
“The lack of persistence is easier to explain. It’s the entitlement culture. Persistence means you have to keep trying and power through failure. But many people these days do just about anything to avoid failure – even if it means not trying in the first place.”
So how can teaching coding help teach students these skills?
“Coding is emotionless. The foundation of coding is right and wrong. There is no room for beliefs,” explains Swann. “The foundation of coding is manipulating equations with free variables, which, not coincidentally, is the definition of algebraic logic.”
He says coding also requires persistence, because no matter how smart you are or how well you plan out a solution, it will almost never work the first time you try it. So coding can be a grind, and that is one of the first thing novice coders learn.
Coding For Early Literacy Development
Another reason coding is important even for younger children, according to educator and EdTech thought leader Michael Cohen, is that it supports early literacy development.
“Coding and literacy development complement each other because they are both based off of a structure of communication that shares ideas and provides an experience,” says Cohen.
He explains that the challenge with early literacy is that many of the fundamental components of writing are abstract and complex.
“Take sequence, for example. Students in the first grade struggle with beginning middle and end in a written context while they understand it clearly in a visual or kinesthetic process. When using coding as a tool to visualise the writing process, students are able to see how sequence, transition, and “bugs” affect the outcome of their writing.”
Cohen also believes that coding can be introduced to students as young as kindergarten, and that every age can extract a specific value from coding, programming and computational thinking. The main difference between younger and older students is how complex of a program they can create.
An Informal Approach to Learning How to Code
Former software engineer and co-founder of the Holberton School of Software Engineering Sylvain Kalache says coding is important because it’s all around us.
“From the smartphone in our pocket, to the smartwatch on our wrist, it’s also launching rockets in space or controlling our fridge,” says Kalache. “All industries are disrupted by software and even if not all of us will become Software Engineers, all of us will be interacting with it, so it’s important to understand the foundations of it.”
Her school’s approach to teaching coding, however, is a little different, because rather than lecture students about how to code, students learn by practicing and collaborating with their peers.
They’re given projects and instructions to get started, but never enough so that they can reach the goal. Students have to learn by reading books, searching on the Internet, chatting with peers and mentors, to learn what ever concept or tool that is needed complete the project.
So what makes this informal approach to coding so effective?
“Someone who wants to learn how to play tennis or bake bread can read all the books about it, but they won’t get good at it unless they practice. A craft can only be learned well if practiced and Software is no different,” says Kalache.
She notes that as a former Senior Software Engineer at LinkedIn, she was interviewing candidates who were just out of College, and many were very far from being ready to take on a job because while they knew the theory of things, they could not apply it.
When students learn by practicing and working with peers, they develop the set of skills that are needed in the industry. When a manager comes to the team with a set of goals to reach, it’s up to the engineers to find the best solution to the problems and to implement it, and this is exactly what happens in project-based and peer-learning based education.
Students are given challenges to solve in groups and learn from whatever source is accessible, whether it’s books, senior classmates, the Internet or documentation. The school is there to guide and support them, but they are the ones finding the answers.
This helps them develop problem-solving and critical thinking skills as they learn how to learn by themselves and how to collaborate with others.
Clearly, the benefits of learning to code extend well beyond knowing how to create an app or website, and even students who won’t go on to become programmers or developers will gain valuable 21st century skills that can be transferred to many different areas of their lives.