Problem Decomposition (OCR A Level Computer Science)
Revision Note
Written by: James Woodhouse
Reviewed by: Lucy Kirkham
Problem Decomposition
What is Decomposition?
Decomposition is breaking down a big problem into smaller problems so that they can be solved independently
Programmers use decomposition to:
Break problems down
Identify the steps, parts or processes involved in a problem
Identify reusable components
Split tasks between programmers
In the case of slow appointment booking, you could decompose the problem into issues such as server limitations during peak hours, inefficient backend algorithms, and user interface delays
Process of decomposition to break problems down
Using abstraction to design a solution
Before we start to break problems down, it is often useful to apply the rules of abstraction to the problem
Applying abstraction will remove non-essential elements and that programmers can focus on critical aspects for problem-solving
When addressing the slow booking system, a programmer could ignore elements like the system's colour scheme or graphics and focus on critical performance metrics such as server response time and database query efficiency
Decomposing slow response times problem
Big problem: Slow response times during the online appointment booking process
Decompose into sub-problems:
Server limitations causing bottlenecks during peak hours
Inefficient algorithms leading to delayed confirmation screens
Poor user interface contributing to an overall bad user experience
Prioritise sub-problems:
Address server limitations, as solving this could have a broad impact on system performance
Look into optimising algorithms to speed up the booking and confirmation process
Lastly, make user interface improvements to enhance user experience, possibly mitigating some of the frustration caused by slow response times
Worked Example
A popular online retail platform has recently faced significant problems with its recommendation system. Customers complain that the recommendations are not relevant, and this is affecting sales figures.
Analyse the problems facing the recommendation system of the online retail platform. Decompose the problem into smaller components and discuss possible software solutions. What are the limitations of relying solely on software to improve the recommendation system?
How to answer this question:
Introduction: Introduce the scenario and pinpoint the main problem: the ineffective recommendation system affecting sales
Decomposition: Break down the issue into sub-problems such as data quality, algorithmic inefficiency, and lack of user input
Software Solutions: Propose software-related solutions like machine learning algorithms, improved data collection, and user interface changes for better user feedback
Limitations: Discuss why software solutions alone might not be sufficient to solve the problem completely
Answer:
The online retail platform faces a significant issue with its recommendation system, impacting customer satisfaction and sales. The problem can be decomposed into several smaller components: poor data quality, inefficient recommendation algorithms, and a lack of an interface for users to give feedback on recommendations. Software solutions can play a vital role in addressing these issues.
Machine learning algorithms can be developed to make more precise recommendations. Data quality can be improved by incorporating a more diverse set of user activities and perhaps by using third-party data.
User interface improvements could allow customers to provide immediate feedback on recommendations, which could further refine the algorithm. However, even the most advanced software solutions have limitations. For instance, without human input, they can't capture real-world influences on customer behaviour or adapt to rapid market changes.
Acceptable answer you could have given instead:
The online retailer is struggling with an ineffective recommendation system that needs improvement. This problem can be broken down into issues like inadequate data quality, outdated algorithms, and missing user feedback mechanisms. Software solutions are essential for solving these problems.
Upgrading the algorithms and improving data quality can make the recommendations more relevant. Moreover, incorporating a user feedback feature can also help refine the system. However, software alone might not be a complete solution as it can't account for every variable affecting customer behaviour or rapid changes in consumer trends.
Last updated:
You've read 0 of your 5 free revision notes this week
Sign up now. It’s free!
Did this page help you?