So what is Computational Thinking and Why is it Important?
Computational Thinking is an approach to problem-solving that involves analyzing and logically organizing data in order to create a model (flow chart or map to logically show how something works) to simplify to be understood by a computer.
This then means that a computer can be used to identify and test possible solutions which can be applied to other situations.
Solutions from this approach can then be used to automate solutions that can also be applied to other problems.
A simple Task - Noughts and Crosses?
(Assume that the Computer is "X")
Instruction 1: Place an "X" in a corner.
Instruction 2: Place an "X" in the opposite corner to move 1 if possible, otherwise place an "X" in a free corner.
Instruction 3: If there are two "X"s and a space in a line then place an "X" in that space. Otherwise if there are two Os and a space in a line then go in that space. Otherwise go in a free corner.
Instruction 4: If there are two "X"s and a space in a line then place an "X" in that space. Otherwise if there are two Os and a space in a line then place an "X" in that space. Otherwise go in a free corner.
Instruction 5: place an "X" in the free space.
That should provide a clear way for people to proceed to play the game and that is all a computer program is - a list of instructions that the computer follows.
The instructions have to be written very precisely in special languages so that the computer can follow them without understanding them, but the idea is the same.
Computers can only do the things the programmer thinks of - if things aren't as expected, it won't seem so clever.
I wrote the above rules expecting the paper to go first...what if the computer has to play second? Does it still seem so clever? That is the skill of the programmer: writing rules for every eventuality. Have a go at writing some better instructions for player 2 at Noughts and Crosses.