What is decomposition in computer science?
Decomposition is the process of identifying and organising a complex system into smaller components or layers of abstraction.
What is the opposite of decomposition?
Composition is the opposite of decomposition.
Name two programming paradigms that use decomposition.
Object-oriented programming (OOP) and structured programming use decomposition.
What is the aim of using a decomposition paradigm?
The aim is to optimise some metric related to program complexity, such as modularity or maintainability.
What do most decomposition paradigms suggest about program parts?
They suggest breaking down a program into parts to minimise static dependencies between parts and maximise each part's cohesiveness.
List four popular decomposition paradigms.
Procedural, modular, abstract data type, and object-oriented paradigms.
What is functional decomposition?
Functional decomposition is a technique for describing the complexity of a function of a model, describing an overarching function model as the summation of a series of functional models of subsystems.
What is object-oriented decomposition?
Object-oriented decomposition breaks a large system down into progressively smaller classes or objects, and is often regarded as the first step in the OOP design process.
What is algorithmic decomposition?
Algorithmic decomposition breaks a process down into well-defined steps, and is used largely in structured programming.
In structured analysis, what does decomposition break down?
In structured analysis, decomposition breaks down a software system from the system context level to system functions and data entities.
What is a decomposition diagram?
A decomposition diagram shows a complex process, organization, data subject area, or other type of object broken down into lower level, more detailed components.
What can decomposition diagrams represent?
They can represent organizational structure or functional decomposition into processes.
What is pattern recognition in computational thinking?
Pattern recognition is spotting patterns and similarities that let solutions be re-used.
Why is pattern recognition useful in problem-solving?
It allows solutions to be re-used and helps in generalising a solution.
What does generalising a solution mean?
Generalising a solution means making it applicable to a wider range of similar problems.
What is the first step in solving a large problem according to computational thinking?
Breaking the large problem into smaller sub-problems (decomposition).
What is the relationship between decomposition and pattern recognition?
After decomposing a problem, pattern recognition helps identify similarities among sub-problems so solutions can be re-used.
Give an example of decomposition in everyday life.
Planning a birthday party: break it into tasks like invitations, food, decorations, and games.
Give an example of pattern recognition in programming.
Noticing that several functions in a program all validate user input, so you can write one reusable validation function.
What is modularity in program design?
Modularity is the degree to which a system's components can be separated and recombined, often achieved through decomposition.
What is maintainability in software?
Maintainability is how easily software can be modified to fix defects, improve performance, or adapt to changes.