The fuss about coding has grown exponentially in the past year. Having watched this space for years, I’ve certainly noticed the increased interest to expose kids to coding. Industry has been pouring resources into it, with huge initiatives and funding coming from Google, Microsoft and more besides. There is a national curriculum for it and most Australian states have adopted it….not in NSW though, the state where I teach. Media, print and online, regularly features this, too; often, about having a shortage in IT skills. I can also see the increase in teaching coding in many schools.
Hey, one could almost think teaching and learning to code is trendy.
But, there is always the niggling question, “Is it for everyone?”
I wonder now whether everything in various school subject curricula was subjected to such scrutiny. And if not, why not?
Is it really for everyone?
Firstly, I’d like to make a distinction between computational thinking (CT) and coding. Google’s resources on CT are quite extensive and accessible. As a problem-solving process, it is easy to see why it could be adapted across all disciplines including humanities. Some could even argue it looks like critical thinking. Can you imagine asking “should we teach critical thinking in school?”
Further, algorithms – or step by step instructions – are present in every subject. Google is right to say it is relevant across all disciplines. Quite often, however, algorithms are taught as given, e.g. using formula. And why not? It is an efficient way of disseminating human knowledge developed over time. Standing on the shoulders of giants, so to speak.
Algorithms in the CT sense is less prescriptive. Creative thinking could be incorporated as well. Can you imagine asking “should we teach creative thinking in school?”
I heard Dr James Curran refer to CT as a process for answering “What can we automate?” I think this really promotes a mindset leaning towards efficiency as well as innovation, a premise that things could be better and we can use digital technologies to actually make it happen….and scale it, relatively quickly and cheaply. That’s incredibly empowering! But, it’s the sort of thing that is best experienced vs merely talked about. This echoes elements of design thinking. Can you imagine asking “should we teach design thinking in school?”
Big jump there, i.e. I joined CT with coding – using digital technologies, software programming in particular, to create solutions.; automation via giving computers detailed instruction.
Algorithms can be viewed as just an idea. It can be represented in many ways. As a teacher, making thinking visible – i.e. ascertain students are learning – is a challenge. In Information Software & Technologies (IST), one of the subjects I teach, algorithms can be presented as pseudocode and flowcharts.
What of coding then?
Coding can actually help refine algorithms. Sometimes this is done via affordances of programming languages such as more sophisticated built-in functions and data structures. Often, the refinements are done as one delves deeper into solving the problem and one thinks of more possibilities or cases or scenarios.
In a nutshell, CT promotes development of algorithms and with coding, it is made visible and refined.
Is it for everyone?
I am biased and I think everyone should experience what CT and coding are like. In the same way that I think everyone should experience what creative thinking, critical thinking, design thinking – and way many more ways of thinking like systems thinking, mathematical thinking, etc (see what it’s like in schools now?). For me, it’s beyond being trendy or shortages in skills or future job opportunities or anything like that or being great at it or even being interested in it. How do you know unless you try?
If you’re a teacher, student, parent or really anyone just wondering what the fuss is about, it’s best to experience it. Have a go. There are lots of resources out there. One of my favourites is the NCSS Challenge – and we’re a week in.
Here are some for starters:
- NCSS Challenge
- Khan Academy Computer Programming
- SQLzoo - for databases…something not taught a lot in schools and when you think how important data is…
Feel free to add your thoughts and resources in the comments below. Thanks.