CONTENT AREA 1 · CORE PAPER 1

Content Area 1: Problem Solving

Content area 1 is about how developers think through a problem before and while they write code. You need to know the techniques of computational thinking, read and write algorithms as flowcharts, written descriptions and Python, and choose a suitable problem-solving or root cause analysis strategy for a situation.

Spec checklist

Rate each point. Be honest: 'Secure' means you could answer an exam question on it now without notes.

1.1.1–3Define computational thinking, say when it is used, and give its benefits and drawbacks
1.1.4–5Name the four components (decomposition, pattern recognition, abstraction, algorithmic design) and give benefits and drawbacks of each
1.1.6–8Explain the purpose and tasks of decomposition and use it to break down a problem
1.1.9–10Represent decomposition with block diagrams, information flow diagrams, flowcharts, code and written descriptions
1.1.11–12Explain and use pattern recognition: trends, similarities, common features, predictions
1.1.13–16Explain the tasks of abstraction and use it: inputs, outputs, variables, constants, key actions, repeated processes
1.1.17Judge how the components of computational thinking relate and when to use them
1.2.1Define an algorithm and describe its characteristics and purpose
1.2.2–5Express algorithms as flowcharts, written descriptions and code; give benefits and drawbacks of each
1.2.6Use sequence, selection and iteration to control the order of steps
1.2.7–10Work out what an algorithm does and its output; identify and correct errors
1.2.11–12Translate between notations; design algorithms
1.3.1–2Explain top-down, bottom-up and modularisation, with benefits and drawbacks
1.3.3–4Explain root cause analysis: five whys, FMEA, event tree analysis; log, close, escalate
1.3.5Describe the high-level problem-solving strategy
1.3.6Judge which strategy suits a problem

1.1 Computational thinking

Computational thinking is a way of approaching a problem so that the solution can be expressed clearly enough for a computer, or another person, to carry it out. It is used at the start of any development task, when a problem is complex or unfamiliar, and when a solution needs to be explained to a team.

Benefits (1.1.3)Drawbacks
  • Complex problems become manageable
  • Solutions are logical and repeatable
  • Parts of a problem can be shared out across a team
  • Reuse of existing solutions saves time
  • Errors are easier to find in small parts
  • Takes time up front before any code is written
  • Over-simplifying (too much abstraction) can miss important detail
  • Not every problem suits a step-by-step approach, e.g. creative design decisions
  • Needs practice and skill to do well

The four components (1.1.4–1.1.5)

ComponentWhat it meansBenefitsDrawbacks
DecompositionBreaking a problem down into smaller partsEach part is easier to solve, test and assignParts must be recombined; interfaces between parts can be missed
Pattern recognitionSpotting similarities within and between problemsReuse existing solutions; make predictionsFalse patterns lead to wrong assumptions
AbstractionKeeping what matters and removing unnecessary detailFocus on the essentials; simpler modelsRemoving too much makes the solution unrealistic
Algorithmic designWriting the step-by-step solutionClear, testable instructions that can become codeTime-consuming; errors in logic carry through to code

Decomposition (1.1.6–1.1.10)

Purpose: to make a large problem manageable, so each part can be understood, built and tested on its own and shared across a team.

Tasks of decomposition:

  1. Identify the main features of the problem.
  2. Characterise each feature: what does it need to do?
  3. Break the problem down into smaller, more manageable parts.
  4. Break the solution down into smaller, more manageable parts (modules, functions).
Computational thinking
A set of problem-solving techniques for breaking a problem down and expressing a solution so that a computer (or person) could carry it out.
Decomposition
Breaking a problem or solution down into smaller, more manageable parts.
Abstraction
Identifying the information that is needed and filtering out or hiding unnecessary detail.
Algorithmic design
Producing a step-by-step set of instructions to solve the problem.
Takeaway ordering app
Accounts
  • Register
  • Log in
  • Reset password
Menu
  • Browse
  • Search
  • Filter allergens
Basket and checkout
  • Add / remove
  • Calculate total
  • Take payment
Delivery tracking
  • Assign driver
  • Live map
  • Notify customer
Block diagram: decomposition of a takeaway ordering app
Method of representationUse it to showExample
Block diagramThe parts of a system and how they break downDiagram above
Information flow diagramHow information moves between people and systemsDiagram below
FlowchartThe steps and decisions of one partSee 1.2
CodeEach part as a function or moduledef calculate_total(basket):
Written descriptionEach part described in numbered steps1. Accounts 1.1 Register 1.2 Log in
Customer Ordering app Restaurant Driver Order + payment ETA + updates Order details Collection request Pickup confirmed Live location
Information flow diagram for the same app
Flowchart
A diagram that shows an algorithm using standard symbols joined by arrows.
Decision
Flowchart symbol (diamond) for a question with two or more outcomes, such as Yes/No.
Block diagram
A diagram of boxes showing how a system is broken down into parts.
Information flow diagram
A diagram showing how information moves between people, systems and processes.
Pattern recognition
Finding similarities and trends within and between problems so existing solutions can be reused.

Pattern recognition (1.1.11–1.1.12)

Purpose: to spot what is the same so effort isn't repeated, and to use patterns to make predictions.

UseExample
Find and interpret trends and similarities within and between problems and processesRegistering for a gym app and a library app both need: enter details, validate, confirm email.
Find common features between a given problem and existing solutionsA new booking system for a barber's is similar to an existing restaurant booking system, so its design can be adapted.
Make predictions and assumptions based on identified patternsWebsite traffic rises every Friday evening, so add server capacity on Fridays.

Abstraction (1.1.13–1.1.16)

Purpose: to focus only on what matters for the problem. The London Underground map is the classic example: it keeps stations, lines and connections and removes real distances and geography.

Tasks: identify information that is needed; filter out unnecessary details; hide details of internal workings (e.g. you call sort() without needing to know how it works).

Using abstraction: ask...Example: parking charge machine
What inputs are needed?Number plate, arrival time, departure time
What are the expected outputs and outcomes?Charge displayed; ticket/receipt; barrier opens after payment
What will vary?Length of stay, number plate, payment method
What will remain constant?Hourly rate, maximum daily charge, free period of 20 minutes
What key actions must the solution perform?Calculate time parked, calculate charge, take payment
What processes are repeated?Calculating the charge for every car; reading plates at entry and exit
What is filtered out?Car colour, driver's name, make of car

★ EXAM TIP: INTERRELATIONSHIPS (1.1.17)

  • The components feed into each other: decomposition produces small parts; pattern recognition spots which parts are similar; abstraction strips each part to its essentials; algorithmic design writes the steps.
  • Judge suitability: a small, familiar problem may need little decomposition; a large new system needs all four.
Algorithm
A finite, ordered set of unambiguous instructions that solves a problem.
Terminator
Flowchart symbol (rounded rectangle) for the start or end of an algorithm.
Sub-process
Flowchart symbol (rectangle with double sides) for a predefined process described elsewhere, such as a function.

1.2 Algorithmic design

An algorithm is a finite, ordered set of unambiguous instructions that solves a problem. Characteristics: clear and unambiguous steps; a defined start and end; inputs and outputs; finite (it stops); correct (it solves the problem). Purpose: to plan a solution before coding, communicate it to others, and check the logic.

Flowcharts (1.2.2)

Start / End Terminator Process Process Sub-process Sub-process Decision? Decision Input / Output Input/output Arrow: shows the direction of flow. Labels (Yes/No) go on arrows.
Flowchart symbols you must know

Worked example: one algorithm in three notations

A login allows three attempts at a password before locking the account.

Start attempts = 0 INPUT password password correct? Yes OUTPUT "Welcome" End No attempts = attempts + 1 attempts = 3? No Yes OUTPUT "Account locked" End
Flowchart

Written description with hierarchical markers

StepInstruction
1Set attempts to 0
2Repeat:
2.1Input password
2.2If password is correct:
2.2.1Output "Welcome" and stop
2.3Otherwise add 1 to attempts
2.4If attempts equals 3:
2.4.1Output "Account locked" and stop

Code

PASSWORD = "Leeds2026"
attempts = 0
while True:
    password = input("Password: ")
    if password == PASSWORD:
        print("Welcome")
        break
    attempts = attempts + 1
    if attempts == 3:
        print("Account locked")
        break
Password: leeds
Password: Leeds2025
Password: Leeds2026
Welcome

Benefits and drawbacks of each notation (1.2.3–1.2.5)

NotationBenefitsDrawbacks
FlowchartVisual; easy to follow decisions and loops; understood by non-programmers; language independentLarge algorithms become huge and messy; slow to draw and edit; hard to show complex data processing
Written descriptionQuick to write; no special knowledge needed; good for explaining to clientsCan be ambiguous; long descriptions hard to follow; can't be run or tested directly
CodePrecise and unambiguous; can be run and tested; becomes the final productNeeds programming knowledge to read; tied to one language; syntax distracts from logic

Controlling the order of steps (1.2.6)

ActionFlowchartPython
SequenceSymbols follow one after anotherLines run top to bottom
SelectionDecision diamond with labelled Yes/No arrowsif, elif, else, match/case
IterationAn arrow loops back to an earlier stepfor, while

Tracing, finding and correcting errors (1.2.7–1.2.10)

To find the purpose and output of an algorithm, trace it with sample input. This algorithm should output the largest number entered, stopping when 0 is entered.

StepInstruction
1Set largest to 0
2Input number
3While number is not 0:
3.1If number < largest, set largest to number
3.2Input number
4Output largest
Trace it with inputs 4, 9, 2, 0 yourself, then click to check.

Trace with inputs 4, 9, 2, 0: largest stays 0 every time because no number is less than 0. Output: 0. Error: step 3.1 uses < instead of >. Correction: 'If number > largest, set largest to number'. A further problem: if every number is negative, largest stays 0. Better: set largest to the first number entered.

Corrected in Python

number = int(input("Number (0 to stop): "))
largest = number
while number != 0:
    if number > largest:
        largest = number
    number = int(input("Number (0 to stop): "))
print("Largest:", largest)
Number (0 to stop): 4
Number (0 to stop): 9
Number (0 to stop): 2
Number (0 to stop): 0
Largest: 9

★ EXAM TIP: DRAWING FLOWCHARTS

  • Use the correct symbol for every step: inputs and outputs go in parallelograms, decisions in diamonds.
  • Every decision needs two labelled exits (Yes/No or True/False).
  • Start and end with terminators. Use arrows on every line.
  • A loop in a flowchart is an arrow back up to an earlier step; check it can actually end.

1.3 Strategies

Approaches to solving problems (1.3.1–1.3.2)

ApproachWhat it isWhen usedBenefitsDrawbacks
Top-downStart with the whole problem and break it into smaller sub-problems until each is simple.New systems where the overall goal is clearClear overview; work easy to divide; matches decompositionLow-level problems found late; detail may be wrong until built
Bottom-upBuild and test small components first, then combine them into bigger parts.When reliable components or libraries already exist; hardware-led projectsComponents tested early; reuse encouragedOverall design may not fit together; easy to lose sight of the goal
ModularisationSplit the solution into self-contained modules with clear interfaces.Team projects; large systemsModules developed and tested in parallel; reusable; easier maintenanceInterfaces between modules must be agreed; integration testing needed

Root cause analysis (1.3.3–1.3.4)

Purpose: to find and fix the real cause of a problem so it does not happen again, instead of repeatedly treating symptoms. Used after incidents, repeated faults, outages, or failed releases.

Five whys

QuestionAnswer
Why did customers get charged twice?The payment request was sent twice.
Why was it sent twice?Users pressed 'Pay' again because nothing appeared to happen.
Why did nothing appear to happen?The page took 12 seconds to respond with no loading message.
Why did it take 12 seconds?The payment API call waits for a slow fraud check.
Why is there no protection against double submission?The button isn't disabled after the first click. Root cause.

Benefits: quick, simple, no special tools. Drawbacks: can stop at a symptom; depends on the knowledge of the people asking; may miss multiple causes.

Top-down
Starting with the whole problem and breaking it into smaller sub-problems.
Bottom-up
Starting with small, detailed components and combining them into a larger solution.
Modularisation
Splitting a solution into self-contained modules that can be developed and tested separately.
Root cause analysis
A process for finding the underlying cause of a problem, rather than just treating the symptoms.

Failure mode and effects analysis (FMEA)

FMEA lists each way a part could fail, the effect, and scores severity, occurrence (likelihood) and detection (how hard to spot) from 1–10. Multiplying them gives a risk priority number (RPN) to rank what to fix first. It is usually done before problems happen.

ComponentFailure modeEffectSODRPNAction
Login serviceDatabase unavailableNo one can log in93254Add replica database
Payment formDouble submissionCustomer charged twice756210Disable button after click
Image uploadFile too largeUpload fails with no message46372Validate size and show error

Try it: RPN calculator

Event tree analysis (ETA)

ETA starts from a single initiating event and branches at each safeguard into success or failure, showing every possible outcome. It shows whether safeguards are enough.

Initiating event: mains power fails UPS takes over (success) Generator starts Generator fails UPS fails (failure) Outcome A: service continues Outcome B: controlled shutdownbefore battery runs out Outcome C: servers crash,risk of data loss
Event tree: power failure in a server room

Actions after root cause analysis

ActionWhen
LogRecord the problem, cause and fix in an incident or fault log so trends can be spotted and the knowledge kept.
CloseThe cause is fixed and tested; the ticket is closed and the user informed.
EscalateThe problem is beyond your authority or skill: pass to a manager, a specialist (e.g. the network team) or an external third party (e.g. the software vendor).
FMEA
Failure mode and effects analysis: listing how each part could fail, the effect, and rating severity, likelihood and detection to prioritise action.
Event tree analysis
A diagram that starts from one initiating event and branches through success/failure of each safeguard to show possible outcomes.
Escalate
Pass a problem to someone with more authority or expertise: a manager, specialist or external third party.

The high-level problem-solving strategy (1.3.5)

StepWhat happensExample: staff can't access shared drive
1 Define the problemState clearly what is wrong and its scopeSince Monday, the sales team can't open the S: drive
2 Gather informationCollect facts: logs, error messages, who is affected, what changedOnly sales affected; error 'access denied'; permissions update on Monday
3 Analyse the informationLook for patterns and the likely causeThe update removed the sales group from the folder's permissions
4 Make a plan of actionDecide the fix, who does it, when, and how to test itRe-add the group at lunchtime; test with two users
5 Implement the solutionCarry out the planPermissions restored
6 Review the solutionCheck it worked and prevent it recurringAll sales staff can access; add permissions check to the update checklist

★ EXAM TIP (1.3.6)

When asked to judge a strategy, link it to the problem: five whys for a single, simple incident; FMEA to prevent failures in a new system before launch; event tree to check whether safeguards are enough for one serious event; top-down for designing a new system; bottom-up when reusing existing modules.

Five whys
Asking 'why?' repeatedly (often five times) to move from a symptom to the root cause.
Hierarchical markers
Numbering such as 1, 1.1, 1.2, 2 used in written descriptions to show the order and nesting of steps.
Trace table
A table used to record variable values line by line as an algorithm runs.

Knowledge organiser

COMPUTATIONAL THINKING

  • Decomposition: break into smaller parts
  • Pattern recognition: spot similarities, reuse solutions
  • Abstraction: keep what's needed, filter out detail
  • Algorithmic design: write the steps

DECOMPOSITION TASKS

  • Identify main features
  • Characterise each feature
  • Break down the problem
  • Break down the solution
  • Show it with block diagrams, information flow diagrams, flowcharts, code, written descriptions

ABSTRACTION: ASK

  • What inputs? What outputs?
  • What varies? What stays constant?
  • Key actions? Repeated processes?
  • Hide internal workings

FLOWCHART SYMBOLS

  • Terminator (rounded): start / end
  • Process (rectangle)
  • Sub-process (double-sided rectangle)
  • Decision (diamond) with labelled exits
  • Input/output (parallelogram); arrows show flow

ALGORITHM NOTATIONS

  • Flowchart: visual, but large ones get messy
  • Written description: hierarchical markers 1, 1.1, 1.1.1; can be ambiguous
  • Code: precise and testable; needs programming knowledge

PROBLEM-SOLVING APPROACHES

  • Top-down: whole → parts
  • Bottom-up: parts → whole
  • Modularisation: self-contained modules, built in parallel

ROOT CAUSE ANALYSIS

  • Five whys: quick, may stop at a symptom
  • FMEA: severity × occurrence × detection = RPN; done before failure
  • Event tree: one event, branches for each safeguard
  • Then: log, close or escalate

HIGH-LEVEL STRATEGY

  • 1 Define the problem
  • 2 Gather information
  • 3 Analyse
  • 4 Plan
  • 5 Implement
  • 6 Review

Flashcards

Every Quick recall definition on this page. Click the card to flip it; use the arrow keys to move.

Quiz me

Random questions on CA1 from the course question bank. Pick a topic or question type, answer in your head or on paper, then check. Your score is saved on this device.

Exam-style questions

Allow about 80 minutes. Answer each question before you look at its mark scheme.

Define the term 'abstraction'.

  • Removing/filtering out unnecessary detail to focus on what is needed / hiding internal workings (1).

State the four components of computational thinking.

  • Decomposition, pattern recognition, abstraction, algorithmic design. All four = 2 marks; two or three = 1 mark.

A cinema wants an app that lets customers book seats. Use decomposition to identify four main parts of the app.

  • Any four relevant parts, e.g. user accounts/login; view films and showtimes; choose seats / seat map; payment; booking confirmation / e-ticket; manage/cancel bookings; admin to add showings. One mark each.

Draw the flowchart symbol used for each: (a) a decision (b) an input or output (c) the start of an algorithm.

Draw on paper, or name the shape in the box.

  • (a) Diamond (1) (b) Parallelogram (1) (c) Rounded rectangle / terminator (1).

Give one benefit and one drawback of expressing an algorithm as a flowchart rather than in code.

  • Benefit: visual / easier for non-programmers to follow / language independent (1).
  • Drawback: large algorithms become unwieldy / slow to draw and edit / can't be run (1).

A sports club charges £5 per session, or £4 per session for members. A customer can book up to 10 sessions. Using abstraction, identify: two inputs, one output, one constant, one thing that varies.

  • Inputs (any two, 1 each): number of sessions; membership status.
  • Output (1): total cost.
  • Constant (1): £5, £4, or maximum of 10 sessions.
  • Varies (1): number of sessions / member or not / total.

Describe how pattern recognition could help a developer who has been asked to build an online booking system for a dental practice.

  • Identify similarities with existing booking systems (e.g. restaurants, hairdressers) (1)
  • so existing designs or code for calendars, time slots and confirmations can be reused (1)
  • saving development time / reducing errors because the solution is already tested (1).

Draw a flowchart for an algorithm that asks for a test mark (0–100), keeps asking until a valid mark is entered, then outputs "Pass" for 40 or more and "Fail" otherwise.

Draw it on paper, then describe it here if you like.

  • Start and end terminators (1)
  • Input mark in parallelogram (1)
  • Decision checking range 0–100 (1)
  • Loop back to input if invalid (1)
  • Decision mark >= 40 with labelled Yes/No (1)
  • Outputs "Pass" and "Fail" in parallelograms (1)

The written algorithm below should output the total of five numbers entered by the user. Identify two errors and give the correction for each.

1Set total to 1
2Repeat 4 times:
2.1Input number
2.2Add number to total
3Output total
  • Total initialised to 1 (1); should be set to 0 (1).
  • Loop repeats 4 times (1); should repeat 5 times (1).

Explain the difference between top-down and bottom-up approaches to problem solving.

  • Top-down starts with the whole problem (1) and breaks it into smaller sub-problems (1).
  • Bottom-up starts with small detailed components (1) and combines them into a complete solution (1).

A school's Wi-Fi drops every day at 12:30. Show how the five whys technique could be used to find the root cause. You may invent reasonable answers.

  • One mark per logical 'why' step leading to a plausible root cause (max 4), plus 1 for identifying the root cause. E.g.: Why does Wi-Fi drop? Access points overload. Why? 900 students connect at once. Why? Lunch starts at 12:30 and students stream video. Why does that overload it? Bandwidth limit not set per device. Root cause: no bandwidth management policy.

After root cause analysis, a technician finds that the fault is caused by a bug in third-party firewall software. State which action they should take and justify it.

  • Escalate to the external third party / vendor (1) because the technician cannot fix a bug in someone else's software (1).

A bank is launching a new mobile app. Evaluate the use of FMEA and the five whys for managing problems with the app.

Indicative content:

  • FMEA: done before launch; systematically lists failure modes (login fails, payment errors, data exposure); prioritises by severity, occurrence, detection; important for a bank where failures affect money and regulation. But time-consuming, needs expertise, scores can be subjective, may miss unforeseen failures.
  • Five whys: quick and cheap after a problem occurs; good for individual incidents reported by customers. But may stop at a symptom; relies on staff knowledge; not suited to complex problems with several causes; reactive.
  • Interrelationship: FMEA reduces likely failures before launch; five whys handles problems that still occur.
  • Judgement: e.g. both should be used: FMEA before launch because of the high stakes for a bank, five whys for incidents after launch.

Discuss the benefits and drawbacks of modularisation for a team of six developers building an online shop.

◆ SUPPORT: SENTENCE STARTERS

  • FMEA would help the bank before launch because ...
  • The five whys is quicker because ... but it may ...
  • Modularisation means each developer can ... However, the modules must ...

Indicative content:

  • Benefits: developers build modules (basket, payments, accounts, catalogue) at the same time; faster delivery; each module unit tested separately; easier maintenance and reuse; faults easier to locate.
  • Drawbacks: interfaces must be agreed and documented; integration problems if modules don't fit; needs coordination and version control; duplication if teams don't communicate.

▲ STRETCH

  • Write the Python code for question 8 and test it with valid, invalid, boundary and erroneous data.
  • Draw an event tree for a fire in the bank's data centre with two safeguards: fire suppression and an offsite backup.

My corrections: what I need to go back over

my_notes.txt