Coding has become one of the hottest things to teach and teachers all over the world are feeling the pressure to start integrating it into their classrooms. With the explosion of technology comes a new way of working and thinking. Students and teachers are starting to align with the Silicon Valley vision, a world here all kids know how to code. Employers in tune with the changing pace of the labour market (growing much faster than the market average) are fast realizing that future students need to grasp more complex technological challenges and they need specialised skills and mindsets to do that. The value of being able to apply computational thinking (CT) cannot be understated in this future.
We can define CT based on Google’s training program on CT:
Computational Thinking (CT) is a problem solving process that includes a number of characteristics and dispositions… [it includes]
Decomposition: Breaking down data, processes, or problems into smaller, manageable parts
Pattern Recognition: Observing patterns, trends, and regularities in data
Abstraction: Identifying the general principles that generate these patterns
Algorithm Design: Developing the step by step instructions for solving this and similar problems
Coding is a valuable way to learn how to apply computational thinking. With every job now becoming a technology job, coding and computational thinking as skillsets have become important. Soon we will see a world where, without these skills, it will be hard to function in a lot of industries.
Why Learn to Code?
With a new curriculum and the push to get kids to code, I have decided to learn how to code myself. But why even learn?
Coding can present new ways to teach and to potentially improve student outcomes. If we expect students in all year levels to apply this type of thinking, we should also be willing to take up the challenge. By learning how to code, we can understand what our students are expected to know. All teachers should have a functional knowledge of up to year 10 in all subjects. This is important. We expect that our students end up with functional knowledge in these different domains and we should also have functional knowledge in all these domains (or at least the willingness to learn it). It allows you to be well rounded.
It is also worthwhile to also model CT for young people and where they may struggle. By applying strategies to break apart problems, or to define algorithms to solve questions, we can model these strategies for our students. Going on this learning journey allows you to find areas where students may find difficult and thus you can warn them of these pitfalls. Spending long nights trying to figure out why or why not something you have created works or doesn't work is a part of learning how to code. The struggle allows you to better learn and instruct students on what it will be like to learn and apply computational thinking. In a Mathematics classroom, you may remind students to ‘carry the one’ or to ‘remember BODMAS’. In a classroom that blends CT, statements could be ‘break down the question into parts’ or ‘remember to look for patterns’.
Learning how to code also allows you to understand the outcomes written in the curriculum a lot better. This understanding will allow you to look for unique and forward-thinking opportunities to bring cross curriculum content into your classroom. Imagine a Mathematics classroom where students solve area and perimeter problems by coding it in Python. By being able to code and instruct the computer program, they show and apply their full understanding of the concept. This is not just limited to coding but to the overall mindset of CT. Students who can properly write out a recipe in a Food class are applying CT by thinking procedurally.
Teachers that can code and apply CT are also primed to help education evolve to a new labour market. Coding educators are a small percentage of the entire teacher pool. This means that knowing how to work with computers at this level helps you can build out learning programs based on this expertise. It also allows you to challenge and reflect on the practices you are currently applying, a valuable tool.
With more coders in education comes better education technology. With teachers that have this expertise in the field, new technology will have pedagogy at its center. It also allows us to consult and collaborate with companies making the technology today. It allows us to speak their language, a core part of collaboration and communication.
Overall learning how to code may be a daunting task for some. There are alternative ways to approach it. You do not have to learn how to purely code but can use things like Scratch to drag and drop code and run a program. It just allows you to expand your repertoire and better connect the dots around 21st century learning. Besides, lifelong learning is the goal anyways.