Estonia does not have many natural minerals or a significant population like many wealthy countries, but it has the most unicorns per capita globally. As most unicorns use technology to offer solutions for solving problems, we need more IT practitioners who can use computation power to solve various algorithmic issues.
“Thinking computationally is not anymore a skill only for computer scientists, but is emerging to be a universal skill for everyone like reading, writing, and arithmetic,” says Tauno Palts. According to his thesis „A Model for Assessing Computational Thinking Skills, “ we need people who are not only users but also creators of the technology. Computational thinking skills can be developed through coding activities like creating games or applications, using robotics, tinkering, or unplugged activities to solve algorithmic problems.
What are the primary computational thinking skills that we should teach to students?
As computational thinking is a thinking process involved in solving algorithmic problems by using computation power, a question arises: what are the primary computational thinking skills that we should teach to the students at the basic and secondary school level?
Tauno Palts’ PhD thesis suggests nine computational thinking skills for developing already at the basic school level. Solving an algorithmic problem divides the skills into three problem-solving stages: defining the problem, solving the problem, and analyzing the solution.
Defining the problem is the first stage of solving the algorithmic problem. As most of the tasks at school already describe the problem, this stage is often neglected but can not be overlooked. This stage uses skills of defining the problem to be solved, abstraction to extract relevant information to solve the problem, reformulate the problem to be solved with the help of computation, and decomposing the problem down into manageable units.
Solving the problem includes two skills. An algorithmic thinking skill that means finding the step-by-step solution for the problem and pattern recognition skills that involve recognizing and applying familiar algorithmic patterns and logic to solve the problem.
Analyzing the solution includes generalization, testing and evaluation. Generalization skill means transferring this problem-solving process to a broader range of problems. Testing and evaluation have an essential role in analyzing the processes and efficiency and resource utilization.
Would you like to try solving computational thinking tasks?
To get a better idea of unplugged computational thinking tasks, here are two algorithmic thinking and pattern recognition tasks from Kobras (Bebras) international challenge on informatics that is suggested for assessing computational thinking skills.