Computational Thinking
Over the past few decades, we’ve seen the impact that computers and automation have had on all facets of life. Advances in computer processing power and Internet connectivity have changed the nature of work and the skills required for a large number of occupations. Unchecked, automation threatens to destroy many skilled, middle-income jobs and push more of the middle class into insecure, unskilled work. The winners out of these changes will be those who are able to use machines to advance and enhance their skill sets –individually and collectively.
This requires the development and use of computational thinking - a way of solving problems, designing systems, and understanding human behavior that draws on concepts fundamental to computer science. The term “computational thinking” can be thought of as shorthand for “thinking like a computer scientist.” To flourish in today's world, computational thinking must be a fundamental part of the way people think and understand the world. Computational thinking is more than being able to interact with computers in our everyday lives, it’s about having the know-how and the confidence to look beyond the applications we use to the code beneath. It’s about using technology to create from the ground up, not just consume.
Computational thinking (CT) is a problem-solving process that includes (but is not limited to) the following characteristics:
- Formulating problems in a way that enables us to use a computer and other tools to help solve them.
- Logically organising and analysing data.
- Representing data through abstractions such as models and simulations.
- Automating solutions through algorithmic thinking (a series of ordered steps).
- Identifying, analysing, and implementing possible solutions with the goal of achieving the most efficient and effective combination of steps and resources.
- Generalising and transferring this problem solving process to a wide variety of problems.
These skills are supported and enhanced by a number of dispositions or attitudes that are essential dimensions of CT. These dispositions or attitudes include:
- More of our schools’ curricula should be devoted to this kind of knowledge and skill development. It’s not just student’s technical skills that benefit from this type of learning. The spillover is that students develop better ways to approach and think about problems, which is just as valuable as the technical skills themselves.
- Confidence in dealing with complexity.
- Persistence in working with difficult problems.
- Tolerance for ambiguity.
- The ability to deal with open ended problems.
- The ability to communicate and work with others to achieve a common goal or solution.
Much of what we’ve focused on in schools in the past can be described as computer literacy – teaching pupils, over and over again, how to word-process, how to work a spreadsheet, how to make a video - how to use programmes already creaking into obsolescence. A future focused curriculum must teach children the fundamentals of computer science, information technology and digital literacy - teaching them how to code, and how to create their own programmes; not just how to work a computer, but how a computer works and how to make it work for them.
This is the essence of computational thinking, and it is something that should be included at all levels of our schooling system - not simply as an afterthought associated with the preparation of senior secondary students for the world of work. Taking this on board will require some serious thinking about the priorities we have in our schools and our curriculum, including:
- How can we incorporate computational thinking into an already crowded curriculum?
- How do we train a generation of teachers who have no background in this sort of thing?
- How will we assess this - and where does it ‘fit’ within our competency framework?