Computational thinking

By Martin McBride, 2016-12-14
Tags: decomposition pattern recognition abstraction algorithm
Categories: algorithms computational thinking

When we try to design a computer program to perform a task, or solve a particular problem, it is often useful to think about the possible solutions in particular ways. For example we might try to:

  • analyse and organize any information we have about the problem.
  • break the problem down into a set of smaller problems which are easier to solve - a process known as decomposition.
  • look for similar problems which have already been solved, which might give you an idea how to solve the current problem - known as pattern recognition.
  • determine the important features which define the problem, and avoid getting distracted by irrelevant details - a process known as generalisation or abstraction.
  • consider how programming techniques such as iteration, selection (if/else operations) and logic might be used.
  • specify the solution as an algorithm, an ordered sequence of steps.

The four cornerstones of computational thinking are decomposition, pattern recognition, abstraction, and algorithms. These techniques are not just used in computer science, they can be used to solve all sorts of other problems too!

See also

Sign up to the Creative Coding Newletter

Join my newsletter to receive occasional emails when new content is added, using the form below:

Popular tags

555 timer abstract data type abstraction addition algorithm and gate array ascii ascii85 base32 base64 battery binary binary encoding binary search bit block cipher block padding byte canvas colour coming soon computer music condition cryptographic attacks cryptography decomposition decryption deduplication dictionary attack encryption file server flash memory hard drive hashing hexadecimal hmac html image insertion sort ip address key derivation lamp linear search list mac mac address mesh network message authentication code music nand gate network storage none nor gate not gate op-amp or gate pixel private key python quantisation queue raid ram relational operator resources rgb rom search sort sound synthesis ssd star network supercollider svg switch symmetric encryption truth table turtle graphics yenc