Debate rages right now over whether we should teach our kids how to code. It's noble idea, one that acknowledges just how important computers are in today's society. However, good reasons exist to make us think it won't be a very effective approach.
For over three decades now, we've tried different ways to teach computing skills to children. Instructing them in how to encode algorithms was already tried as early as the 1980s, but it didn't seem to instil skills that most children could actually apply in their lives and careers.
What's more, I argue that teaching coding is an attempt to get the kids to walk before they can run. After all, is teaching science best done by jumping straight into experimentation, or shouldn't they also learn the underlying principles like critical thinking and logical reasoning. Similarly, coding is merely an application of computational ideas, which the kids need to understand before getting to the programming.
A new approach to teaching computing skills in schools is emerging: computational thinking. It takes just a handful of core aspects from computer science and uses them teach how anyone can abstract problems and formulate solutions -- specifically, solutions which can be automated by a computer.
The aim of teaching computational thinking is to make it a problem-solving skill, transferable across a diverse number of domains like natural sciences, law, engineering, linguistics, medicine and social sciences. What's more, it aims to prepare our children for life in a society where seemingly everything in their lives is going to be run by computers and where their careers are likely to involve coming up with computer-based solutions.
In this session, I will share what I learned about computational thinking when I wrote a book on it for the British Computer Society. I will argue why we ought to teach computational thinking, not only as a problem-solving skill, but as an essential way to understand life in the 21st century.