Decomposition is a way of thinking about problems, algorithms, artefacts, processes and systems in terms of their parts. The separate parts can then be understood, solved, developed and evaluated separately. This makes complex problems easier to solve and large systems easier to design.
For example, if we are developing a game, different people can design and create the different levels independently provided key aspects are agreed in advance. Through decomposition of the original task each part can be developed and integrated later in the process. A simple arcade level might also be decomposed into several parts, such as the life-like motion of a character, scrolling the background and setting the rules about how characters interact.
The following links to cs4fn articles that illustrate decomposition.
- A perfect, working mind is locked inside a useless body: the sufferer can sense everything around but is unable to communicate with anyone.
- Looking at a picture from your digital camera or a digital movie, it’s all just 11001100011– hardly inspiring, and I don’t really see what it means!
- It turns out though that some missions really are impossible for computers and even Tom Cruise wouldn’t be able to make a difference even if he was given unlimited time.
- How might you go about designing computer judges?
- The code hidden in knitting, and what might happen when computers learn to read it.
- If humans are ever to get to like and live with robots we need to understand each other.
How to get a head in robotics? [cs4fn-pdf]
The emotion machine [cs4fn-pdf] - One of the nastiest errors in computer software can come from something called a stack overflow, the computer pops or pushes from its current position, where the stack pointer is pointing, and shoots off the end of the stack, like a magician counting past 52 cards.
Johnny Ball’s ‘Two Wrongs Do Make a Right’ Trick [cs4fn-link]
- Data compression helps get information small enough to be transmitted quickly, so we can download texts movies and music.
- Computers are much better off letting our brains do the tricky thinking.
- Humans are great at multitasking so as a cook becomes more confident they start to overlap some of the tasks, checking what to do next while stirring the pot perhaps, or leaving a sauce to simmer while chopping the herbs. Computers do similar things.
Ratatouille: Rats doing massively parallel computing [cs4fn-link]
- Computer science isn’t just about using language, sometimes it’s about losing it. Sometimes people want to send messages so secret that no one even knows the messages exist.
- You are revamping a hotel and are introducing new card locks rather than ones with keys. Your first thought is to connect all the doors to a computer network. Would that work?
- Technology changes society. Whether fire, wheels, guns or skyscrapers, all have made a massive difference to the way we work, live and play. Computer technology is accelerating the change and raising whole new issues society has to tackle.
- Social scientists have found that people don’t always help others, even if they realise someone’s in trouble. The only way to figure out why this happens, and what makes a difference whether bystanders help someone, is to study situations like it. But how? Scientists can’t just go around beating people up to see how others will react.
More of our resources, including linked computing ‘story’ booklets can be found in our resources section. You may also want to look at cs4fn’s teacher resources or browse the latest cs4fn magazine.
It is suggested that:
- Primary teachers focus on the badge statements from the Pink to Purple row.
- Secondary teachers focus on the badge statements from the Purple to Black row.
- The white row overlaps with the KS4 qualification specifications.