When you start to learn a programming language like Python, whilst you are getting started learning the Python syntax, what you are really doing is learning computational thinking.
Learning how to think and process problems like a computer.
For long term software developers learning a new language is simply learning the new syntax but at the heart of all computer coding is tackling the problem with computational thinking.
The subject is much deeper than this simple explanation and Jeanette Wing does a much better job of explaining it below.
Jeanette Wing Video
Jeanette Wing delivers a very comprehensive lecture on the subject above. She starts speaking at 12 minutes in.
Computational thinking was a term that became popular in 2006 with computer scientist Jeannette Wing’s article in Communications of the ACM, in which she called computational thinking a fundamental skill for all.
“Computational thinking is a fundamental skill for everyone, not just for computer scientists. To reading, writing, and arithmetic, we should add computational thinking to every child’s analytical ability.”
Four cornerstones of computational thinking
There are four main elements to computational thinking:
- Decomposition – breaking down a complex problem into smaller manageable parts.
- Pattern recognition – looking for patterns or similarities in the problem.
- Abstraction – focus on the important points only.
- Algorithms – designing simple steps to solving the problem.
Computational Thinking Techniques
This does not always have to relate to computer science however. Students were given the task of designing an earthquake proof bridge. On the face of it this seems like a complex problem. If you use the four cornerstones of computational thinking you can break the problem down into sections.
Break the problem into smaller parts, look for patterns, focus on the important parts only and then design your simple steps to solve the problem.
Whilst this subject is a very big one, the main thoughts on this subject are that you need to be teaching computational thinking to children at an early age. The skill of problem solving is much more important that coding skills.
This does not mean you do not learn to need to code, this is an essential skill, what we are saying is that more important is changing the way you solve problems..
Code.org has vowed that every child should have access to a computer science course.
Employers will not be looking for coders, but looking for computational thinkers. People who can take complex problems and break them down into smaller manageable logical steps. The final solution to the problem is to get it into code.
If you don’t have access to a computer and want to learn computer science, check out https://csunplugged.org/en/
Frequently asked questions
What is the difference between programming and computational thinking?
Programming is the skill needed to turn a problem into computer code e.g. Pyhton or Java. Computational thinking is the process that you go through to analyse the problem break it down into smaller steps, writing the programme is the last step.