Commentary: The hidden value of learning how to code
Coding is fast gaining popularity as one of the key enrichment activities parents send their kids for. An expert from the Singapore Management University discusses the value of coding in a child’s learning journey.
SINGAPORE: In a multilingual Singapore, people see benefits in being fluent in multiple languages.
Any school-going child in Singapore would probably be well-exposed to the pressures of learning to be effectively bilingual. Chances are, they’ll be encouraged profusely by well-meaning parents to live and breathe English as well as Chinese, Malay or Tamil.
And for good reason. A language opens the door to another world, offers a lens into another culture, and allows one to express oneself so as to be understood by more people.
This pressure doesn’t let up in adulthood – where there are significant economic and professional benefits to being conversant in several languages.
In fact, multilingualism and Singaporeans’ ability to understand the region around us are arguably cornerstones of Singapore's economic success.
One language of choice is standing out, amid the focus on bilingualism and the importance of being conversant in English and mother tongue – that of programming languages, such as Java or Python.
Mastery over coding, in knowing how to harness programming languages allows one to write computer programs that give instructions to a computer.
Where Singapore’s Smart Nation future is encouraging the build-up of capabilities by leveraging technology to solve everyday problems, it seems knowing to code may help your kid achieve an edge over others when he or she enters the workforce someday.
COMPUTATION TOUCHES US ALL
Barely any discipline or any profession today remains untouched by computation. A cursory search for the query "computational" on the National Library Board catalogue throws up books covering such subjects as computational finance, computational sciences, even computational approach to painting and calligraphy.
With computers and information technology permeating every aspect of how we work and live, modern-day multilingualism may involve picking up one or a few programming languages.
Many Singaporeans are jumping on the bandwagon.
In some shopping malls, coding schools for kids can be found alongside Chinese enrichment centres.
Coding fever is at an all-time high. 19 secondary schools now teach programming at the GCE O-Level. 6 IP schools or junior colleges offer computing as an A-Level subject. Applications to IT-related degrees are rising in local universities.
Professionals and new graduates attend short-term, intensive coding boot camps, hoping to transition to the tech industry.
This greater cognizance of the importance of programming and computing bodes well for our future digital economy and will serve our Smart Nation vision well.
But what we need to keep in mind is that learning programming needs to go beyond simply understanding specific syntax and the peculiarities of a programming language.
Coding is useful, not because kids learn how to use computers, but because it helps them develop skillsets to think about the world and go about problem-solving.
HOW TO BE AN EFFECTIVE CODER
Just as knowing English grammar rules alone does not make one an eloquent speaker of English, knowing the syntax rules of how to put together a computer programme does not make one a proficient programmer.
Communicating well in a language involves a host of skills, not least of which is the empathic consideration for how the message will be processed and acted upon by the computer.
The phrase "computational thinking" has been coined by professor of computer science at Columbia University Jeanette Wing.
It encapsulates the thinking process involved in formulating a real-world problem in computational terms, and to design an algorithm – a sequence of step-by-step operations the computer can take in reaching a solution in good time.
In learning coding, kids may go away with a well-rounded education, provided they also develop a grasp of concepts that underpin computational thinking.
These include logical thinking, how to apply algorithms, abstraction and decomposition, among others.
Computational thinking helps kids develop practical skillsets in questioning the world around them and learning how to approach problems from a variety of perspectives, applying axiomatic principles.
One computational thinking principle is to design algorithms that can still be executed in reasonable time even as the problem scales up.
For instance, it is an Olympic tradition to conduct a torch relay that visits a number of localities in the host country. One may use a computer to calculate the route with the shortest distance for instance.
Yet for Tokyo 2020, the fastest supercomputer today cannot investigate every possibility to arrive at the best route to tour the 47 prefectures in Japan, even within our grandchildren's lifetime. So a solution with less complexity, with a smaller set of possible solutions, may be more practical.
Another computational thinking principle is the importance of organising one's data well to allow a problem to be solved efficiently. You can only use a hard-copy dictionary quickly if you know that the words are ordered alphabetically.
Similarly, an understanding of how data is organised stands at the heart of search engines like Google – which can search trillions of pages on the World Wide Web, and yet return the relevant links to us within a second.
Kids need to take to heart the same adage when they learn how to programme.
Once kids begin to realize that at an abstract level many problems are fundamentally similar in computational terms, they will see the applications of computational thinking at every nook and cranny.
For example, Webpages link to one another just as Twitter users follow one another. Intuitively, there is similarity between finding an authoritative web page and finding an influencer on Twitter.
For another example, finding the fastest way to send a message over the Internet is not very different from finding the fastest way to go from one's home to Lau Pa Sat for supper. An algorithm that solves one could be applied to solve the other.
The computational thinking process allows kids to gain inspiration from a variety of problems, and thus widens the applicability of programming across various disciplines.
When learning a foreign language, we learn not only new vocabulary, but more importantly a new way of thinking.
In the same way, coding can help our kids be better communicators and problem solvers, if it helps them develop these skillsets along the way.
Hady W Lauw is assistant professor of information systems at the School of Information Systems, Singapore Management University.