Enter the maze

What is Computational Thinking? Efficiency

A chess playing robot

There are several, sometimes contradictory, meanings to the word "efficient". To some being efficient means doing things as cheaply as possible. That seems to be a typically English way of thinking these days: cheap is all that matters even if the quality is low as a result! To others it means doing a task well and with a minimum of fuss. That makes me think of the stereotype of German Industry: good quality, done rigorously...

Computer Scientists are very precise in the way they treat the idea of efficiency and they have developed a general way of talking about it. It's basically just about minimizing how much of some resource you use to complete a task. The resources to minimize vary but the most important one is often 'time'. What matters is usually finding ways that guarantee you get a task done in as few steps as possible.

A lot of puzzles have an element of this kind of efficiency. When I was a kid I spent a lot of time perfecting my skill at solving a Rubik's Cube. I wanted to be able to consistently solve it in under a minute. One way to do that was to be able to spin it fast and to think fast. That made only a small amount of difference though. What really mattered was that I came up with a way that took as few steps as possible to get to the solution however the cube started. Without realising it I was developing my computational thinking skills!

Here is a simpler puzzle to try that is all about efficiency

To get the idea of how a computer scientist might use this in a real problem situation, even one that doesn't involve computers, suppose you were trying to help someone with locked-in syndrome....