November 2019 − Inspiring Science
Computers can only do what we teach them – but what can we learn from them? Efficient problem solving is one example. However, “computational thinking” is a learned skill.
If a child looks at a drawing of a fire truck just once, she will immediately recognize a real fire truck on the street. Moving from the drawing, through language, to the real object, and back to language, requires enormous transformational power. In order to match a performance of such magnitude, computers must be fed vast amounts of information.
Once equipped with that information, they are capable of accomplishing remarkable feats: for the very first time, a computer software program has been victorious more times than any one of the human players during poker games with more than one opponent. All in!
In order to allow “Pluribus” to rise to this level of superiority, scientists at Carnegie Mellon University® in Pittsburgh, USA, fed it millions of poker moves. With the variant “No Limit Texas Hold’em”, the program eventually succeeded – a breakthrough that is considered a milestone in the development of artificial intelligence (AI). As such, “Pluribus” learned from humans, through algorithms, how to solve certain problems. Can it work both ways? Are humans, like computers, capable of learning a more efficient way of thinking and benefiting from it?
Step by step towards a solution
It is most likely the combination of computers and human intelligence that can contribute to the goal-oriented solution to problems. For this purpose, “computational thinking” – often described as “informatics thinking”, is the crucial tool. “It means that information is collected, sorted, ordered and compared, that patterns are generated, simplified and converted into algorithms”, explains Wolfgang Müller, Scientific Director and Head of the HITS group Scientific Databases and Visualization at the Heidelberg Institute for Theoretical Studies (HITS). It is an approach that computer scientists use to develop a problem and subsequently convert into a computer program which, step by step, leads to the solution. This way of thinking always follows the same pattern, and it can even be helpful in the resolution of everyday problems.
Finding one’s own algorithm
Müller uses the following example to clarify: at a party, bottles are arranged on a table in multiple rows. The front row, close to the table’s edge, is at risk of falling. What to do? The host has the option of moving every individual bottle back a bit. It would take less effort, however, to simply move all the bottles from the front row directly to the back. The other bottles could thus remain in place.
The effort per bottle – gripping it, moving it and setting it down – is the same for both options, whereas the second solution requires considerably less total effort. Expressed in mathematical terms: the host has developed an algorithm – an efficient way of solving a problem in multiple steps, using concrete instructions. For this reason, “algorithmic thinking” has been used as an alternative term to “computational thinking”.
It is, however, uncertain whether the host will immediately arrive at the solution of grouping the front row bottles and moving them to the back. Computational thinking must be learned – ideally in elementary school, suggests Jeanette Wing, Professor of Informatics at Columbia University in New York and an advocate of “computational thinking”. “It is a universally employable attitude and ability that everyone should learn and use, not only computer scientists”, she started early on in her article in the journal “Communications of the ACM”.
At the same time, Jeanette Wing disperses a commonly held misconception: “computational thinking” does not mean that humans should think like computers. In fact, she assesses their abilities critically. In her address on the occasion of the opening of the Heidelberg Institute for Theoretical Studies (HITS), Wing said: “Computers are expressionless and boring; humans are intelligent and innovative.”
Computational thinking in five steps
1. Decomposition: a complex task is broken down into individual components.
2. Pattern recognition: the individual components are compared and searched for possible relationships and emerging patterns.
3. Abstraction: the detected patterns are examined for general validity.
4. Generalization: the task is completed in individual steps – algorithms.
5. Evaluation: the results are reviewed with respect to scope and time expenditure.