The Importance of Coding

Tuesday, 30/06/2015 Posted by: Annabel Irvin

By Leigh Ferguson
Leader of Learning – Technologies

“In fifteen years we’ll be teaching programming just like reading and writing… and wondering why we didn’t do it sooner.” Mark Zuckerberg

Mark Zuckerberg’s prediction is supported by a quote by Bill Shorten in the Australian dated 15 May 2015 ‘Every young Australian would have the chance to learn computer coding at primary and high school if Labor won the next election’. The Bureau of Labor Statistics in the U.S. estimates that by 2020, the U.S. will create 1.4 million jobs in computer science related fields. If current trends continue, U.S. citizens with the necessary skills and experience will fill only 30% of these jobs. To learn technology within primary or secondary schools is a chance to invest in a student’s future within our contemporary world.

What is computer programming or coding?
When you want to drive to the shops, you know what is required that is, a driver’s license, petrol or diesel in the car, a registered car to drive etc. We recognise what is required and are able to make decisions if a required element is missing. Computers are unable to reason what is required to drive a car. One thing that students learn quickly is that a computer does exactly what they tell it to do, which may not necessarily be what they wanted. Programming will help students learn the importance of clarity of expression. It requires a program which includes instructions or algorithms. An algorithm for a task is an explicit list of instructions, the execution of which completes the task in a finite time.

The instructions may be provided in words (natural language), diagrams (flow charts), pseudo-code, Nassi-Shneiderman diagrams as long as they make sense to the person who is to perform the algorithm. Even very complicated decision procedures can be broken down into a pattern of adequately simple steps. Pseudo-code makes special use of words like ‘repeat’, ‘if’ and ‘while’ to indicate the flow of control. You can write pseudo-code without even knowing what programming language you will use for the final implementation.
In some cases, if an algorithmic solution to a problem is unavailable or simply impractical, a heuristic approach to the problem can be used. Heuristics involves the use of various rules of thumbs or strategies. The year 10 Interactive Multimedia students used heuristics to develop their expert system projects this term.

It has been proven that three basic control constructs are sufficient to implement any “proper” algorithm. These are:
1. SEQUENCE which is a linear progression where one task is performed sequentially after another.
2. ITERATION or repetition which can consists of a repeat loop of a list of instructions until a condition; or a while is a loop with a simple conditional test at its beginning then do; or for is a counting loop.
3. SELECTION involves an if-then-else (selection) in which a choice is made between two alternative courses of action such as if you’re tired then go to bed else read a book; or a case which is a multi-way branch (decision).

An algorithm expressed in a language intelligible to the computer is called a computer program. Computer programming involves developing lists of lines of code. These instructions manipulate different types of objects, e.g., numbers, words, images, sounds, etc. Creating a computer program can be similar to composing music or designing a house. It is very rewarding when the program compiles and runs as expected.

Why learn code?
Careful attention to detail is often required to specify algorithms correctly. This is particularly true when formulating algorithms for computers because they are so “literally minded” and lacking in initiative. Problem solving is fundamental to education because educators are interested in improving students’ ability to solve problems. If we agree to read “problem” in a broad sense then problem solving may be regarded as one of the most common and important human activities.

Throughout our lifetime, we are continually identifying problems and attempting to solve them. An important reason to consider learning about how to program a computer is that the concepts underlying this will be valuable to you, regardless of whether or not you go on to make a career out of it.

Technology offers an approach to problem solving that differs from the typical routes that are learnt in English and Maths based subjects. However, all these aspects of problem solving are complimented and corroborated by each other to produce a well-rounded mind. In a malleable and progressively computer based world, students will learn skills to help with, not only, proficiency but also excellence in their knowledge and skills.

Problem solving can be frustrating but inevitably rewarding, progressive and essential. Most problems can be solved easily by approaching them systematically. Underpinning all Technologies subjects are the design, development and evaluation of (DDE) problem solving cycle (DDE cycle) which is based on the ADDIE model (Danks, 2011).

Students win award
There is a hurdle between learning a language for the first time and proficiency. Jumping that hurdle is the key to being a happy coder. As a novice coder, you can work with reference books, online references, and online forums. They are also constantly working on coding projects to keep their skills sharp. With two or three possible languages in mind, research what kind of support is available online. Research how the language is used in the real world. If you cannot find a programmer to assist you then look into local Meet-up groups and check them out. While coding is a solitary activity, meet-ups and having someone to answer questions are very important.

Students also need to find projects and other ways to keep going as coders. This could include participating in open source projects or working with friends and other students. Coder Dojo and similar groups also help bridge the gap between simply learning a language and using the language on a regular basis. I encourage students to enter in different competitions such as the Bebras Challenge; F1 in schools etc. There are a number of on-line competitions which have great prizes.

Two year 12 Information Technology Systems students, Jess Nicol and Kate Edwards won an app competition run by CoderDojo Blackbelt and the Brisbane City Council. Their app was called Somewhere in Brisbane and they each won $250 JB Hi Fi Gift Vouchers; as well as being in the media and meeting the Brisbane Lord Mayor, Mr Graham Quirk. Their roller coaster ride is still going as they have been asked to provide input to the new Brisbane City Council on-line youth web experience.

Coding meets many of the 21st century learning dimensions. Students who code have the ability to transfer the knowledge from on particular solution to another, which students who don’t code often lack.

Coding covered in each Year Level at Stuartholme

For Digital Technologies this term, year 7 & 8 students have been working with Windows Logo completing spiral designs, working with colour, learning procedures to draw a square, circle etc and how the repeat and repcount is used.
Students studying Interactive Multimedia in Year 9 and 10 or Information Technology Systems (ITS) in year 11 and 12, all undertake a coding unit of course work every year including JavaScript, python, expert system project, robotics and more. Year 12 ITS students complete a major project incorporating html and JavaScript in term three.

There has been a world wide push to introduce coding within schools supported by the many on-line coding websites such as www.codeavengers.com; www.codecademy.com/; https://www.codeschool.com/; https://code.org/.