# Computational Thinking

# 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.

- 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.
- Hide your creation and swap with the other teams.
- The other team must replicate the aeroplane
- compare, what have you learnt? what went wrong?
- Lets fly some planes!

## MENACE

How can you build an AI using matchboxes?

## References

https://www.bbc.co.uk/bitesize/guides/zp92mp3/revision/1 https://odsc.medium.com/how-300-matchboxes-learned-to-play-tic-tac-toe-using-menace-35e0e4c29fc https://www.mscroggs.co.uk/blog/19