Solutions that are not properly decomposed

If computational thinking techniques are applied to the problem of how to bake a cake, on decomposing the problem, it is necessary to know:

  • what kind of cake to bake
  • what ingredients are needed, how much of each ingredient, and when to add it
  • how many people the cake is for
  • how long to bake the cake for
  • what equipment is needed

A diagram of a further decomposition of ingredients would look like this:

Breaking down a list of ingredients means looking at each ingredient in turn and determining how much of it is needed, and when it should be added.

At the moment, a diagram of the further decomposition of equipment would look like this:

A solution that has not been decomposed is incomplete.

The ‘Equipment’ part is not properly broken down (or decomposed). Therefore, if the solution - or algorithm – were created from this, baking the cake would run into problems. The algorithm would say what equipment is needed, but not how to use it, so a person could end up trying to use a knife to measure out the flour and a whisk to cut a lump of butter, for example. This would be wrong and would, of course, not work.

Ideally, then, ‘Equipment’ should be decomposed further, to state which equipment is needed and which ingredients each item is used with.

Decomposing a list of equipment means determining which items to use, and which ingredients to use them with.

The problem occurred here because the problem of which equipment to use and which ingredients to use it with hadn’t been fully decomposed.