Computational thinking is a nebulous concept that we can summarise as the ability to solve problems through the application of algorithms. The Raspberry Pi foundation consider computational thinking to include logical thinking, decomposition, abstraction, pattern recognition, algorithm design, evaluation and organising data. For the purposes of this article I will go with this interpretation. With the aid of concrete examples, I will unpick each of these components in turn. I will start with logical thinking because logic is integral to the other aspects of computational thinking. We are familiar with this way of thinking because m any puzzles and games of strategy such as chess, and solving Rubik's cube require us to think logically. To solve these types of problems we need to be able to think clearly and have sound reasoning. Consider the following two statements: All computer science teachers eat cake No cake eaters cycle bicycles...