Community resourceWorksheet

OCR H446 2.1.4 Decisions, logical conditions and flow

Part 1 · H446 2.1.4 · Thinking logically

OCR H446 2.1.4 is about decisions that change the route through a solution, and about the boundary values where those decisions quietly go wrong. A community makerspace access policy gives students conditions to write, trace, repair and then extend.

Students will:

  • identify a genuine decision point and the condition that controls it
  • write a Boolean condition combining membership, training and an age threshold
  • repair a comparison operator that fails only at the boundary value
  • trace nested decisions and explain why one route is never reached
  • implement the access routes in Python and extend the rule with an alternative condition

Inside: 7 explanation cells, 1 multiple-choice question, 1 fill-in-the-blanks cell, 3 written answers, 1 Python task and 1 trace table. 19 marks, about 25 to 35 minutes.

Series: H446 2.1.4 · Thinking logically, part 1 of 1.

Shared by Coding PathwayVerified teacher

  • 14 cells
  • About 30 minutes
  • CC BY-SA 4.0
  • Shared 31 Aug 2026
  • Updated 15 Sept 2026

Preview

The whole resource, exactly as a class sees it. Answers and marking are held back.

Thinking logically: decisions, conditions and program flow

A makerspace must decide whether a member can use equipment independently, only with supervision, or not at all. Each decision tests a Boolean condition. The True or False result determines which instructions the program follows next.

By the end, you will be able to

  • identify points where a program must make a decision;
  • write accurate simple and combined Boolean conditions;
  • trace True and False routes, including boundary values;
  • explain how a decision changes the route and final outcome.

Remember: AND requires both conditions to be True. OR requires at least one. NOT reverses a Boolean value.

A decision is controlled by a condition

Makerspace access decision routesmember?Truetrained ANDage >= 16?Trueunsupervised accessFalsesupervisedFalsedenied

member? and trained AND age >= 16? each produce True or False and select a route. “Choose a random tool” is an action, not a logical decision unless a condition tests the result.

A condition can control selection, such as IF…ELSE or a multiway SELECT/CASE, or iteration, such as whether a WHILE loop repeats. In every case, identify the decision point, write the precise logical condition, then follow the route or outcome it selects.

Trace with a condition table before following arrows. Boundary age 16 satisfies age >= 16; age 15 does not.

Worked route table

membertrainedageroute
FalseTrue18denied at first decision
TrueFalse18supervised
TrueTrue15supervised
TrueTrue16unsupervised

When member is False, the program follows the denied branch immediately. It therefore never reaches the second decision about training and age.

Multiple choice1 mark

Which option is a logical decision point?

  • ADisplay the booking reference
  • BTest whether the user is a member
  • CGenerate a random identifier
  • DStore the current time
Written answer2 marks

Write a Boolean condition for unsupervised access: the person must be a member, trained, and at least 16.

Use recognisable OCR ERL, Python or clear Boolean notation.

Students type their answer here.

Guided practice: repair a boundary condition

The condition age > 16 is wrong when the policy says “aged 16 or over”. It incorrectly rejects the boundary value 16. The corrected condition is age >= 16. Test 15, 16 and 17 to confirm that the boundary now behaves as required.

When testing a combined condition, change one input at a time. This helps you identify which part of the condition changes the route.

Trace table1 mark

Trace the routes and final access value.

Enter a value only when it changes. Follow the listing in order.

Use one row for each pass through the loop. Fill in a box only when that value changes on that row, and leave the rest blank.

AlgorithmExam reference language
  1. member = True
  2. trained = False
  3. age = 17
  4. access = "denied"
  5. if member == True then
  6. if trained == True AND age >= 16 then
  7. access = "independent"
  8. else
  9. access = "supervised"
  10. endif
  11. endif
  12. print(access)
Trace table with 7 columns
Rowmembertrainedageaccessmember == Truetrained == True AND age >= 16Output
1
2
3
Written answer3 marks

Explain why the independent assignment is not reached in the trace and state one change that would make it reachable.

State the value of trained, explain the result of the AND condition, and name the route followed. Then give one complete input change.

Students type their answer here.

Implement the decision routes

Return “denied” for a non-member, “independent” for a member who is trained and at least 16, and “supervised” for every other member.

Coding task5 marks
def access_route(member, trained, age):
    if not member:
        return "denied"

    # Complete the condition for independent access.
    if False:
        return "independent"

    return "supervised"
Written answer4 marks

A laser cutter may be used only by a member aged 16 or over. The member must also have either advanced training OR a supervisor present. Write one Boolean condition for permission to use the laser cutter. Then use one example set of inputs to explain whether permission is granted.

Translate each requirement separately. Decide which requirements must all be true and which part offers a choice between two alternatives. Use brackets where they make the grouping clear.

Students type their answer here.

Checkpoint

Complete the decision-and-flow explanation from memory. Your teacher will review your answers.

Fill in the blanks4 marks
A Boolean expression evaluates to True or checkpoint gap 1. In checkpoint gap 2, its result chooses a route. In checkpoint gap 3, its result can decide whether another repetition occurs. The boundary value that first permits independent access here is age checkpoint gap 4.

Review your understanding

Before submitting, check that you can identify a genuine decision point, write its Boolean condition, follow both possible routes and test an inclusive boundary value.