Coursework · SQA assessment guidance

Higher Assignment Guide

A pupil-friendly guide to the 40-mark assignment: what is assessed, how the tasks fit together, what evidence to collect, and real candidate answers showing exactly where marks are won and lost.

40 marks 6 hours Open book Supervised
40

The assignment is worth 40 marks out of the 160 marks available for the whole course.

6h

You complete it under supervised conditions, usually over several sessions between February and March.

1+1

Everyone completes Task 1 (software), then completes either Task 2 (database) or Task 3 (web).

Important: the marked examples on this page come from the publicly released 2019 Understanding Standards specimen candidate evidence and commentary. That paper required all three tasks from every candidate, in the order Task 1 · database, Task 2 · software, Task 3 · web, and the software task was completed in Visual Basic against an Access database. Today's assignment instead requires Task 1 · software (mandatory) plus a choice of Task 2 · database or Task 3 · web — a different task order, and Task 1 is now written in Python. The analysis, design, testing and evaluation skills, and the marking principles behind them, are identical either way, which is why the 2019 evidence is still directly useful today.

The assignment is practical computing, not just writing about computing.

You are assessed on applying computational thinking to a problem: analysing what is needed, completing or extending a design, implementing it, testing it, and evaluating what you produced. The exact scenario changes each year, but the structure below stays familiar.

Mandatory

Task 1 · Software Design & Development

25 marks

Identify functional requirements, complete a data-flow design, implement a modular Python program against the supplied refinements, trace a function with test data, and evaluate your own code.

Strong preparation: precise IPO analysis, correct parameter passing in data-flow diagrams, standard algorithms (parallel arrays or arrays of records), accurate trace tables, and evaluation tied to your own fitness for purpose, readability and modularity.

Option

Task 2 · Database

15 marks

Usually asks you to complete an entity-occurrence or ER diagram, write SQL (often two related queries, an equi-join, or an aggregate function), and evaluate problems caused by missing validation or structure.

Option

Task 3 · Web

15 marks

Usually asks you to state functional requirements in context, edit HTML/CSS to match a wireframe, add JavaScript to show/hide sections, describe comprehensive testing, and evaluate fitness for purpose.

Marks are awarded positively for clear, specific evidence.

SQA marking instructions use positive marking: you gain marks for relevant skills, knowledge and understanding shown in your evidence. Course reports from 2023–2025 repeat one warning above all others: written answers that restate the scenario, or that give a generic National 5-level response, do not earn Higher marks — every answer needs to be specific to your own code, database or website.

1

Analyse

Identify functional requirements: inputs, processes and outputs for software; query-style requirements for a database; a named feature for a website.

2

Design

Complete a supplied data-flow diagram, entity-occurrence diagram, or wireframe so it could actually be implemented.

3

Implement

Write Python, SQL, HTML, CSS or JavaScript that follows the given design and refinements exactly.

4

Test

Trace a function using your own variable names, or describe how every input would actually be tested with real values.

5

Evaluate

Judge your own solution against named criteria — fitness for purpose, readability, modularity, or database/website structure.

CommandWhat markers are looking forWeak answer pattern
IdentifyName the item clearly and precisely, matching the scenario's exact wording.Restating a phrase from the stem instead of naming the actual requirement, boundary or parameter.
StateGive a short, correct fact in context.A generic requirement that could apply to any program, database or website.
DescribeGive a developed point using real values or examples from your own work.Listing test types without describing how a specific input is actually tested.
ExplainMake the reason or consequence clear, tied to a named field, variable or line of code.A vague reference to "incorrect data" with no concrete, named consequence.
EvaluateJudge your own solution against the named criterion, using evidence from it.A confident-sounding answer that never mentions the specific requirement being evaluated.
Examiner pattern: 2023–2025 course reports repeatedly note that analysis and evaluation are the weakest stages — not because candidates can't code, but because their written answers aren't specific enough. Practising these answer types is worth as much time as practising the code.

If the marker cannot see it, in the order it was asked, they cannot award it.

The 2025 course report specifically reminds centres that only pages containing marked evidence should be submitted, in task order, with instruction-only pages removed. Build the habit of saving and labelling evidence as you go, in the order the task asks for it.

Evidence typeWhat good evidence looks likeBefore handing in
Written answersSpecific to your own code, database or website — not a generic definition.Check every sub-question has a response, and it references your own work.
Program codeComplete, readable Python matching the supplied design and every refinement.Check your code against each line of the design — a working program that skips a refinement can still lose marks.
Trace tablesYour own variable and data-structure names, values traced through every iteration.Trace the real test data given, not placeholder values.
SQL evidenceSQL statement and its output both visible, and code that would still work if the data changed.Check comparison operators match the wording exactly (e.g. "at least" needs >=, not >).
Web evidenceEdited HTML/CSS/JavaScript code and the browser result shown together.A correct-looking screenshot doesn't prove correct code — the marker checks the construct, not just the output.
EvaluationNamed criteria (fitness for purpose, readability, modularity) answered with specific evidence.Replace confident-but-generic claims with a sentence that names the actual requirement or line of code.
Practical warning: evidence does not need to be printed in colour, but it does need to be readable. If a screenshot makes code blurry, paste the code as text instead.

Two real candidates, the same 2019 assignment, very different marks.

The cards below compare Candidate 1 and Candidate 2 from the 2019 Higher specimen assignment on the same question. Neither candidate is "the good one" — look closely and the result flips more than once. That's the real lesson: marks are awarded question by question, on the specific wording of your answer, not on how strong your solution is overall.

Software · Analysis

Functional requirements only earn marks when inputs, processes and outputs match the scenario exactly.

Candidate 10 / 3

Output(s): “Display the names of the walker that are within 70% of the highest amount of miles walked”

Marked 0 — the inputs didn't say the data came from a file, the process didn't say "more than 70% of furthest", and the output said "Display" instead of "write to file", plus "within 70%" instead of "more than 70%".

Candidate 1's handwritten functional requirements answer
🔍 View original answer
Candidate 23 / 3

Input(s): “Text file containing the forename, surname and the total distance walked in miles of each of the walkers”

Marked full — every input, process and output was correctly identified: the exact source (a file), the exact condition (more than 70% of furthest), and the exact output action (write to file).

Candidate 2's handwritten functional requirements answer
🔍 View original answer
Software · Design

A data-flow answer is marked parameter by parameter.

Candidate 10 / 2

IN for "Find the furthest distance walked": “furthest”

Marked 0 — one correct parameter, but two incorrect. This module needs the whole members array passed in, not the answer variable it's trying to calculate.

Candidate 1's completed data-flow design table
🔍 View original answer
Candidate 22 / 2

IN for "Find the furthest distance walked": “members(forename,surname,distance)”

Marked full — the data flow was correct throughout: the module receives the full array it needs to search, with correct bracket notation.

Candidate 2's completed data-flow design table
🔍 View original answer
Software · Testing

A trace table must trace the real starting values and the real changing state of every variable.

Candidate 10 / 2

Every row repeated the same line number, with values that didn't track the given test data step by step.

Marked 0 — "the initial values and the changing state of the two variables are incorrect." A trace table needs one row per genuine iteration, tracing the actual test data given.

Candidate 1's trace table
🔍 View original answer
Candidate 22 / 2

Counter 0–4, Member(counter).distance 189.4 / 14.6 / 490.2 / 512.5 / 170.3, Max updating to 189.4 / 189.4 / 490.2 / 512.5 / 512.5.

Marked full — correctly traced distance and max through every iteration of the test data given in the question, using their own variable names.

Candidate 2's trace table
🔍 View original answer
Software · Evaluation

Working code doesn't automatically earn evaluation marks — each criterion is marked on its own wording.

Candidate 11 / 3

“...displays the names of people who walked 70% or more of the furhtast distance.”

Fitness for purpose: 0 — "70% or more" restates the same error as the analysis stage. Readability: 0 — generic comments about commentary and indentation, never linked to maintainability. Modularity: 1, for stating separate classes aid readability.

Candidate 1's evaluation of fitness for purpose, readability and modularity
🔍 View original answer
Candidate 22 / 3

“...it makes sense to other programmers.”

Fitness for purpose: 0 — not answered in the context of the problem, with no reference to the actual functional requirements. Readability: 1, for finally linking generic points to maintainability. Modularity: 1, for describing procedures/functions and isolated changes.

Candidate 2's evaluation of fitness for purpose, readability and modularity
🔍 View original answer
Database · Evaluation

Evaluating a database problem needs a specific, named consequence — not a restatement of "incorrect data".

Candidate 10 / 2

“...a client...cannot get their flight in this case to the company being sued for false handeliing of data.”

Marked 0 — reference was made to incorrect or no data, but the explanations stayed vague and never named a specific missing check or field.

Candidate 1's evaluation of database validation problems
🔍 View original answer
Candidate 22 / 2

“Without a range check on the capacity field, the user could accidentally enter a value that doesn't make sense.”

Marked full — both problems were valid and correctly referenced the Flight table: a named missing check (range check, lookup check), a named field, and a concrete consequence.

Candidate 2's evaluation of database validation problems
🔍 View original answer
Web · Analysis

A functional requirement only counts if it names a feature of the website, in context.

Candidate 12 / 2

“The website must allow for an application to the foundation to be sent by filling out and submitting a form...”

Marked full — both requirements named an actual feature (a form; games content) tied specifically to the Playing Cards scenario.

Candidate 1's functional requirements for the website
🔍 View original answer
Candidate 21 / 2

“The website must be able to display images across web pages.”

Marked partial — this requirement was too generic to be answered "within the context of the Playing Cards website"; almost any website displays images. Only the second requirement, which named a specific form, earned credit.

Candidate 2's functional requirements for the website
🔍 View original answer
Web · Testing

Describing tests means walking through how each input is tested — a list of test types isn't enough.

Candidate 13 / 3

“...trying to exceed 100 years and have less than 0 years. If the answer is restricted appropriately then the input is working as intended.”

Marked full — comprehensive tests were described using real examples from the form itself: character limits, blank required fields, and boundary values.

Candidate 1's description of how the form's inputs could be tested
🔍 View original answer
Candidate 20 / 3

“Make sure that the input validation works correctly.”

Marked 0 — this lists categories of test that could be carried out, but never describes how any specific input would actually be tested with real values, as the question required.

Candidate 2's description of how the form's inputs could be tested
🔍 View original answer
How to use these: cover the "why" text first and decide what mark you'd give. Then reveal it and compare your judgement with the marker's actual reasoning.

Open book helps prepared pupils most.

You may access permitted resources such as class notes, textbooks, programming manuals, and programs you wrote during the course. Open book does not mean you can ask someone how to solve the live task, use email or mobile phones, work with another pupil, or access assignment files outside the supervised classroom environment.

Build a useful notes bank

  • Keep one page for standard algorithms: parallel arrays and arrays of records, linear search, min/max/count, and file reading/writing.
  • Keep one page for SQL patterns: equi-joins, aggregate functions, GROUP BY, wildcards, and multi-query references.
  • Keep one page for CSS/JavaScript patterns: floats, positioning, margins, and functions to show/hide sections with onclick.

Avoid these open-book traps

  • !Do not copy a memorised answer if it does not fit the scenario in front of you.
  • !Do not bring in a task-specific model solution or writing frame.
  • !Do not spend so long searching notes that you stop solving the problem in front of you.

Real patterns from the 2023, 2024 and 2025 assignments.

Software task

  • Identify only the parameters actually needed IN and OUT of each module — extra "just in case" parameters make the data flow, and the code built from it, less efficient (2023, 2025).
  • Follow the supplied top-level design and every refinement exactly — most marks are for implementation, but only when it matches the given design (2023–2025).
  • Write evaluation answers about your own function, data structures or loops specifically — generic, National 5-level statements don't earn Higher marks (2023, 2025).

Database task

  • Start functional requirements with "A query to…" — it prompts the actual query terminology (search, sort, calculate) instead of restating an end-user requirement (2024, 2025).
  • Write SQL that works for any data, not just the sample shown — use >= if the requirement is "at least", not > (2025).
  • When explaining a database structure problem, name the actual field and table affected, not just "the data" in general (2025).

Web task

  • Functional requirements need a feature tied to the scenario, e.g. "a form to…" — not something that could apply to any website (2023, 2025).
  • Match spacing instructions exactly — adding 10px to both sides of a section is a 20px gap, not the 10px asked for (2025).
  • A correct-looking screenshot doesn't prove correct code — output is for reference only, and the marker checks the actual HTML/CSS/JavaScript (2024).
Best preparation routine: practise one full mini-cycle at a time. Analyse a small scenario, complete the design, implement it, trace or test it, then write one specific evaluation comment. That cycle is the assignment in miniature.

Documents used to build this guide

Course specification

Used for the official assignment structure, marks, timing, open-book conditions, and the skill areas assessed.

Open local PDF

Specimen assignment assessment task

Used for task sequencing, candidate instructions, evidence expectations, and marking principles.

Open local PDF

2023, 2024 & 2025 course reports

Used for the recent candidate performance patterns and preparation advice quoted throughout this page.

2023 · 2024 · 2025

Coursework conditions guidance

Used for open-book, supervision, reasonable assistance, plagiarism, collusion, and malpractice guidance.

Open local PDF

2019 Understanding Standards candidate evidence

Used for every candidate quote and mark breakdown in the marked examples section above.

Candidate 1 · Candidate 2 · Commentary

Understanding Standards — official page

The live SQA page hosting these and other assignment exemplars for Higher Computing Science.

Open official page