📄 Paper 1 · 4.13 Problem Solving
✓ Free lesson
4.13.1 Systematic Approach to Problem Solving
AQA 7517 · A-Level Computer Science · ~12 min read

Overview: Why Problem Solving?

Section 4.13 underpins all of computer science — the systematic process of taking a complex problem and converting it into a working, tested computer solution. AQA 7517 requires students to understand and apply a structured problem-solving methodology.

The Systematic Problem-Solving Process

1

Problem Specification

Clearly define what the problem is. Identify inputs, outputs, processes, and constraints. A vague spec leads to a wrong solution. Produces a requirements document.

2

Decomposition

Break the problem into smaller, more manageable sub-problems. Each sub-problem can be solved independently. Makes complex problems tractable. Also called divide and conquer or top-down design.

3

Abstraction

Remove unnecessary detail and identify only the essential features of the problem. Focus on WHAT the system does, not HOW. Two types: procedural abstraction (hide implementation) and data abstraction (hide data representation).

4

Algorithm Design

Design a step-by-step method to solve each sub-problem. Use pseudocode, flowcharts, or structure diagrams. Consider efficiency — time and space complexity. Choose appropriate data structures and algorithms.

5

Implementation

Convert the algorithm into working code. Apply coding standards, documentation, and modular design (functions/procedures). Follow the spec from step 1.

6

Testing

Verify the solution works correctly. Use: normal data (valid inputs), boundary data (edge cases), erroneous data (invalid inputs). Types: unit testing, integration testing, system testing.

7

Evaluation

Assess whether the solution meets the original specification. Consider: efficiency, maintainability, usability, robustness. Identify limitations and suggest improvements.

Decomposition in Detail

Decomposition splits a complex problem into smaller sub-problems, each of which can be solved independently, tested in isolation, and reused in other projects. A structure diagram (hierarchy chart) shows decomposition visually.

Abstraction in Detail

TypeDescriptionExample
Procedural abstractionA function hides its internal implementation — caller only needs to know what it doessort(list) — caller doesn't need to know which algorithm
Data abstractionData structures hide their internal representation behind an interfaceA stack with push/pop/peek — caller doesn't know if array or linked list

Testing Strategies

Test typeData usedPurpose
NormalValid, typical inputs within expected rangeConfirm basic functionality works
BoundaryValues at the edge of valid range (min, max, min-1, max+1)Check edge cases — often where bugs lurk
ErroneousInvalid inputs (wrong type, out of range)Verify system handles bad input gracefully
Exam tip: AQA 7517 Problem Solving questions often ask you to: identify inputs/outputs/processes for a scenario; describe decomposition of a complex task; explain procedural vs data abstraction; or design a test plan (normal/boundary/erroneous). Problem solving appears in Paper 1 (conceptual) and the NEA (practical).
Click through the slides at your own pace. Use arrow keys or click to advance.
Click slide or press arrow keys to navigate

Worksheet — 4.13.1 Systematic Problem Solving

8 questions · instantly marked · AQA 7517 standard

Q1List and briefly describe four stages of the systematic problem-solving process.[4]
✅ Mark scheme
Mark scheme
Any 4 of (1+1 each): Problem specification — define inputs, outputs, processes, constraints [1+1]. Decomposition — break into smaller sub-problems [1+1]. Abstraction — remove unnecessary detail, focus on essentials [1+1]. Algorithm design — step-by-step method using pseudocode/flowcharts [1+1]. Implementation — convert to code [1+1]. Testing — normal/boundary/erroneous data [1+1]. Evaluation — assess against spec, identify improvements [1+1].
Q2Explain what decomposition is and state two benefits.[2]
✅ Mark scheme
Mark scheme
Decomposition: breaking a complex problem into smaller, manageable, independently solvable sub-problems [1]. Benefits (any 2): parallel development — teams work on different sub-problems [1]; unit testing — test each module in isolation [1]; reuse — modules can be used in other projects [1]; manageable — large problems become tractable [1].
Q3Explain the difference between procedural abstraction and data abstraction with an example of each.[2]
✅ Mark scheme
Mark scheme
Procedural abstraction: function hides implementation — caller knows WHAT, not HOW [1]; e.g. sort(list) without knowing the algorithm [1]. Data abstraction: data structure hides internal representation behind an interface [1]; e.g. stack with push/pop/peek — array or linked list internals hidden [1].
Q4Why is the problem specification important? What must it include?[2]
✅ Mark scheme
Mark scheme
Important: without a clear spec, the solution may not meet user requirements — wasted effort [1]; spec is the benchmark against which the solution is evaluated [1]. Must include: inputs and their format [1]; outputs (what is produced); processes (what computations); constraints (time, memory, platform limits) [1].
Q5Describe the three types of test data. Give one example of each for a program accepting ages 0–120.[4]
✅ Mark scheme
Mark scheme
Normal: valid input within expected range [1]; e.g. age=35 [1]. Boundary: values at/just outside the valid range edges [1]; e.g. age=0, age=120, age=121, age=-1 [1]. Erroneous: invalid type or clearly out of range [1]; e.g. age="twenty" or age=999 [1].
Q6Explain the evaluation stage. What criteria should be considered?[2]
✅ Mark scheme
Mark scheme
Evaluation: assessing whether solution meets specification [1]; identifying limitations and suggesting improvements [1]. Criteria (any 2): efficiency — runs within time/memory constraints [1]; usability — easy to use [1]; maintainability — well-structured and documented [1]; robustness — handles unexpected inputs without crashing [1].
Q7Decompose an online exam system into at least four sub-problems. Describe each briefly.[2]
✅ Mark scheme
Mark scheme
1 mark each (max 4): User authentication — verify identity [1]; Question display — retrieve and present questions with timer [1]; Answer collection — capture and store responses [1]; Marking/scoring — evaluate answers and calculate score [1]; Results reporting — generate and display results [1]; Timer management — enforce time limits [1].
Q8Why is abstraction considered fundamental to computer science? Give a real-world analogy.[2]
✅ Mark scheme
Mark scheme
Abstraction hides complexity — programmers work at the right level of detail without being overwhelmed by lower-level implementation [1]; enables large systems to be built and maintained by focusing on interfaces not internals [1]; allows reuse — an abstract module works without understanding its internals [1]. Analogy: driving a car — use steering wheel/pedals without knowing engine mechanics [1]; TV remote — press button without knowing infrared encoding [1]. Any valid analogy accepted.
Problem Solving Quiz
Question 1 of 15
You scored
out of 15
Card 1 of 8
Click to reveal definition
🎉
All cards reviewed!
TermDefinition
🎯

Mini Test — Systematic Problem Solving

10 questions · 10 minutes

← 4.12.1b Functional Programming
70 of 70 · AQA 7517
🎉 Course complete!