In computing, decomposition is the process of breaking down a task into smaller, more-manageable parts. It has many advantages. It helps us manage large projects and makes the process of solving a complex problem less daunting and much easier to take on.
With decomposition, a task can be tackled by several people working together as a team, each member contributing their own insights and skills to particular aspects of the project. A task can also be tackled individually.
Image created by @RobbotResources
Decomposing problems into their smaller parts is not unique to computing: it’s quite standard in engineering, in design and in project management.
Software development is a complex process, and so the ability to break down a large project into its component parts is essential: think of all the different elements that need to be combined to produce a program like PowerPoint.
The same principle is true of computer hardware: smartphones and laptop computers are each composed of many components, produced independently by separate manufacturers before being assembled into the finished product.
letters and sounds are the building blocks of syllables and words. Breaking sentences into words and words into syllables is decomposition of language. Syllables video.
I Got the Rhythm Book + Make music with playdough, Makey Makey and a laptop/chromebook.
The Red Hen Book + Put a lunch together! Talk about the different parts of the meal you want to share. For example, will you include a sandwich, soup, fruit or a specific drink?
Twinkle Twinkle Little Star
I’m a Little Teapot
Brain Breaks with GoNoodle
Organise for students to tackle a large-scale programming project such as making a computer game, through decomposition. Even for a relatively simple game the project would typically be decomposed as follows: planning, design, algorithms, coding, animation, graphics, sound, debugging and sharing. A project like this would lend itself to a collaborative team-based approach with development planned over a number of weeks.
Take the case off an old desktop computer and show the students how computers are made from systems of smaller components connected together. Depending on the components involved some of these can be disassembled further still.
Organise for students to carry out a collaborative project online, for example through developing a multi-page Google site. For example, students could take the broad topic of e-safety, decompose this into smaller parts and then work collaboratively to develop pages for their wiki, exploring each individual topic. The process of writing these pages can be further decomposed through planning, research, drafting, reviewing and publishing phases.
Introduce students to divide and conquer approaches and other applications of recursion through binary search, quicksort and experimenting with simple fractals using turtle graphics. Encourage them to look out for other occasions on which this powerful technique can be used.