Overview of Computational Thinking

As we go through this project we are going to be thinking like software engineers the whole way. A way in which software engineers solve problems is described below:

Computational Thinking

A way to solve problems so that it's easy for us to program (or "teach") a computer how to solve it as well.


Decomposition

Take a big, difficult problem and break it down into smaller, easier pieces.


Patterns

Look for things that repeat in our problem. Do we notice something that happens over and over that we could put into a loop?


Abstraction

Take our problem and remove the specific details to make our solution more general.

For example: a football, basketball, softball, baseball, tennis ball, etc. could all be classified as a more general term 'ball.


Algorithm

A step-by-step sequence to solve a problem or accomplish a task.

For example:

Algorithm for brushing your teeth:

1) Grab toothbrush

2) Grab toothpaste and apply to brush

3) Run water over toothbrush

4) Brush teeth, spit, rinse, repeat for 2 minutes

If any one of these steps is out of order or missing, we haven't brushed our teeth properly.