# What is Computational Thinking?

The idea of computational thinking is allow us to look at problems and determine the best way for a computer to solve this (and related problems). This is basically a way of re-framing the problem / domain so it can be computationally processed.

We need to remember that computers are machines, they have limited capacity and need a recipe (program) to do anything.

This recipe is usually split into simple steps, with some control of flow and repetition. In terms of programming we call these.

• sequence
• selection
• iteration

Turing determined all tasks could be completed using only 6 instructions, however with modern programming languages we can make this simpler

## The process

Typically we apply the following techniques when using computational thinking

• decomposition breaking down a complex problem or system into smaller, more manageable parts.

• pattern recognition looking for similarities among and within problems

• abstraction focusing on the important information only, ignoring irrelevant detail

• algorithms developing a step-by-step solution to the problem, or the rules to follow to solve the problem

# Examples and Exercises

The following examples will be used in class for discussion of computational thinking and software design

## Images

The following image has been generated by an algorithm ( Stable diffusion) using the phrase “programmer using machine learning to code an interesting image for a lecture on python and computational thinking " but let’s not worry about that let’s discuss what is an image and how can we represent one in a computer?

## The document challenge

This requires you to be in groups of two or three.

1. using the paper supplied document the steps to make a simple paper aeroplane you must write the steps without diagrams, but actually make the plane.
2. Hide your creation and swap with the other teams.
3. The other team must replicate the aeroplane
4. compare, what have you learnt? what went wrong?
5. Lets fly some planes!

## MENACE

How can you build an AI using matchboxes?