Starting Unit 3, we focused on decomposition. Not in theory. Not in abstract computer science language. In real life.
The task I chose to decompose was simple: packing my dog’s dinner.

At first, it feels like one task. Feed the dog. Done.
But when I slowed down and listed the subtasks, it quickly became more complex:
- Scoop regular food
- Scoop venison bits
- Scoop frozen food
- Pour warm water
- Spray joint health
What initially feels automatic actually contains multiple smaller components. That is decomposition in its purest form.
Thinking About Dependencies
The next step was to examine dependencies. What can happen at the same time? What must happen in sequence?
In my case, the three scooping tasks all feed into pouring warm water. The water cannot be poured until the food is in the bowl. The joint health spray comes last.
Here is how I mapped it visually:

This step made something clear: decomposition is not just listing steps. It is understanding relationships between steps. Some actions are parallel. Others are dependent. The order matters.
From Decomposition to Algorithms
Finally, I zoomed in on just one subtask: scooping regular food.
Here is the algorithm:
- Grab the dog’s food bowl.
- Walk to the pantry with the bowl.
- Open the pantry.
- Open the dog food bag.
- Use the cup inside to scoop two scoops of food into the bowl.
- Reseal the food bag.
When I look at this written out, I immediately see the connection between decomposition and algorithmic thinking. Decomposition breaks a large problem into parts. Algorithms clarify exactly how to complete each part.
One without the other is incomplete.
This unit reinforced something important for me as an educator. Students often struggle not because they cannot do the task, but because the task feels too big. Teaching them to decompose and then write clear, precise steps gives them a structure for problem solving.
And apparently, it also ensures my dog gets dinner correctly!
Leave a comment