A magazine where the digital world meets the real world.
On the web
- Browse by date
- Browse by topic
- Enter the maze
- Get our RSS feed
- Follow us on Twitter
- Resources for teachers
What is cs4fn?
- About us
- Contact us
- Privacy and cookies
- Copyright and contributions
- Links to other fun sites
- Complete our questionnaire and get a free magic download
What is Computational Thinking? Efficiency
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!
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....