Year 12 Digital Solutions External Exam Revision
- Revision topics
- Pseudocode and algorithm reasoning
- Cybersecurity and the CIA triad
- Security strategies and their appropriate uses
- Data-flow diagrams and exchange-system relationships
- User interfaces, useability and annotated mock-ups
- Cognitive verbs and constructing responses
- Reading criteria and interpreting unseen stimulus
- JSON and structured data
- Data dictionaries and specifications
- Australian Privacy Principles
- Data-exchange technologies
- Network performance
- Constraints, requirements and criteria
- Classical encryption algorithms
- Visual communication principles
- Emerging technologies
- SQL in a Unit 4 context
- Broader personal, social and economic impacts
- Exam clinics
- Practice exams
Revision topics
Pseudocode and algorithm reasoning
Inputs, processes and outputs
Most algorithms can be understood by identifying what data enters, what happens to it and what result is produced.
- Input: What data enters the algorithm?
- Process: What calculations, decisions or repetitions occur?
- Output: What must be displayed, stored or returned?
Identify the three parts
A roadside safety system receives a vehicle's speed from a sensor. It compares that speed with the road's speed limit. If the vehicle is travelling too quickly, the system displays a warning to the driver.
Copy and complete the following:
- Input: ...
- Process: ...
- Output: ...
Check your answer
- Input: the vehicle's speed from the sensor and the road's speed limit.
- Process: compare the vehicle's speed with the speed limit.
- Output: display a warning when the vehicle's speed exceeds the limit.
Writing clear pseudocode
Pseudocode communicates the logic of an algorithm without requiring the exact syntax of a programming language. Its steps must still be ordered, consistent and unambiguous.
BEGIN
INPUT temperature
SET status = "safe"
IF temperature > 40 THEN SET status = "warning" ENDIF
OUTPUT status END
- Give variables names that reveal their job.
- Indent code so its structure is easy to see.
- Give totals, counters, lists and flags a starting value.
- Close structures with
ENDIF,ENDFORorENDWHILE. - Avoid syntax that belongs to one programming language, such as JavaScript, PHP or Python.
Selection and iteration
Selection chooses a path
IF condition THEN
instructions
ELSE
alternative instructions
ENDIF
Iteration does it again
FOR EACH item IN items DO
process item
ENDFOR
WHILE condition DO repeat instructions ENDWHILE
Use FOR EACH when processing every item in a collection. Use WHILE when repetition depends on a condition.
Check for understanding
A registration form cannot predict how many times a user will enter an invalid password. It must keep requesting another password while the entered password contains fewer than 12 characters.
Analyse the situation. Choose either a FOR EACH loop or a WHILE loop, then explain why it suits this repetition.
Check your answer
A WHILE loop is appropriate because the number of attempts is unknown. Repetition continues while the password contains fewer than 12 characters.
INPUT password
WHILE LENGTH(password) < 12 DO
OUTPUT "Password must contain at least 12 characters"
INPUT password
ENDWHILE
Translate criteria into algorithm steps
Before writing pseudocode, break the problem into smaller jobs. Every criterion must be represented by one or more working steps in the algorithm.
Example criteria
- Read every sensor record.
- Identify readings above 80.
- Store the location of each high reading.
- Display the number of high readings.
Connect each criterion to a step
- Input the collection of sensor records.
- Initialise an empty list and a counter.
- Iterate through every record.
- Select records whose reading is above 80.
- Store their locations and increment the counter.
- Output the counter and stored locations.
Check for understanding
A review app stores a list of numerical ratings for each product. It must calculate the product's average rating. Some new products have an empty ratings list, so the algorithm must not attempt to divide by zero.
Analyse the requirement below before writing any pseudocode:
Display the average rating, or display “No ratings” when there are no reviews.
Write:
- the three variables needed to total, count and average the ratings
- the calculation used to find the average
- the condition that decides whether the calculation is safe.
Check your answer
- Variables:
totalRating,numberOfRatingsandaverageRating. - Calculation:
averageRating = totalRating / numberOfRatings. - Condition: calculate the average if
numberOfRatings > 0; otherwise displayNo ratings.
Lists and objects
A list is an ordered collection. An object groups related values under named keys. Digital solutions often store objects inside lists and lists inside objects.
stations = [
{"name": "North", "readings": [24, 31, 29]},
{"name": "South", "readings": [35, 38]}
]
stationsis a list.- Each station is an object.
station["name"]accesses a named value.station["readings"]accesses a nested list.
Accessing nested data
FOR EACH station IN stations DO
SET total = 0
FOR EACH reading IN station["readings"] DO
SET total = total + reading
ENDFOR
SET average = total / LENGTH(station["readings"])
OUTPUT station["name"], average
ENDFOR
The outer loop picks a station. The inner loop opens that station's readings and handles them one at a time.
Check for understanding
The current algorithm divides total by LENGTH(station["readings"]). Consider what happens when a station has no readings and the list length is zero.
Identify the error that could occur. Then recommend an IF statement that prevents it and displays No readings instead.
Check your answer
The algorithm could attempt to divide by zero. A suitable refinement is:
IF LENGTH(station["readings"]) > 0 THEN
SET average = total / LENGTH(station["readings"])
OUTPUT station["name"], average
ELSE
OUTPUT station["name"], "No readings"
ENDIF
Modularisation and library functions
Modularisation divides a larger problem into smaller, focused jobs. Library functions provide existing operations that can be reused when their documented inputs, outputs and purpose match the problem.
SET congestion = CalculateCongestion(sensorReadings)
SET safestRoute = FindSafestRoute(start, destination, hazards)
Check a function's inputs, output and purpose. A function called FindSafestRoute will not send an alert unless its description explicitly says so.
Useful comments
# Criterion: warn the user about unavailable routes
IF safestRoute = NONE THEN
OUTPUT "No safe route is available"
ENDIF
A useful comment explains intent or connects code to a criterion. A comment such as # Add one to count only repeats the instruction and adds little value.
Worked example: choosing suitable rooms
A venue needs to place a group in a suitable room. The algorithm must display every room big enough for the group, then count how many of those rooms are accessible.
BEGIN
INPUT rooms
INPUT groupSize
SET accessibleCount = 0
FOR EACH room IN rooms DO IF room["capacity"] >= groupSize THEN OUTPUT room["name"]
IF room["accessible"] = TRUE THEN
SET accessibleCount = accessibleCount + 1
ENDIF
ENDIF
ENDFOR
OUTPUT "Accessible suitable rooms:", accessibleCount END
Check for understanding
The venue algorithm is tested with a group of 18 people and the following room data:
rooms = [
{"name": "A1", "capacity": 20, "accessible": TRUE},
{"name": "B2", "capacity": 12, "accessible": TRUE},
{"name": "C3", "capacity": 30, "accessible": FALSE}
]
groupSize = 18
- Explain why
accessibleCountis initialised before the loop. - Explain why the accessibility selection is nested inside the capacity selection.
- Determine every value displayed by the algorithm.
Check your answer
- The counter needs a known starting value before it can be incremented. Initialising it before the loop also prevents it from being reset for every room.
- Only rooms with enough capacity are suitable. Nesting ensures that accessibility is counted only for suitable rooms.
- The algorithm displays
A1,C3andAccessible suitable rooms: 1.
Desk checking an algorithm
A desk check traces an algorithm manually using supplied test data and a table. Record every variable change, decision and output in sequence rather than jumping directly to the expected result.
| Iteration | room | capacity condition | accessible condition | accessibleCount | output |
|---|---|---|---|---|---|
| Initial | — | — | — | 0 | — |
| 1 | A1 | True | True | 1 | A1 |
| 2 | B2 | False | Not tested | 1 | — |
| 3 | C3 | True | False | 1 | C3 |
| Final | — | — | — | 1 | Accessible suitable rooms: 1 |
Key idea: The final answer is not enough. The trail of intermediate values is what exposes the bug.
Independent practice: event check-in
A community event uses a check-in app. Staff need to see who has arrived and receive an alert when a checked-in attendee is under 18. Attendees who have not checked in must not be displayed or included in the count.
The app receives these attendee records:
attendees = [
{"name": "Ari", "checkedIn": TRUE, "age": 17},
{"name": "Mika", "checkedIn": FALSE, "age": 22},
{"name": "Sam", "checkedIn": TRUE, "age": 31}
]
Available library function: SendAlert(message) sends a message to event staff.
Criteria
- Process every attendee.
- Display the name of each checked-in attendee.
- Count checked-in attendees who are under 18.
- If at least one checked-in attendee is under 18, use the library function to alert staff.
- Display the final under-18 count.
Develop and symbolise a complete algorithm in pseudocode. Add comments showing where each criterion is addressed. Then desk check the variables and output using the supplied data.
Expected output
Submit:
- one complete pseudocode algorithm
- one desk-check table showing the value of
under18Countduring every iteration - the names, alert and final count produced as output.
View a sample solution
BEGIN
INPUT attendees
SET under18Count = 0
Criterion: process every attendee
FOR EACH attendee IN attendees DO # Criterion: display each checked-in attendee IF attendee["checkedIn"] = TRUE THEN OUTPUT attendee["name"]
# Criterion: count checked-in attendees under 18
IF attendee["age"] < 18 THEN
SET under18Count = under18Count + 1
ENDIF
ENDIF
ENDFOR
Criterion: alert staff when required
IF under18Count > 0 THEN SendAlert("A checked-in attendee is under 18") ENDIF
Criterion: display the final count
OUTPUT "Checked-in attendees under 18:", under18Count END
| Iteration | name | checkedIn | age < 18 | under18Count | output/action |
|---|---|---|---|---|---|
| Initial | — | — | — | 0 | — |
| 1 | Ari | True | True | 1 | Ari |
| 2 | Mika | False | Not tested | 1 | — |
| 3 | Sam | True | False | 1 | Sam |
| After loop | — | — | — | 1 | SendAlert(...) |
| Final | — | — | — | 1 | Checked-in attendees under 18: 1 |
Cybersecurity and the CIA triad
Threats, vulnerabilities and risks
Cybersecurity protects digital systems, networks and data from harm. The harm may be deliberate, such as stealing records, or accidental, such as deleting a shared file. A power failure, faulty update or overloaded server can also create a security problem.
To investigate a scenario, separate three ideas:
- Threat: something that could cause harm, such as an attacker, fire or careless user.
- Vulnerability: a weakness that could be exploited, such as a shared password or missing backup.
- Risk: the possibility that a threat exploits a vulnerability and causes a consequence.
Spot the threat, weakness and risk
A club stores its membership database on one unprotected laptop. Match each item to threat, vulnerability or risk.
- The laptop is stolen.
- The laptop has no sign-in protection or encrypted storage.
- An unauthorised person may read members' addresses.
Check your answer
- Threat: theft of the laptop could cause harm.
- Vulnerability: the missing protections make access easier.
- Risk: private data may be disclosed, causing harm to members.
Confidentiality, integrity and availability
In cybersecurity, the CIA triad identifies three properties that data and systems should preserve.
| Property | The question to ask | A compromise |
|---|---|---|
| Confidentiality | Can only authorised people access the data? | A stranger views private medical results. |
| Integrity | Is the data accurate, complete and protected from unauthorised change? | A price is accidentally changed from $25 to $2. |
| Availability | Can authorised users access the data or service when needed? | A booking system is offline during enrolment. |
Classifying a compromise
- Who saw it? Think confidentiality.
- Who or what changed it? Think integrity.
- Could the right person use it at the right time? Think availability.
Check for understanding
Determine the main CIA property compromised in each incident.
- A student changes another student's attendance record.
- A flood damages the only server holding assessment files.
- A spreadsheet containing home addresses is emailed to the wrong group.
- A surge of traffic prevents customers from opening an online store.
Check your answer
- Integrity: the record has been changed without authorisation.
- Availability: authorised users cannot retrieve the only stored copy.
- Confidentiality: unauthorised recipients can view personal data.
- Availability: legitimate customers cannot access the service.
Constructing a risk analysis
Writing “confidentiality risk” names a category but does not show the reasoning. Build a short chain that connects evidence to a consequence.
Because [scenario evidence], [threat or event] could [what happens to the data or service], which compromises [CIA property] because [consequence for an authorised user, person or organisation].
Worked example
A sports club lets every volunteer use the same administrator account to view and edit member records.
Too vague: There is an integrity risk.
Analysed: Because every volunteer shares an administrator account, a volunteer could alter a member's payment status without the change being reliably attributed. This compromises integrity because staff may act on an inaccurate account balance.
Apply the risk-analysis structure
A school canteen app stores allergy details and account balances. At a busy event, staff record purchases on paper and update the app several hours later.
Analyse the scenario to determine one risk to data integrity. Produce one complete risk statement that includes:
- specific evidence from the scenario
- what could happen to the data
- why the consequence is an integrity problem.
View a sample solution
Because purchases are recorded on paper and entered several hours later, a transaction could be missed or entered incorrectly. This compromises integrity because the stored account balances may be inaccurate, so students could be charged the wrong amount.
One incident can have several effects
The triad is a thinking tool, not three sealed boxes. One incident may compromise several properties, but each claim needs its own cause and consequence.
Imagine ransomware that encrypts a medical clinic's patient files and sends a copy to an attacker:
- Confidentiality: the attacker possesses private patient data.
- Integrity: records may have been altered and can no longer be trusted.
- Availability: clinicians cannot access records needed for care.
Avoid this trap: Do not force all three properties into every scenario. Select only those supported by the evidence.
Identify each affected property
A malicious user deletes the only copy of a community centre's booking database after reading the contact details inside it. Analyse the incident and identify every CIA property directly compromised. Justify each choice with a different consequence.
Check your answer
- Confidentiality: an unauthorised user viewed customers' contact details, which exposes private information.
- Integrity: deletion is an unauthorised change to the stored data, so the database is no longer complete.
- Availability: staff cannot access booking information because the only copy has been deleted.
Privacy and confidentiality are different
Privacy concerns how personal information is collected, used, disclosed and managed, including people's expectations and rights. Confidentiality concerns preventing unauthorised access or disclosure.
A confidential dataset can still create a privacy concern. For example, an organisation might securely restrict access to location data but collect far more of it than its service needs. No outsider saw the data, yet the collection may still be inappropriate.
Privacy, confidentiality or both?
For each scenario, identify whether the main issue is confidentiality, privacy, or both.
- An employee posts a customer's private support message publicly.
- A fitness app collects precise location every minute even when its route feature is turned off, but keeps the data securely restricted.
- A clinic collects relevant health data for patient care, but an unauthorised contractor reads it.
Check your answer
- Both: personal information has been disclosed inappropriately and confidentiality has been compromised.
- Privacy: the concern is excessive collection, even though access remains restricted.
- Both: the collection has a legitimate purpose, but unauthorised access compromises confidentiality and the handling of personal information affects privacy.
Independent investigation: the late-night library
A public library launches an after-hours locker service. Members reserve items in an app, then enter a six-digit collection code at a locker terminal. Consider this system:
- The terminal displays the previous member's full name and borrowed titles until the next person enters a code.
- Staff sometimes mistype locker numbers when adding reservations manually.
- All locker terminals rely on one network connection. If it fails, no reserved item can be collected.
- Members need the service after the staffed library has closed.
On paper, analyse the scenario to determine one risk to each part of the CIA triad. For each risk, write:
- the relevant scenario evidence
- the event or data problem that could occur
- the consequence that justifies your classification.
View a sample solution
- Confidentiality: Because the terminal continues to display the previous member's name and borrowed titles, the next user can view information they are not authorised to access. This compromises confidentiality and could reveal sensitive reading interests.
- Integrity: Because staff manually enter locker numbers, a typing error could link a reservation to the wrong locker. This compromises integrity because the stored reservation would not accurately represent the item's location.
- Availability: Because every terminal depends on one network connection, a connection failure would prevent valid codes from being checked. This compromises availability because authorised members could not collect items when staff are unavailable to help.
Security strategies and their appropriate uses
Start with the vulnerability
A security strategy is appropriate when it addresses a particular weakness or threat. Naming a powerful-sounding technology is not enough.
Useful reasoning chain: vulnerability or threat → possible event → affected CIA property → strategy → how the strategy reduces the risk.
For example, if anyone can edit every record after signing in, stronger encryption does not fix the permission problem. Role-based access control does.
Choose the missing link
A sports centre encrypts bookings while they travel between its app and server. However, every staff account can change payment records.
Analyse the weakness. Is the most appropriate additional strategy encryption, a checksum or role-based access control? Justify your choice.
Check your answer
Role-based access control is most appropriate. It can restrict changes to payment records to authorised finance staff, reducing unauthorised changes and protecting integrity. Encryption in transit is already present, while a checksum could detect an accidental transmission error but would not decide who may edit a record.
Authentication: prove who or what you are
Authentication verifies a claimed identity before access is granted. It may authenticate a person, device, application programming interface (API) or server.
| Factor | Meaning | Example |
|---|---|---|
| Something you know | A secret remembered by the user | Password or PIN |
| Something you have | A device or token in the user's possession | Authenticator app or security key |
| Something you are | A biometric characteristic | Fingerprint or facial recognition |
Two-factor authentication (2FA) uses two different factor types. Multi-factor authentication (MFA) uses two or more. A password followed by a second password is two steps, but not two factors: both are something the user knows.
Verification codes and biometrics
A verification code from an authenticator app demonstrates possession of a registered device. A biometric comparison tests a physical or behavioural characteristic.
- Verification code: can be changed by re-registering the device, but the user needs access to it.
- Biometric: convenient and difficult to share casually, but false matches or rejections are possible and a biometric characteristic cannot be replaced like a password.
Avoid this trap: MFA reduces the risk of a stolen password being enough to enter an account. It does not encrypt data, remove malware or ensure that an authenticated user has appropriate permissions.
Check for understanding
Determine which sign-in process uses two different factors.
- Password followed by a PIN.
- Password followed by a code from an authenticator app.
- Fingerprint followed by facial recognition.
Check your answer
Option 2. The password is something the user knows and the authenticator code demonstrates something the user has. Option 1 uses two knowledge factors, while option 3 uses two biometric methods from the same factor type.
Authorisation: control what an identity may do
Authentication asks, “Who are you?” Authorisation asks, “What are you allowed to access or change?” Authorisation occurs after identity is established.
Role-based access control (RBAC) assigns permissions to roles rather than granting every user the same access.
| Role | View bookings | Edit own booking | Refund payments |
|---|---|---|---|
| Customer | Own only | Yes | No |
| Receptionist | All | All | No |
| Finance manager | All | All | Yes |
The principle of least privilege gives each identity only the access needed for its work. This limits both accidental damage and misuse of a compromised account.
Apply least privilege
A school event app has student, teacher and administrator roles. Students need to view events and save favourites. Teachers also publish notices. Only administrators approve new user accounts.
Recommend permissions for each role and justify why students should not receive administrator access.
View a sample solution
- Student: view events and manage their own favourites.
- Teacher: student permissions plus publish notices.
- Administrator: teacher permissions plus approve accounts.
Students do not need account-approval permission. With least privilege, a mistake or compromised student account cannot create unauthorised users, protecting confidentiality and integrity.
Encryption: make intercepted data unreadable
Encryption transforms plaintext into ciphertext using an algorithm and key. An authorised recipient uses the required key to decrypt it.
- Data in transit: encrypt data as it travels between a device, server or service.
- Data at rest: encrypt stored files, databases, devices or backups.
Encryption primarily supports confidentiality. It is appropriate when an unauthorised party might intercept a transmission or access stolen storage.
Limitation: encryption does not make an authorised user's actions correct. If an attacker steals a valid account or encryption key, they may still access data. Key management and authentication matter.
Symmetric and asymmetric approaches
| Approach | Keys | Useful feature | Challenge |
|---|---|---|---|
| Symmetric | The same secret key encrypts and decrypts. | Efficient for larger amounts of data. | The shared secret key must be exchanged securely. |
| Asymmetric | A public and private key form a pair. | The public key can be shared without revealing the private key. | Generally more computationally demanding. |
Real secure exchanges may combine both approaches: asymmetric techniques establish or protect a shared secret, then symmetric encryption efficiently protects the session data.
Check for understanding
A student sends assessment feedback through café Wi-Fi. Recommend a strategy for protecting the feedback while it is transmitted and explain its effect.
Check your answer
Use an encrypted connection between the student's device and the service. If network traffic is intercepted, the feedback is ciphertext rather than readable plaintext, reducing unauthorised disclosure and protecting confidentiality. The service must also authenticate the server so the student is not securely sending data to an impostor.
Hashing: create a one-way digest
A cryptographic hash function accepts input of any practical length and produces a fixed-length digest. A small input change should produce a very different digest.
- It is designed to be one-way: the original input is not decrypted from the digest.
- The same input produces the same digest with the same algorithm.
- Comparing digests can reveal that data has changed.
For password verification, a system stores a salted password hash rather than a decryptable password. At sign-in, it hashes the entered password with the stored salt and compares the result with the stored digest.
Encryption and hashing are not interchangeable: encrypt when authorised users must recover the original data; hash when the system needs a one-way fingerprint for comparison or verification.
Hashing and integrity
A sender can calculate a digest before transfer and the receiver can recalculate it afterwards. Different digests show that the data changed. However, a plain hash alone does not prove who created the data: an attacker who can replace both file and digest could make them match.
Select encryption or hashing
For each purpose, determine whether encryption or hashing is more appropriate.
- A clinic must recover and display a patient's stored notes.
- An app must check an entered password without storing the password itself.
- A recipient must detect whether a downloaded file differs from the expected file.
Check your answer
- Encryption: authorised staff must recover the original notes.
- Hashing: the entered password's salted digest can be compared without decrypting a stored password.
- Hashing: comparing digests can reveal a change to the file.
Checksums: detect transmission errors
A checksum is a value calculated from a block of data. The receiver recalculates it and compares the values. A mismatch indicates that the data was altered or corrupted during storage or transmission.
Checksums are useful for detecting accidental errors, such as a damaged packet. They do not hide the data and a simple checksum is not reliable protection against a malicious attacker who can alter both the data and checksum.
| Technique | Main purpose | Can recover original? | Hides content? |
|---|---|---|---|
| Encryption | Protect confidentiality | Yes, with the required key | Yes |
| Cryptographic hash | Create a one-way digest; help verify integrity | No | It does not transmit the original content |
| Checksum | Detect accidental corruption | No | No |
Layer strategies instead of searching for one fix
One strategy rarely addresses every risk. Defence in depth combines controls so that one failure does not expose the whole system.
For a payment exchange:
- server authentication helps the app recognise the intended server
- encryption protects payment details in transit
- MFA makes a stolen password less useful
- role-based access control restricts which staff can view refunds
- hashing supports password verification and change detection
- monitoring and audit logs help identify suspicious actions.
Be precise: a control usually reduces likelihood or impact; it does not guarantee that a breach is impossible.
Match controls to weaknesses
A community health portal has these weaknesses:
- Patients can sign in using only a reused password.
- Appointment details cross an untrusted network as readable text.
- Receptionists can open clinicians' private case notes even though their work does not require it.
- A transmitted booking sometimes arrives with digits missing.
For each weakness, recommend the most directly relevant strategy from MFA, encryption in transit, role-based access control or checksum. Justify each match.
Check your answer
- MFA: a stolen or reused password is not enough without a different factor, reducing unauthorised account access.
- Encryption in transit: intercepted appointment data is unreadable without the required key, protecting confidentiality.
- Role-based access control: receptionist permissions can exclude case notes, applying least privilege.
- Checksum: a recalculated value that does not match reveals accidental corruption during transmission.
Write a justified recommendation
A strong recommendation names the specific strategy, connects it to scenario evidence and explains the protective mechanism.
Recommend [specific strategy] because [evidence identifies the vulnerability]. It [explain the mechanism], which reduces [event or consequence] and protects [CIA property]. [Relevant limitation or supporting control].
Worked example
A tutoring app uses one shared staff login. Tutors need to view session times, but only the coordinator should change invoices.
Too vague: Use better security so hackers cannot enter.
Justified: Use individual accounts with role-based access control because the shared login gives every tutor the same permissions and actions cannot be reliably attributed. Give tutors read access to session times and reserve invoice changes for the coordinator. This reduces unauthorised or accidental changes and protects invoice integrity. MFA could additionally reduce account takeover, but it would not replace permission controls.
Independent practice: festival wallet
A school festival uses a mobile wallet. Students add funds before the event and scan a code at stalls. The proposed system has these characteristics:
- The app sends student identifiers and payment amounts to the server over the venue's shared wireless network.
- An account uses only an email address and password.
- Volunteers and finance staff have identical access to balances, refunds and personal details.
- The database currently stores each user's password as readable text.
- Occasional network faults corrupt a transaction packet before it reaches the server.
On paper, analyse the system and recommend four security strategies. For each recommendation:
- quote or paraphrase the relevant evidence
- name a specific strategy
- explain how it works in this context
- justify the CIA property it helps protect.
At least one response must address authentication, one must address authorisation and one must secure data transmission.
View a sample solution
- Encryption in transit: Because identifiers and payment amounts cross a shared wireless network, use an authenticated encrypted connection between the app and server. Intercepted traffic would be unreadable without the required key, protecting confidentiality.
- MFA: Because an account currently needs only an email address and password, require a second factor such as a code from a registered authenticator app. A stolen password alone would not authenticate the attacker, reducing unauthorised access to balances and personal details.
- Role-based access control: Because volunteers and finance staff have identical access, give volunteers only the permissions needed to accept payments and reserve refunds and broader personal data for finance staff. This applies least privilege and protects confidentiality and integrity.
- Salted password hashing: Because passwords are readable in the database, store a salted cryptographic hash and compare hashes during sign-in. A database disclosure would not directly reveal the original passwords. MFA remains valuable because weak passwords may still be guessed.
A checksum is also a valid additional recommendation for detecting the described accidental packet corruption. It would support integrity by flagging a mismatch so the packet could be rejected or retransmitted, but it would not provide confidentiality.
Data-flow diagrams and exchange-system relationships
What a data-flow diagram shows
A data-flow diagram (DFD) represents where data comes from, how a system transforms it, where it is stored and where it goes. It focuses on logical data relationships rather than screen layout, program-control order or network hardware.
Ask four questions: Who supplies or receives data? What process transforms it? Where is it stored? What data crosses each connection?
A DFD can contain physical objects and manual storage as well as digital data. For example, a library process may receive a book identifier, update a digital record and release a physical book from a shelf.
DFD or flowchart?
Determine which representation best suits each purpose.
- Show the decisions and repetition in an account-login algorithm.
- Show how login credentials move from a user to a verification process and user store.
Check your answer
- A flowchart or pseudocode is appropriate because the purpose is to show algorithm control and decisions.
- A DFD is appropriate because the purpose is to show data sources, transformation, storage and movement.
The four Gane–Sarson elements
QCAA Digital Solutions uses Gane–Sarson notation. Copy the shapes accurately enough that their different functions are unambiguous.
Examples of an external entity, process, data store and labelled directional data flow. Student External entity 1.0 Check booking Process D1 Bookings Data store booking request Labelled data flow; arrow shows direction| Element | Job | Naming convention |
|---|---|---|
| External entity | A source or destination outside the area being studied. | Noun, such as Student or Payment service. |
| Process | Transforms incoming data into outgoing data. | Verb or verb–object name, such as Check booking. |
| Data store | A repository holding data for later use. | Numbered noun, such as D1 Bookings. |
| Data flow | Shows data moving in the arrow's direction. | Noun describing the actual data, such as booking request. |
Classify each system component
A canteen ordering system includes a student, a process that calculates the order total, a collection of menu records and the order details sent into that process.
Recognise each DFD element and give it a suitable label.
Check your answer
- External entity: Student
- Process: 1.0 Calculate order total
- Data store: D1 Menu
- Data flow: order details
Name and number elements precisely
Good labels allow a reader to understand the system without guessing.
- Use nouns for entities, flows and stores: Customer, payment details, Orders.
- Use verbs or verb–object names for processes: Validate payment, Record order.
- Number processes: 1.0 Validate request, 2.0 Record booking.
- Number and type stores: D1 Accounts, M1 Paper forms, T1 Session cache.
| Prefix | Store type | Example |
|---|---|---|
| D | Data on disk, retained when power is off | D1 Accounts database |
| M | Manual data: physical files, paper records or manually processed digital data | M1 Consent forms |
| T | Temporary or transient data, not retained long-term | T1 Session cache |
Avoid vague labels: data, information, do booking and system hide the relationship. Name the actual data and transformation.
Repair the labels
A draft DFD uses Member for an entity, Bookings for a process, Save for a data store and data for a flow containing a requested date and room identifier.
Analyse the labels and rewrite the three unsuitable ones.
View a sample solution
- Member is already a suitable noun for the entity.
- Rename the process 1.0 Create booking to state its transformation.
- Rename the store D1 Bookings because a store uses a noun and identifier.
- Rename the flow date and room ID or booking request to identify its contents.
Connections must pass through a process
A process is the active element that transforms, validates, records or retrieves data. Therefore an external entity cannot exchange data directly with another external entity or a data store.
| Connection | Valid? | Reason |
|---|---|---|
| Entity → process | Yes | The process receives data to transform. |
| Process → store | Yes | The process writes data to storage. |
| Store → process | Yes | The process retrieves stored data. |
| Entity → store | No | Data must be processed first. |
| Entity → entity | No | That exchange is outside the represented system unless a process handles it. |
Use a separate arrow for each direction. A request and reply are different flows and should be labelled separately.
Find three convention errors
A draft diagram shows a Customer entity sending details directly to D1 Orders. The store sends stuff directly to a Kitchen entity. A process between them is named Order.
Analyse the draft and describe three corrections.
Check your answer
- Route the customer's order details through a process before D1 Orders.
- Route stored order data through a process before outputting a kitchen order to Kitchen.
- Rename and number the process with a verb–object label, such as 1.0 Record order.
Worked example: equipment loans
A student submits a student ID and equipment ID. The system checks the equipment record, stores an approved loan and returns either a collection notice or an unavailable notice.
A Student entity sends student ID and equipment ID to Check availability. That process reads equipment status from D1 Equipment. Available loan details go to Record loan, which writes a loan record to D2 Loans and sends a collection notice to the Student. Check availability can also send an unavailable notice to the Student. Student 1.0 Check availability D1 Equipment 2.0 Record loan D2 Loans student ID, equipment ID equipment ID equipment status approved loan details loan record collection notice unavailable noticeTrace the worked example
Do not merely list connected shapes. Explain what moves, in which direction, and what each process does with it.
- The Student sends a student ID and equipment ID to 1.0 Check availability.
- The process sends the equipment ID to D1 Equipment and receives the equipment status.
- If unavailable, the process returns an unavailable notice to the Student.
- If available, approved loan details flow to 2.0 Record loan.
- The second process writes a loan record to D2 Loans and sends a collection notice to the Student.
Explain a relationship
Explain the relationship between the Student entity and D2 Loans. Include any process between them.
View a sample solution
The Student supplies a student ID and equipment ID to Check availability. If D1 Equipment returns an available status, approved loan details pass to Record loan. Record loan then writes a loan record to D2 Loans and returns a collection notice to the Student. The Student does not access D2 Loans directly.
Explain relationships, not just arrows
An explanation should connect evidence from the complete path.
[Source] sends [named data] to [process]. The process [transformation] using [data read from a store, if relevant], then sends or stores [named output] in [destination].
If the diagram mixes manual, physical and digital flows, state that distinction. A paper consent form can be an M store; a physical item can flow from a manual store through a delivery process; a digital identifier can trigger that action.
Build the explanation
A volunteer sends a ticket code to 1.0 Validate ticket. The process reads valid-code data from D1 Tickets and returns an entry decision to the volunteer.
Explain the relationship between the Volunteer and D1 Tickets in two or three sentences.
View a sample solution
The Volunteer sends a ticket code to Validate ticket. That process uses the code to retrieve valid-code data from D1 Tickets, compares the records and returns an entry decision to the Volunteer. The process mediates the relationship, so the Volunteer does not read the store directly.
Data flow within and between systems
A digital solution may contain a front end, back end and database while also exchanging data with external services.
- Front end: collects input and presents output through the user interface.
- Back end: validates requests, applies rules and coordinates data exchange.
- Database: retains structured data.
- External service: another system outside the area of study, such as a weather or payment service.
Whether something is an external entity depends on the chosen system boundary. If the diagram studies a booking app, a payment service may be external. If it studies the payment provider itself, that provider contains processes and stores.
Do not draw technology for its own sake: a phone, Wi-Fi router or API is not automatically a DFD element. Represent a source, transformation, store or flow only when it helps explain the studied data process.
From scenario to DFD plan
A beach-safety app receives a location from a Beachgoer. Its back end sends the location to an external Weather service, receives current conditions, combines them with alert rules from a database and returns a safety message.
Before drawing, extract the elements:
- Entities: Beachgoer; Weather service
- Process: 1.0 Generate safety message
- Store: D1 Alert rules
- Flows: location, conditions request, current conditions, alert rules, safety message
Notice that conditions request and current conditions are separate arrows because they travel in opposite directions.
Check for understanding
Symbolise this scenario as a DFD on paper. Then check that every entity and store connects only through the process.
Check your answer
A correct diagram shows Beachgoer → location → 1.0 Generate safety message; the process → conditions request → Weather service; Weather service → current conditions → the process; D1 Alert rules → alert rules → the process; and the process → safety message → Beachgoer.
Develop a DFD systematically
- Set the system boundary: decide what is inside the area of study.
- Underline external sources and destinations.
- Circle transformations described by verbs.
- Identify retained, manual and temporary stores.
- List the actual data entering and leaving each process.
- Draw and number processes and stores.
- Add one labelled arrow for each direction.
- Trace every path and test the conventions.
Final convention check
- Does every process have at least one meaningful input and output?
- Does every arrow have a noun label and a clear direction?
- Do all entity and store flows pass through a process?
- Are processes named with verbs and numbered?
- Are stores numbered and correctly identified as D, M or T?
- Does the diagram show the scenario without inventing unsupported data?
Independent practice: community garden lockers
A community garden lends tools through secure lockers. A Member enters a membership code and tool ID at a terminal. The system must:
- check the membership code against retained member records
- check whether the requested tool is listed as available
- when both checks pass, record the loan and send an unlock instruction to the external Locker controller
- return a collection message or rejection reason to the Member
- store loans on disk so they remain after the terminal is turned off.
Use these required components:
- external entities: Member and Locker controller
- processes: Validate request and Record loan
- data stores: Members, Tools and Loans.
On paper, develop a complete Gane–Sarson DFD. Number all processes and stores, identify each store type, and label every flow with the data it carries. Then explain the relationship between the Member and Loans store.
View a sample solution
Elements and flows
- Member → membership code, tool ID → 1.0 Validate request
- 1.0 Validate request → membership code → D1 Members
- D1 Members → member status → 1.0 Validate request
- 1.0 Validate request → tool ID → D2 Tools
- D2 Tools → tool availability → 1.0 Validate request
- 1.0 Validate request → approved loan details → 2.0 Record loan
- 1.0 Validate request → rejection reason → Member
- 2.0 Record loan → loan record → D3 Loans
- 2.0 Record loan → unlock instruction → Locker controller
- 2.0 Record loan → collection message → Member
D1, D2 and D3 are disk stores because the scenario describes retained records.
Relationship explanation
The Member sends a membership code and tool ID to Validate request. That process checks member status from D1 Members and tool availability from D2 Tools. When both checks pass, approved loan details flow to Record loan, which writes a loan record to D3 Loans and returns a collection message. The Member therefore affects and receives confirmation of stored loan data through two processes rather than accessing the store directly.
User interfaces, useability and annotated mock-ups
User interface and user experience
A user interface (UI) is the point where a person interacts with a digital solution: screens, controls, labels, messages, sound and other inputs or outputs. User experience (UX) is the broader experience produced while using the solution, including how understandable, efficient, useful and reassuring it feels.
Key idea: An interface is not “good” in isolation. Its quality depends on the intended users, their context, the task and the success criteria.
A visually polished screen may still provide poor UX if a user cannot find the required function, understand a label, correct an error or operate a control.
Interface or experience?
A bus app contains a search field and a Find route button. A commuter completes the route search quickly and feels confident that the result is current.
Recognise the UI elements and the UX evidence.
Check your answer
The search field and button are UI elements. Completing the task quickly and feeling confident about the result are aspects of the user's experience.
The five useability principles
Useability describes how well users can interact with a solution. QCAA identifies five principles.
| Principle | Question to ask | Possible evidence |
|---|---|---|
| Accessibility | Can people with diverse abilities, needs and technologies perceive and operate it? | Keyboard access, readable contrast, text alternatives, clear language. |
| Effectiveness | Can users complete the intended task accurately and successfully? | Correct output, clear task path, useful search and filters. |
| Safety | Does the interface prevent harmful errors and support recovery? | Validation, confirmation, undo, warnings, protected destructive actions. |
| Utility | Does the solution provide the functions users actually need? | Required features exist and suit the context. |
| Learnability | How easily can a new or returning user understand what to do? | Familiar controls, consistent layout, descriptive labels and feedback. |
Avoid one-word answers: naming “effectiveness” does not evaluate anything. Identify interface evidence and explain its effect on a user completing a task.
Classify the main principle
Analyse each situation and identify the main useability principle affected.
- A booking form has pale grey text on a white background.
- A user can permanently delete all records with one accidental tap.
- A route app has no way to request wheelchair-accessible travel.
- A first-time user cannot tell whether a magnifying-glass icon searches or zooms.
- A worker must convert coordinates in another app before locating each job.
Check your answer
- Accessibility: low contrast makes text difficult to perceive.
- Safety: the interface does not prevent or support recovery from a harmful error.
- Utility: a function required by part of the intended user group is absent. Accessibility may also be relevant.
- Learnability: the control's meaning is unclear to a new user.
- Effectiveness: the interface delays the task and makes successful location unnecessarily difficult.
More than one principle may apply. Select the principle best supported by the stated cause and consequence.
Accessibility: remove barriers
Accessibility considers the range of people and technologies that may interact with a solution. A user might navigate with a keyboard, use a screen reader, magnify content, have reduced colour perception, experience limited dexterity or need plain language.
- Use clear text labels, not icons alone when meaning could be ambiguous.
- Provide meaningful alternatives for non-text content.
- Use sufficient contrast and readable text sizes.
- Do not communicate status using colour alone; add text or a symbol.
- Make controls operable without requiring precise pointer movement.
- Use a logical reading and focus order.
Accessibility is not a special mode added at the end. It should shape the interface and its programmed behaviour from the beginning.
Improve an inaccessible status
A task list shows overdue work only by changing its title from black to red. Recommend one refinement and Justify how it improves accessibility.
View a sample solution
Add an Overdue text label and warning symbol beside the title while retaining strong contrast. Users who cannot distinguish the colour change can still perceive the status, so the meaning no longer depends on colour alone.
Effectiveness and utility
These principles are related but answer different questions.
- Utility: Is the required tool or feature available?
- Effectiveness: Does the interface let the user achieve the intended result accurately and successfully?
A maintenance app might have a search feature, satisfying some utility. If it searches only meaningless file names while workers know street names, the feature is ineffective in context.
Separate the principles
A canteen app must allow students to identify meals containing allergens. It displays a list of meal names but provides no allergen information or filtering.
- Explain the utility problem.
- Explain how adding allergen labels and a filter could improve effectiveness.
Check your answer
- The interface lacks the required function or information for identifying allergen-safe meals, so it has poor utility for this task.
- Persistent allergen labels reveal relevant information and a filter reduces the list to suitable meals. Students can identify an appropriate option more accurately and directly, improving effectiveness.
Safety and error recovery
A safe interface reduces the chance and consequence of harmful user error. The design should help before, during and after an action.
| Stage | Interface support | Example |
|---|---|---|
| Prevent | Constraints, clear labels and suitable defaults | Disable Submit until required fields are valid. |
| Detect and explain | Specific validation and feedback | “Enter a date from today onwards” beside the date field. |
| Recover | Confirmation, cancel, undo or version history | Allow an archived record to be restored. |
Confirmation is selective: asking “Are you sure?” after every harmless action creates interruption and may train users to confirm without reading. Reserve strong friction for meaningful risk.
Design safe feedback
A volunteer records a medication delivery. The current form clears immediately after Save, even if the network request fails.
Recommend two UI refinements that protect safety and Justify each one.
View a sample solution
- Keep the entered values until the server confirms success, so a network failure does not silently remove information needed to retry.
- Display a specific success message with the recipient and time, or an error message with a retry control. The volunteer can distinguish a recorded delivery from a failed request and take the correct action.
Learnability and consistent interaction
Learnability improves when the interface makes actions predictable and reduces what users must remember.
- Use familiar controls for familiar actions.
- Keep navigation, terminology and control placement consistent.
- Prefer descriptive labels such as Save booking over vague labels such as Go.
- Show current status and provide immediate feedback.
- Reveal complexity when needed instead of crowding the first view.
A new user should be able to infer the next action from the interface. Instructions can support a design, but they should not compensate for unclear controls.
Check for understanding
A three-screen form places Next in the bottom right on screens one and two, but labels the same action Continue now in the top left on screen three.
Evaluate this choice using learnability and recommend a refinement.
View a sample solution
The changed wording and position break the interaction pattern, so users must search for and reinterpret the same action. Keep the label Next and its placement consistent, unless the final action has a genuinely different result such as Submit application.
Evaluate from evidence
A complete evaluation moves from observed evidence to a supported judgment.
Evidence: [specific interface feature or omission]. Effect: [what happens when a particular user completes a task]. Principle and judgment: therefore the interface has [strong/weak] [useability principle]. Refinement: [specific feasible change] would [expected improvement].
Worked example
A field-work app lists jobs only by internal file name and latitude/longitude. Workers know jobs by street address and often work where mobile data is unreliable.
Too vague: The app is ineffective and should have a better layout.
Evaluated: The list provides file names and coordinates rather than the street information workers use, forcing them to translate each location through another service. This causes delay and may fail without connectivity, so the interface is ineffective for locating jobs. Display a cached street address and allow searching or filtering by suburb and status so workers can find the correct job directly.
Evaluate two principles
A sports-centre kiosk asks users to enter a booking code. Its only instruction is a small placeholder reading code. After submission the screen does not change for ten seconds, and repeated taps create duplicate check-ins.
Evaluate the interface using two useability principles. For each, identify evidence, explain the effect and recommend a refinement.
View a sample solution
- Learnability: The vague placeholder does not explain the expected booking-code format, and it disappears while typing. A persistent label such as Six-character booking code plus an example would help first-time users understand the input.
- Safety: The absence of immediate processing feedback encourages repeated taps that create duplicate records. After the first tap, disable the button, show a progress status and accept only one request until success or failure is returned.
Low-fidelity mock-ups
A low-fidelity mock-up communicates layout, controls, content and interaction without requiring production styling. It should be quick to draw and easy to revise.
A useful mock-up shows:
- the screen boundary and a clear screen name
- the information users need at that point
- inputs, outputs, navigation and feedback
- important states, such as loading, validation error or success
- annotations that connect features to users, criteria and programmed behaviour.
Annotate decisions, not appearances: “Blue button” describes a surface. “Persistent labelled button submits the report and then displays success or a retryable error” explains purpose and interaction.
Worked annotated mock-up
A student needs to report a broken drinking fountain. The criteria require a location, a short description, an optional photo and clear submission feedback.
A mobile form with a screen title, location selection, issue description, optional photo, submit button and status region. Numbered callouts explain the design decisions. Report a broken fountain Location Choose a building or area ▾ What is wrong? Example: water will not stop Photo (optional) Add photo Submit report Status or field-specific error appears here 1 Screen title states the task,supporting learnability. 2 Location choices use familiarplace names, preventing invalidcoordinates. 3 Persistent label remains visible;example clarifies useful detail. 4 Action label describes the result.Disable after one press whilethe request is processed. 5 Status region confirms success orgives a specific error and retry,supporting safety and recovery.Connect the mock-up to programmed behaviour
The drawn control is only the visible part of a feature. Explain what data enters, what programmed action occurs and what output returns.
| UI element | Programmed behaviour | Visible response |
|---|---|---|
| Location list | Loads valid locations and stores the selected identifier. | Selected place name remains visible. |
| Submit report | Validates required values and sends one report request. | Field error, progress state, then success or retry message. |
An annotation such as “button saves data” is incomplete. Identify the data, validation, result and feedback that fulfil the criterion.
Design from criteria and user context
Translate every criterion into visible interface evidence or programmed behaviour.
| Criterion | Resulting design evidence |
|---|---|
| Users can find an event by suburb. | Labelled suburb filter; result count; clear-filter control. |
| Users can distinguish cancelled events. | Text label and symbol, not colour alone. |
| Users can recover from an accidental cancellation. | Confirmation containing the event name and a time-limited undo action. |
User characteristics also change the design. An outdoor worker wearing gloves may need larger controls and offline information. A young child may need concise language, images with text, audio support and immediate feedback. Do not rely on stereotypes: use characteristics provided by the scenario.
Independent practice: after-school activity check-in
A school needs a tablet interface for staff checking students into after-school activities. The tablet is used outdoors, sometimes with glare and unreliable internet. Relief staff may be using it for the first time.
Criteria
- Search for a student by name or student ID.
- Show the student's selected activity and emergency-contact status.
- Record one of three states: present, collected or absent.
- Prevent collected being recorded without confirmation.
- Make unsynchronised records clearly visible without using colour alone.
- Allow failed records to be retried when connectivity returns.
On paper, Symbolise one low-fidelity tablet screen that addresses every criterion. Add at least six numbered annotations. Each annotation must explain:
- the interface element
- its programmed behaviour or information
- the criterion or useability principle it supports.
Then Evaluate your mock-up against two different useability principles and Recommend one refinement.
View a sample solution
Possible screen components
- A persistent Search by student name or ID label, search field and clear control.
- A result card containing student name, ID, activity and emergency-contact status.
- Large, separated Present, Collected and Absent controls with text labels.
- A confirmation panel for Collected that names the student and offers Confirm and Cancel.
- A persistent synchronisation status using a symbol plus text such as Not synced.
- A retry control beside failed records and a message that preserves the locally stored state.
Example annotations
- The descriptive search label remains visible while typing, supporting first-time relief staff and learnability.
- Search accepts either name or ID, satisfying the search criterion and improving utility.
- The result card groups identity, activity and emergency-contact status so staff can confirm the correct student before acting, supporting safety.
- Large separated status controls support operation in glare and reduce accidental selection.
- The collected confirmation repeats the student's name before saving, reducing the consequence of selecting the wrong record.
- The Not synced text and symbol communicate status without colour alone, supporting accessibility.
- Retry sends the preserved local record when connectivity returns, supporting effectiveness rather than forcing re-entry.
Example evaluation
The design supports safety because staff confirm the named student before recording collection, reducing a high-consequence status error. It supports effectiveness because failed records remain visible and can be retried rather than lost during unreliable connectivity. A refinement would be to include a final filter showing all unsynchronised records, so staff can check that none remain before ending the session.
Cognitive verbs and constructing responses
The verb tells you what thinking to show
A cognitive verb is not an instruction about response length. It identifies the kind of thinking the response must make visible.
| Instruction | Thinking to show | Useful self-check |
|---|---|---|
| Recognise or identify | Select the correct feature, fact or category. | Did I name the requested thing precisely? |
| Explain | Connect cause, mechanism and result. | Did I show how or why? |
| Determine | Reach a conclusion from supplied information. | Is my conclusion supported by the scenario or calculation? |
| Justify | Prove why a choice or conclusion suits this context. | Did I connect evidence to the claimed benefit or consequence? |
| Evaluate | Judge quality against relevant criteria. | Did I make and support a judgment? |
| Symbolise | Use the requested conventions to represent relationships. | Did I use the correct form and labels? |
Avoid the definition dump: a memorised definition may provide background knowledge, but it does not automatically answer the specific scenario or verb.
Same topic, different demand
Consider a booking system that stores passwords as readable text.
- Recognise the main confidentiality vulnerability.
- Explain how the vulnerability could affect users.
- Recommend and Justify a suitable refinement.
Check your answer
- The system stores readable passwords.
- If the database is accessed without authorisation, the passwords are directly exposed and may also be used to enter users' other accounts.
- Store a salted cryptographic hash for each password because it supports verification without retaining the original password in readable or decryptable form. This reduces direct disclosure if password records are stolen.
Read the whole instruction
Questions often combine a cognitive verb with a quantity, content focus, source and response form.
Evaluate the interface to identify two useability principles that may cause errors. Justify each response using evidence from the scenario.
Turn that instruction into a checklist before writing:
- two different principles
- a judgment about each principle
- specific interface evidence for each
- an explanation of how each feature causes an error for the user.
Completing only the first verb leaves the reasoning unfinished. “Safety and effectiveness” identifies two principles but does not evaluate or justify them.
Decompose the instruction
Analyse the following instruction and write a four-item response checklist.
Recommend one new system feature and one new hardware component that improve pedestrian safety. Justify both recommendations.
Check your answer
- Recommend one system feature.
- Explain how that feature improves pedestrian safety in the scenario.
- Recommend one hardware component.
- Explain how that component enables or improves the safety outcome.
Use evidence, not invented assumptions
Scenario evidence is the bridge between knowledge and a response. Select a detail, interpret its significance and connect it to the requested concept.
A useful chain is:
Because [specific evidence], [event or mechanism] could [result], which means [consequence connected to the requested concept].
Worked example
A maintenance app lists jobs using random video file names and geographic coordinates. Workers recognise jobs by street name and report delays finding the correct record.
Weak: The app has poor effectiveness because it is confusing.
Evidence-based: Because the list uses file names and coordinates rather than the street names workers recognise, they must translate each location before selecting a record. This delays successful job identification, so the interface has poor effectiveness for the stated task.
Relevant inference or invention?
A community app runs on one server and must remain accessible during an emergency.
Determine which statement is supported by the scenario.
- The server will definitely fail because it is ten years old.
- A failure of the only server could make the app unavailable when residents need it.
- The developer forgot to install antivirus software.
Check your answer
Statement 2 is supported. The single server is evidence of a single point of failure, and emergency access establishes the consequence. The server's age and antivirus state were not supplied.
Explain by connecting cause and effect
An explanation reveals a relationship. It usually needs more than a description of separate facts.
| Response move | Example for MFA |
|---|---|
| Name the relevant feature | MFA requires evidence from more than one authentication factor. |
| Show the mechanism | After a password, the user supplies a code from a registered authenticator app. |
| Connect to the result | A stolen password alone is insufficient, reducing unauthorised account access. |
Words such as because, therefore, so and which causes can make reasoning visible, but the logic matters more than the connector.
Upgrade a description
The statement “A checksum is recalculated after transmission” describes an action. Explain how a checksum supports data integrity during transmission.
View a sample solution
The sender calculates a checksum from the data and sends it with the transmission. The receiver recalculates the checksum from the received data and compares the values. A mismatch reveals that the data changed or was corrupted, allowing it to be rejected or retransmitted rather than treated as accurate.
Justify a choice in context
A justification proves why a conclusion or recommendation is suitable. It should connect:
- the scenario need, vulnerability or criterion
- the specific choice
- how the choice works
- the resulting benefit, risk reduction or trade-off.
Test your justification: Could the same sentence be pasted into almost any scenario? If so, it probably needs more specific evidence.
Worked comparison
A school app gives students, visitors and administrators identical access to personal records.
Recommendation only: Use role-based access control.
Recommendation with justification: Use role-based access control because the three user groups require different functions. Restrict visitors to public information, students to their own records and administrators to authorised management tasks. This applies least privilege and reduces unauthorised disclosure or alteration of personal data.
Choose and justify
A clinic must send patient results across an untrusted network. Staff need to read the original results at the destination.
Recommend either encryption or hashing as the main protection for the transmitted content, then Justify your choice and explain why the other option is insufficient by itself.
View a sample solution
Use encryption in transit because authorised staff must recover the original patient results while preventing an interceptor from reading them. Encryption transforms the results into ciphertext that requires the appropriate key to decrypt, protecting confidentiality across the untrusted network. A hash can help detect a changed message but is one-way and does not hide a transmitted plaintext result.
Evaluate against a criterion
Evaluation requires a judgment, not merely a list of strengths and weaknesses. Name or infer the relevant criterion, test the evidence against it and reach a conclusion.
Criterion: what good performance means. Evidence: what the stimulus or result shows. Judgment: the extent to which the criterion is met. Refinement: a change that addresses the identified gap, when requested.
Worked evaluation
Criterion: A booking search should return the correct room within two seconds.
Evidence: Test 1 returned the correct room in 1.2 seconds. Test 2 returned the correct room in 3.8 seconds when 200 bookings existed.
Evaluation: The search is accurate in both tests but only partially meets the criterion because its response exceeds two seconds with the larger dataset. Indexing the searched database field should be investigated and the same large-data test repeated.
Make the judgment explicit
A mobile interface must allow outdoor workers to find a job without internet access. A test shows that previously opened jobs remain available offline, but unopened jobs display a blank screen.
Evaluate the interface against the criterion and Recommend a refinement.
View a sample solution
The interface only partially meets the criterion. Cached jobs can be found offline, but a worker cannot access any unopened job, so successful task completion depends on earlier use. Download the assigned job list and essential location details while connected, show when the data was last synchronised and provide a clear offline status rather than a blank screen.
Recommend a feasible refinement
A recommendation should address the diagnosed problem. “Make it more secure” or “improve the interface” does not say what must change.
| Problem | Weak recommendation | Specific recommendation |
|---|---|---|
| Users accidentally delete records. | Make deletion safer. | Replace immediate deletion with archive and a time-limited undo action. |
| One server causes an availability risk. | Buy better hardware. | Use a replicated service with automatic failover and test recovery. |
| A shared administrator account hides responsibility. | Add passwords. | Give staff individual accounts, least-privilege roles and attributable audit logs. |
Feasible does not mean perfect or unlimited. Consider the scenario's time, data, users, hardware, connectivity and existing components.
Symbolise in the requested form
Some responses communicate through conventions rather than prose. The verb and the named form both matter.
- DFD: use Gane–Sarson entities, numbered processes and stores, labelled directional flows, and valid connections.
- Pseudocode: use ordered, unambiguous logic with meaningful names and complete control structures.
- Annotated mock-up: show interface elements and explain their purpose, behaviour and connection to criteria.
- Data dictionary or specification: use the requested fields, types, formats, constraints and examples consistently.
Correct ideas in the wrong form may remain unclear: prose describing a DFD does not symbolise one, and a polished screen without annotations may not explain how criteria are addressed.
Choose the response form
Match each demand to the main response form.
- Symbolise data movement between a customer, payment process and orders store.
- Develop an algorithm that totals valid sensor readings.
- Symbolise and Explain interface features for reporting an error.
Check your answer
- A data-flow diagram using the required notation.
- Pseudocode showing input, validation, iteration, total and output.
- An annotated interface mock-up that shows the controls and explains their behaviour and purpose.
Plan, write and check
Before writing
- Box the cognitive verb or verbs.
- Underline the quantity, topic and scenario limits.
- Circle the requested response form or convention.
- List the evidence and make a checklist for compound demands.
While writing
- Lead with the requested conclusion, feature or judgment.
- Use precise subject terminology.
- Connect evidence to a mechanism and consequence.
- Keep each part traceable to the instruction.
Before finishing
- Tick every demand, quantity and required source.
- Remove repetition that adds no reasoning.
- Check diagram, pseudocode or table conventions.
- Confirm that pronouns such as it have an unambiguous meaning.
Independent practice: event-alert system
A community event app sends severe-weather alerts. Consider this evidence:
- Alerts are displayed only as red text at the bottom of the home screen.
- Every volunteer uses one shared administrator account.
- Weather data is updated every 30 minutes.
- The criterion states that a severe warning must be visible and announced within five minutes of receipt.
- In a test, a warning arrived from the weather service at 14:02 and appeared in the app at 14:28. No sound or notification was produced.
On paper, complete all three responses.
- Evaluate the alert interface against accessibility and the timing criterion. Use evidence to support both judgments.
- Determine one confidentiality or integrity risk created by the account design and Justify your conclusion.
- Recommend two specific refinements: one for the alert interface and one for account access. Justify each recommendation.
View a sample solution
- The interface has weak accessibility because severity is communicated only with red text, which some users may not distinguish, and the bottom-screen position may be missed. It also fails the timing criterion: the warning received at 14:02 appeared at 14:28, a delay of 26 minutes rather than no more than five minutes, and was not announced.
- The shared administrator account creates an integrity risk because any volunteer can change alert data and the action cannot be reliably attributed to an individual. Incorrect or malicious changes may therefore be harder to detect and investigate.
- Use an interruptive alert containing a warning symbol, text heading and optional sound or device notification, triggered when the warning is received rather than at the next 30-minute refresh. Multiple visual and audio cues improve accessibility and allow the five-minute criterion to be met. Replace the shared account with individual authenticated accounts and role-based permissions so volunteers receive only necessary access and actions can be attributed, reducing unauthorised changes.
Reading criteria and interpreting unseen stimulus
Unseen does not mean unknowable
Unseen stimulus gives you a new context, not a new subject. Your job is to connect supplied evidence with familiar Digital Solutions concepts.
First principle: build your answer from the stimulus and the question, then apply subject knowledge. Do not replace supplied evidence with a memorised response about a similar system.
Expect useful information to be distributed across a scenario, criteria list, diagram, table, interface, pseudocode or data sample. A relationship may only become clear when two sources are combined.
Fact or assumption?
A locker app uses a six-digit code and depends on one network connection. Determine which statement is directly supported.
- The code is encrypted with AES.
- A network failure could prevent code verification.
- Every user has a weak password.
Check your answer
Statement 2. The single network dependency supports an availability risk. The encryption method and user passwords were not described.
Classify what you read
| Information type | What it tells you | Example |
|---|---|---|
| Fact | A stated feature, event or condition | The app refreshes every 20 minutes. |
| Requirement | What the solution must do or how well it must perform | Display a warning within five minutes. |
| Criterion | Observable evidence used to judge success | A test warning appears within 300 seconds. |
| Constraint | A limit on possible solutions | Existing school tablets must be used. |
| Test evidence | What occurred when a component was tested | The warning appeared after 18 minutes. |
A test result only becomes meaningful when compared with a criterion. Eighteen minutes is neither good nor bad until the required time is known.
Sort a short stimulus
A school has six weeks to create a web app using its existing server. The app must return matching resources within two seconds. A test with 1000 records takes 3.4 seconds.
Recognise one time constraint, one technical constraint, one criterion and one test result.
Check your answer
- Time constraint: six weeks.
- Technical constraint: use the existing server.
- Criterion: matching resources returned within two seconds.
- Test result: 3.4 seconds with 1000 records.
Turn criteria into observable checks
A useful criterion states the expected behaviour, relevant condition and observable result. Vague goals such as “easy to use” are difficult to test.
| Vague statement | Observable criterion |
|---|---|
| Search is fast. | For 5000 records, a valid search displays matching results within two seconds. |
| Errors are clear. | Each invalid required field displays a specific message beside that field without deleting valid input. |
| Data is protected. | A student account cannot view or change another student's private record. |
Make it testable
The requirement says, “The interface must clearly show offline records.” Interpret this as one observable criterion.
View a sample solution
When the device is offline, each unsynchronised record displays an icon and the text “Not synced”, and remains available for retry when connectivity returns.
Read across sources
Use a reference map when evidence is spread across formats.
- Identify the named component in the question.
- Find it in each relevant source.
- Trace identifiers, labels and flows that connect the sources.
- Record only facts that help answer the question.
For example, a mock-up may show a Save report button, pseudocode may show the validation it triggers, and a data dictionary may reveal which fields are required. Together they explain the complete feature.
Match exact identifiers: an ID may connect a user-interface selection, JSON object, database record and DFD flow even when their layouts look unrelated.
Combine three sources
A mock-up contains a required room list and Submit button. A data specification states room_id: INTEGER, required. Pseudocode checks that room_id exists before saving.
Explain how the three components work together.
Check your answer
The user selects a room through the list, which supplies the required integer room_id. When Submit is activated, the programmed component checks that the identifier exists before writing the record. The UI, data constraint and validation therefore enforce the same requirement at different parts of the solution.
Annotate with a purpose
On paper, use a small set of consistent marks rather than highlighting everything.
- Box cognitive verbs and requested quantities.
- Underline criteria and constraints.
- Circle named entities, processes, fields or functions.
- Use short margin labels such as C for confidentiality or EV for evaluation evidence.
- Draw a line between matching identifiers across sources.
Annotations should reduce rereading. If every sentence receives the same mark, no information has been prioritised.
Build an evidence table
A useful scratch table can keep reasoning aligned:
| Demand | Evidence | Meaning | Conclusion |
|---|---|---|---|
| Evaluate availability | Only server; no offline mode | One failure blocks all access | Weak availability |
Resolve apparent contradictions
Two pieces of stimulus may describe different states or conditions rather than truly conflict.
- A requirement describes the intended result; a test result describes actual behaviour.
- A DFD shows logical movement; a network diagram shows physical connections.
- A mock-up shows a proposed interface; a screenshot may show the current interface.
- A general rule may be narrowed by a scenario-specific constraint.
State the distinction explicitly. For example: “The criterion requires five minutes, but the observed 18-minute result shows the current implementation does not meet it.”
Independent practice: library collection lockers
Read this unfamiliar system description.
- Members reserve books in a mobile app and collect them after hours.
- The app displays a six-digit collection code.
- A locker terminal requires a continuous network connection to verify the code.
- The criterion states that an authorised member can open the correct locker within 20 seconds.
- Test A: a valid code opens the correct locker in 12 seconds.
- Test B: during a network interruption, the terminal displays a spinning icon for 90 seconds and does not open.
- The terminal keeps the previous member's name and book title visible until another code is entered.
- Staff manually copy locker numbers from a spreadsheet into the reservation system.
On paper:
- Recognise one functional requirement, one criterion and two pieces of test evidence.
- Evaluate the system against the 20-second criterion.
- Determine one confidentiality, one integrity and one availability risk. Support each with different evidence.
- Explain why the two test results do not contradict each other.
View a sample solution
- Functional requirement: verify a collection code and open the correct locker. Criterion: an authorised member opens it within 20 seconds. Evidence: 12 seconds with a valid code and no opening after 90 seconds during interruption.
- The system meets the criterion under the connected condition in Test A but fails during the interruption in Test B. It therefore does not reliably meet the criterion across the described operating context.
- Confidentiality: the previous member's name and title remain visible to the next person. Integrity: manually copying locker numbers may create a wrong reservation-to-locker link. Availability: the continuous network dependency prevents authorised collection during an interruption.
- The tests use different network conditions. Test A demonstrates successful behaviour while connected; Test B reveals failure when the required connection is unavailable.
JSON and structured data
Structured data has an organised shape
Structured data follows a predictable organisation so programs can locate, filter and transform values. JSON (JavaScript Object Notation) is a text format commonly used to exchange data between systems and applications.
{
"event_id": 42,
"name": "Robotics showcase",
"cancelled": false,
"tags": ["technology", "community"]
}
Key idea: JSON carries data, not behaviour. A program decides how to validate, store, display or act on the values.
Objects, arrays, keys and values
| Part | Purpose | Notation |
|---|---|---|
| Object | Groups named key–value pairs | { } |
| Array | Stores an ordered collection of values | [ ] |
| Key | Names a value within an object | Double-quoted string followed by : |
| Value | Holds the data | String, number, Boolean, null, object or array |
Read the structure
{
"station": "North",
"readings": [18, 21, 19],
"active": true
}
Recognise the object, its three keys, the array and each value's type.
Check your answer
The outer braces contain one object. Its keys are station, readings and active. "North" is a string; [18, 21, 19] is an array containing three numbers; and true is a Boolean.
JSON value types
- String: text inside double quotes, e.g.
"open". - Number: an integer or decimal without quotes, e.g.
27or3.5. - Boolean: lowercase
trueorfalse. - Null: lowercase
null, meaning no value is supplied. - Object: nested named values inside braces.
- Array: an ordered collection inside square brackets.
A quoted number such as "27" is a string. Its appearance does not change its type.
Choose suitable types
Determine a suitable JSON type for an attendee name, ticket price, checked-in state, optional accessibility note and list of session IDs.
Check your answer
- Name: string
- Ticket price: number
- Checked-in state: Boolean
- Missing optional note: null; otherwise a string
- Session IDs: array, normally containing strings or numbers consistently
Valid JSON syntax
- Keys and string values use double quotes.
- A colon separates a key from its value.
- A comma separates pairs or array items, but no comma follows the final item.
- Braces and brackets must be balanced and correctly nested.
- Comments and
undefinedare not part of standard JSON.
Do not confuse a programming-language object with JSON text: some languages allow single quotes, unquoted keys or trailing commas. Standard JSON does not.
Repair malformed JSON
{
event_id: 7,
"title": 'Night market',
"open": True,
"stalls": [12, 15,],
}
Analyse the data and rewrite it as valid JSON.
Check your answer
{
"event_id": 7,
"title": "Night market",
"open": true,
"stalls": [12, 15]
}The key needed quotes, the string needed double quotes, the Boolean needed lowercase, and both trailing commas were removed.
Nested objects and arrays
{
"venue": {
"name": "River Hall",
"address": {"suburb": "West End", "postcode": "4101"}
},
"sessions": [
{"session_id": 1, "places": 0},
{"session_id": 2, "places": 8}
]
}
Read a path one container at a time. The postcode path is venue → address → postcode. The second session's places path is sessions → item 2 → places.
Trace the paths
Determine the suburb, the first session ID and the number of places in the second session.
Check your answer
Suburb: West End; first session ID: 1; second session places: 8.
Collections of records
An API response often wraps an array of consistently shaped objects.
{
"results": [
{"id": 101, "suburb": "Nundah", "status": "open"},
{"id": 102, "suburb": "Nundah", "status": "closed"},
{"id": 103, "suburb": "Milton", "status": "open"}
],
"result_count": 3
}
Consistency matters. The same concept should normally use the same key name and compatible type in every record.
Filter the records
Develop language-independent pseudocode that outputs the ID of each open Nundah record.
View a sample solution
FOR EACH record IN data["results"] DO
IF record["suburb"] = "Nundah" AND record["status"] = "open" THEN
OUTPUT record["id"]
ENDIF
ENDFORThe output is 101.
Parse, validate, transform and serialise
- Receive: obtain JSON text from a file, message or API.
- Parse: convert the text into an internal object or collection.
- Validate: check required keys, types, formats and allowed values.
- Transform: filter, calculate, rename, group or combine data.
- Serialise: convert internal data back into JSON text for exchange.
Valid syntax does not guarantee valid data. {"places": -9} is syntactically valid but may break a rule that places cannot be negative.
Validate before use
A booking requires booking_id as a positive integer, email as a non-empty string and confirmed as a Boolean.
{"booking_id": "24", "email": "", "confirmed": "false"}
Analyse the record against the rules.
Check your answer
booking_idis a string rather than an integer.emailis present but empty.confirmedis a string rather than the Booleanfalse.
Design data for exchange
Choose keys that are meaningful, consistent and unambiguous. Avoid mixing display labels with stable identifiers.
- Use
student_idto identify a student reliably, even if their displayed name changes. - Choose one naming convention, such as
snake_case, and apply it consistently. - Represent repeated items as an array rather than numbered keys such as
item1anditem2. - Do not include sensitive fields unless the receiver needs them.
- Document units and date formats in the data specification.
Explain a design choice
Explain why an array is more suitable than the keys tag1, tag2 and tag3 for storing an unknown number of tags.
Check your answer
An array can contain zero, one or many tags under one predictable key. A program can iterate through it without guessing which numbered keys exist, and the structure does not need a new field when another tag is added.
Independent practice: community workshops
{
"generated_at": "2026-08-05T09:30:00+10:00",
"workshops": [
{
"workshop_id": 11,
"title": "Bike repair",
"venue": {"name": "Shed A", "accessible": true},
"capacity": 16,
"booked": 16,
"tags": ["practical", "transport"]
},
{
"workshop_id": 12,
"title": "Native gardens",
"venue": {"name": "Courtyard", "accessible": false},
"capacity": 20,
"booked": 13,
"tags": ["outdoors"]
}
]
}
- Describe the outer structure and the structure of one workshop.
- Determine the path to the second workshop's accessibility value.
- Develop pseudocode that outputs the titles of accessible workshops with at least one place remaining.
- Explain why
workshop_idshould be retained when sending a selected workshop back to the server.
View a sample solution
- The outer object has a timestamp and a
workshopsarray. Each workshop is an object containing scalar values, a nested venue object and a tags array. workshops → item 2 → venue → accessible, which isfalse.
No title is output: the accessible workshop is full.FOR EACH workshop IN data["workshops"] DO SET placesRemaining = workshop["capacity"] - workshop["booked"] IF workshop["venue"]["accessible"] = TRUE AND placesRemaining > 0 THEN OUTPUT workshop["title"] ENDIF ENDFOR- The stable identifier lets the server locate the exact record even if workshop titles are duplicated or later changed.
Data dictionaries and specifications
A shared description of data
A data dictionary or specification documents what each data item means and how it must be represented. It helps user interfaces, algorithms, databases and exchanged messages agree.
Key idea: A field name and type are a start, not a complete specification. Meaning, format, requirement, allowed values and examples remove ambiguity.
| Field | Type | Required | Rule | Example |
|---|---|---|---|---|
booking_id | INTEGER | Yes | Unique; positive; generated by system | 1842 |
status | VARCHAR | Yes | One of pending, confirmed, cancelled | confirmed |
Choose data types by meaning and use
| Type | Suitable for | Example |
|---|---|---|
| INTEGER | Whole-number quantities and generated identifiers | capacity = 30 |
| DECIMAL | Values requiring a fractional part | price = 12.50 |
| VARCHAR | Variable-length text and identifier-like digits not used in arithmetic | postcode = "0400" |
| BOOLEAN | Two-state values | accessible = true |
| DATE / DATETIME | Dates and timestamps that must be sorted or compared | 2026-08-05T14:30:00+10:00 |
Digits do not guarantee a numeric type: phone numbers, postcodes and licence numbers are identifiers. Arithmetic is not meaningful, and leading zeroes may matter.
Choose types
Determine suitable types for student_name, attendee_count, paid, start_time and phone_number.
Check your answer
VARCHAR, INTEGER, BOOLEAN, DATETIME and VARCHAR respectively.
Names should reveal meaning
- Use one concept per field:
first_nameandfamily_nameif they must be processed separately. - Include units when otherwise ambiguous:
duration_minutes. - Use consistent conventions: do not mix
eventID,event_idandEventId. - Use stable identifiers:
venue_idshould not be replaced by a changeable venue name. - Avoid vague fields such as
data,valueortypewithout context.
Improve the names
A sensor table contains id, value, time and ok. The value is temperature in degrees Celsius, and ok records whether calibration is valid.
Recommend clearer field names.
View a sample solution
sensor_id, temperature_celsius, recorded_at and calibration_valid.
Constraints and validation rules
A constraint limits stored values. Validation checks input against those rules.
- Required: a value must be supplied.
- Range: a number or date lies within stated limits.
- Length: text has an allowed size.
- Format: data follows an agreed pattern.
- Allowed values: a value belongs to an enumerated set.
- Uniqueness: no other record uses the same value.
- Referential: a foreign identifier matches an existing related record.
Validation checks plausibility and rule compliance; it does not prove truth. A correctly formatted but mistyped email may pass validation.
Validation and verification
Validation tests data against rules. Verification checks that data was transferred or entered as intended, such as comparing an entry with its source.
A date picker can validate that a booking is not in the past. A confirmation screen can help the user verify that the selected venue and date match their intention.
Classify each check
- An email must contain a non-empty local part and domain.
- A staff member compares a scanned consent form with the entered record.
- A password is entered twice and the values must match.
Check your answer
- Validation: format rule.
- Verification: comparison with the source.
- Verification: matching entries reduces transcription error, although it does not prove the chosen password is appropriate.
Keys and relationships
A primary key uniquely identifies a record in its table. A foreign key stores the primary-key value of a related record.
VENUE(venue_id, venue_name, suburb)
BOOKING(booking_id, venue_id, booking_date, attendee_count)
VENUE.venue_id identifies a venue. BOOKING.venue_id links each booking to an existing venue without repeating the venue's name and suburb in every booking.
Referential integrity: a booking should not contain a venue_id that does not exist in VENUE.
Explain the relationship
Explain why venue_id is preferable to storing only venue_name in BOOKING.
Check your answer
A stable identifier links the booking to one exact venue even if names are duplicated or later changed. Venue details remain in one record, reducing repeated data and inconsistent updates.
Specifications across a solution
The same rule should remain compatible across UI, JSON, algorithms and database storage.
| Component | Implementation of status |
|---|---|
| UI | Select list containing pending, confirmed and cancelled |
| JSON | "status": "confirmed" |
| Validation | Reject values outside the allowed set |
| Database | Non-null text field with an allowed-value constraint |
Evaluate fitness for purpose
A specification is useful only if it stores the data required to answer questions and perform processes.
A dataset has region, licence_type, valid_licence and registration_date. It must track how one licence changes between active, suspended and expired over time.
Evaluate the specification and Recommend a refinement.
View a sample solution
The Boolean valid_licence cannot distinguish active, suspended and expired, and no stable licence identifier connects records over time. Add licence_id as a unique VARCHAR and replace the Boolean with licence_status, restricted to the required status values. This allows changes for the same licence to be grouped and compared.
Independent practice: equipment loans
Design a data dictionary for a school equipment-loan record. The system must identify the loan, link it to an existing student and item, record checkout and optional return times, store item condition as good, damaged or missing, and record whether staff have checked the return.
Determine a field name, data type, required state, constraint and example for each item. Then Justify the types used for the student identifier and checked state.
View a sample solution
| Field | Type | Required | Rule | Example |
|---|---|---|---|---|
loan_id | INTEGER | Yes | Unique, positive | 408 |
student_id | VARCHAR | Yes | Existing student | S00421 |
item_id | VARCHAR | Yes | Existing item | CAM-12 |
checked_out_at | DATETIME | Yes | Valid timestamp | 2026-08-05T09:20:00+10:00 |
returned_at | DATETIME | No | Null or not before checkout | null |
condition | VARCHAR | Yes | good, damaged or missing | good |
return_checked | BOOLEAN | Yes | true or false | false |
student_id is VARCHAR because it contains a letter and identifies rather than measures. return_checked is Boolean because it has exactly two states.
Australian Privacy Principles
Privacy principles govern a data lifecycle
The Privacy Act 1988 includes 13 Australian Privacy Principles (APPs). They govern standards, rights and obligations for handling personal information by organisations and agencies covered by the Act, called APP entities.
Important: The APPs are principles-based and technology neutral. Apply the relevant principle to the evidence rather than assuming that every organisation or every scenario is covered in exactly the same way.
This page supports Digital Solutions analysis, not legal advice. The Office of the Australian Information Commissioner provides the current official guidance.
What counts as personal information?
Personal information is information or an opinion about an identified individual, or an individual who is reasonably identifiable. Context matters: several ordinary data points may identify someone when combined.
- Name, address, account ID and identifiable photo may be personal information.
- Location history or device data may become personal information when linked to a person.
- Sensitive information includes particular higher-risk categories and generally receives stronger protection.
- De-identified data has identifying information removed or altered so individuals are no longer reasonably identifiable; removing only names may be insufficient.
Personal, sensitive or de-identified?
Analyse these examples.
- A named student's allergy record.
- A public count of 318 visits with no individual records.
- A dataset without names that contains exact birth date, postcode and rare medical condition.
Check your answer
- Personal and sensitive information.
- Aggregated data that is likely de-identified if no individual can reasonably be identified.
- Potentially identifiable personal and sensitive information because the combination may single out a person. Removing names alone does not guarantee de-identification.
The 13 APPs at a glance
| Stage | APP | Focus |
|---|---|---|
| Consider privacy | 1 | Open and transparent management of personal information |
| 2 | Anonymity and pseudonymity | |
| Collect | 3 | Collection of solicited personal information |
| 4 | Dealing with unsolicited personal information | |
| 5 | Notification of collection | |
| Use and disclose | 6 | Use or disclosure of personal information |
| 7 | Direct marketing | |
| 8 | Cross-border disclosure | |
| 9 | Government-related identifiers | |
| Maintain integrity | 10 | Quality of personal information |
| 11 | Security of personal information | |
| Individual rights | 12 | Access to personal information |
| 13 | Correction of personal information |
APPs 1 and 2: plan and be transparent
APP 1 concerns open and transparent management, including an up-to-date privacy policy and practices for handling inquiries or complaints. APP 2 concerns giving individuals the option of anonymity or a pseudonym where practicable, subject to limited exceptions.
A public event timetable may not need a user's identity just to show session times. A personalised ticket purchase may require information to complete the transaction.
Is identity necessary?
A council feedback form requires full name, date of birth and a verified account before a person can suggest a new park bench location.
Determine the most relevant APP concern and Explain why.
View a sample solution
APP 2 is relevant because the task appears capable of accepting anonymous or pseudonymous feedback. Requiring verified identity and birth date may be unnecessary unless the council can establish a particular need or legal requirement.
APPs 3, 4 and 5: collect carefully
- APP 3: concerns when solicited personal information may be collected, with higher standards for sensitive information.
- APP 4: concerns personal information received without being requested and whether it could have been collected; information may need to be destroyed or de-identified where lawful and reasonable.
- APP 5: concerns taking reasonable steps to notify people about collection matters, such as who is collecting, purpose and likely disclosures.
Data minimisation: collect only information reasonably needed for the purpose. “It might be useful later” is not a specific purpose.
Analyse collection
A workshop booking needs a name and contact method. The form also requires annual income, precise live location and a medical history without explaining why.
Analyse the collection using APPs 3 and 5.
View a sample solution
The name and contact method have a clear booking purpose. The other fields appear excessive for that purpose, and medical history is sensitive. The collection notice should explain the collector, purpose and handling, but notification alone does not make unnecessary collection appropriate.
APPs 6 to 9: control use and disclosure
- APP 6: limits use or disclosure for another purpose unless an exception applies, such as consent or a related expected purpose in relevant circumstances.
- APP 7: sets conditions around direct marketing and mechanisms to stop receiving it.
- APP 8: concerns reasonable steps before disclosing personal information overseas and possible accountability for handling by the recipient.
- APP 9: limits adopting, using or disclosing government-related identifiers as an organisation's own identifier.
Purpose is central. Information collected to deliver a service should not silently become unrestricted material for an unrelated purpose.
Primary and secondary purposes
A sports app collects an email to send booking confirmations. It later supplies emails and exercise histories to an unrelated advertiser.
Determine the primary and secondary purposes and the main APP concern.
Check your answer
The primary purpose is managing bookings and confirmations. Advertising is a secondary purpose, and disclosure to the unrelated advertiser raises an APP 6 concern. APP 7 may also be relevant to direct marketing. A complete legal conclusion would depend on facts such as notice, consent, expectations and applicable exceptions.
APPs 10 and 11: quality and security
APP 10 concerns reasonable steps to ensure personal information is accurate, up to date, complete and relevant for its use or disclosure. APP 11 concerns reasonable steps to protect information from misuse, interference, loss and unauthorised access, modification or disclosure.
APP 11 also includes considering destruction or de-identification when personal information is no longer needed, subject to exceptions such as legal retention requirements.
| Evidence | Main concern | Possible design response |
|---|---|---|
| Old emergency contact is used | APP 10 quality | Prompt review and show last-confirmed date |
| All staff can export every record | APP 11 security | Least-privilege access, authentication and audit logs |
| Obsolete copies retained indefinitely | APP 11 lifecycle | Documented retention and secure disposal process |
APPs 12 and 13: access and correction
APP 12 concerns an individual's access to personal information held about them. APP 13 concerns reasonable steps to correct information that is inaccurate, out of date, incomplete, irrelevant or misleading for the purpose for which it is held.
Access does not mean every person can browse all records. It concerns an individual accessing information about themselves through an appropriate process, subject to applicable grounds and procedures.
Design for rights
A membership app displays a wrong date of birth but has no correction request or privacy contact.
Recommend a refinement and Justify it using APP 13.
View a sample solution
Provide an authenticated correction-request process and visible privacy contact. It should identify the field, accept supporting information where appropriate and communicate the outcome. This supports reasonable correction of inaccurate information and prevents the wrong birth date continuing to affect decisions.
Construct an APP analysis
Evidence: what information is handled and what happens to it. Principle: the most relevant APP and its focus. Consequence: why the handling matters to the person. Refinement: a specific change that addresses the issue.
Avoid absolute legal claims: stimulus may not establish whether an entity is covered or whether an exception applies. State what the evidence raises or suggests unless the necessary facts are supplied.
Independent practice: youth activity platform
A community organisation's platform:
- requires exact birth date and home address to view a public activity timetable
- shows a brief notice saying only “We collect data”
- uses booking emails to advertise an unrelated paid service
- lets every volunteer download participant contact and health details
- retains cancelled-account data without a documented reason or review date
- provides no way for a participant to view or correct their information.
Analyse four different issues. For each, identify the evidence, relevant APP, possible consequence and a specific refinement.
View a sample solution
- APPs 2 and 3: requiring identity details merely to view a public timetable appears unnecessary. Permit anonymous access and collect booking data only when needed.
- APP 5: the notice does not explain collection purpose and handling. Provide a clear collection notice at or before collection.
- APPs 6 and 7: unrelated advertising is a secondary use and direct marketing concern. Separate the purpose, consider applicable permission and provide a clear way to stop marketing.
- APP 11: every volunteer can export sensitive and contact data. Apply individual authentication and least-privilege roles, with access limited to necessary records.
- APP 11: indefinite retention increases exposure. Establish lawful retention rules and securely destroy or de-identify information no longer needed.
- APPs 12 and 13: provide processes for authenticated access and correction requests.
Data-exchange technologies
One exchange uses several layers
A mobile app does not reach into another system's database. It communicates through an agreed interface.
- API: a defined interface through which software requests data or actions.
- REST: an architectural approach that treats data and capabilities as resources addressed by identifiers such as URLs.
- HTTP: an application-layer protocol that carries web requests and responses.
- JSON or XML: formats that structure data inside a message.
Example: An app uses an API designed with REST conventions, sends an HTTPS request and receives JSON. These terms describe different parts of one exchange.
Request and response
GET /api/events/42 HTTP/1.1
Host: example.org
Accept: application/json
HTTP/1.1 200 OK
Content-Type: application/json
{"event_id": 42, "title": "Repair café", "places": 6}
The client identifies a resource and acceptable representation. The server processes the request and returns a status, metadata headers and optional body.
Trace the exchange
Recognise the method, resource identifier, requested format, response status and body type.
Check your answer
Method: GET; resource: /api/events/42; requested format: JSON; status: 200 OK; body: one JSON event object.
HTTP methods communicate intent
| Method | Typical purpose | Example |
|---|---|---|
| GET | Retrieve a representation without changing the resource | GET /events/42 |
| POST | Submit data, often to create a resource | POST /bookings |
| PUT | Replace a resource representation at a known identifier | PUT /bookings/81 |
| PATCH | Apply a partial update | PATCH /bookings/81 |
| DELETE | Request removal of a resource | DELETE /bookings/81 |
The server defines the actual API contract. A method name alone does not grant permission or guarantee a particular implementation.
Choose a method
Determine a suitable method for retrieving all venues, creating a booking and changing only its status.
Check your answer
GET /venues, POST /bookings and PATCH /bookings/{id} are suitable, assuming the API contract uses these conventions.
Status codes describe outcomes
- 2xx: request succeeded, e.g. 200 OK or 201 Created.
- 4xx: the request cannot be completed as sent, e.g. 400 Bad Request, 401 Unauthorised, 403 Forbidden or 404 Not Found.
- 5xx: the server failed while handling an apparently valid request, e.g. 500 Internal Server Error or 503 Service Unavailable.
Authentication and authorisation differ: 401 commonly indicates missing or invalid authentication; 403 indicates the server understood the identity but refuses the action.
Handle more than success
A robust client checks the response before using the body.
SET response = SendRequest(request)
IF response.status = 200 THEN SET data = ParseJSON(response.body) DisplayEvents(data) ELSE IF response.status = 401 THEN OUTPUT "Sign in again" ELSE IF response.status = 503 THEN OUTPUT "Service unavailable. Try again later." ELSE OUTPUT "Request could not be completed" ENDIF
Parsing a missing or error body as if it contains valid event data can create a second error.
JSON and XML represent structured data
JSON
{
"sensor_id": 7,
"reading": 18.4
}XML
<sensor>
<sensor_id>7</sensor_id>
<reading>18.4</reading>
</sensor>- JSON uses objects, arrays, keys and values and maps naturally to common application data structures.
- XML uses nested elements and attributes, supports namespaces and can be validated against a schema.
- Either can represent the example. Suitability depends on the systems, contract, tooling, validation and interoperability requirements.
Neither format encrypts data. Secure transport and access controls are separate concerns.
Compare formats
A partner's established system accepts only XML validated against its published schema. Recommend JSON or XML and Explain the decisive evidence.
Check your answer
Use XML because compatibility with the receiving system and its published validation schema is required. Choosing JSON for shorter syntax would not satisfy the exchange contract.
REST resources and representations
A resource is a conceptual item such as an event or booking. A URL identifies it; a representation such as JSON describes its current data.
GET /events # collection
GET /events/42 # one event
GET /events?suburb=Milton # filtered collection
POST /events/42/bookings # create a related booking
Good resource paths normally use nouns. The HTTP method communicates the action.
REST exchanges are usually stateless: each request includes the information needed to process it. The server may store resources, but it should not rely on hidden conversational state from an earlier request.
APIs need a contract
Documentation should specify:
- endpoints and supported methods
- authentication and permissions
- required headers, parameters and body fields
- data types, formats and allowed values
- response bodies and status codes
- rate limits, pagination and versioning where relevant.
A client and server can both produce valid JSON yet fail to interoperate if one sends eventDate and the other requires event_date.
Analyse a failed exchange
The contract requires POST /reports with {"location_id": INTEGER, "description": STRING}. A client sends:
POST /report
{"location": "Oval", "description": 42}
Analyse three incompatibilities.
Check your answer
- The endpoint is singular rather than
/reports. - The required
location_idkey is replaced bylocation. descriptioncontains a number rather than a string.
Secure and reliable exchange
- Use encrypted, authenticated transport such as HTTPS for sensitive exchanges.
- Authenticate the caller and check authorisation for every protected operation.
- Validate all external data before processing.
- Return useful but non-sensitive error information.
- Use timeouts, controlled retries and duplicate protection.
- Log relevant outcomes without unnecessarily recording secrets or personal data.
Retrying a create request blindly can produce duplicates. An idempotency key or server-side duplicate check can let a repeated request be recognised safely.
Independent practice: repair reports API
A mobile app sends repair reports to a council API. The contract uses JSON and includes:
POST /reports
Authorization: Bearer [token]
Content-Type: application/json
{ "location_id": 18, "category": "water_leak", "description": "Tap will not turn off" }
Possible responses are 201 with the created report, 400 with field errors, 401 when the token is invalid and 503 during an outage.
- Explain the role of the API, HTTP, JSON and authentication token.
- Determine how the app should respond to each status.
- Evaluate the exchange if it uses HTTP rather than HTTPS on public Wi-Fi.
- Recommend one strategy that reduces duplicate reports after a timeout.
View a sample solution
- The API defines the permitted exchange, HTTP carries the request and response, JSON structures the report, and the token presents authentication evidence used when checking access.
- 201: show confirmation and returned ID; 400: show specific field errors without clearing valid input; 401: require authentication again; 503: preserve the report and offer a controlled retry.
- HTTP provides weak confidentiality on the untrusted network because the token and report may be intercepted. HTTPS should authenticate the server and encrypt data in transit.
- Send a unique idempotency key with retries so the server can return the original result rather than create another record.
Network performance
Performance is more than speed
| Measure | Meaning | Effect |
|---|---|---|
| Bandwidth | The theoretical capacity of a link per unit time | Limits possible transfer rate |
| Throughput | The actual rate achieved | Determines how quickly useful data arrives |
| Latency | Delay between sending and receiving | Makes interaction feel slow |
| Jitter | Variation in packet delay | Disrupts real-time audio and video |
| Packet loss | Packets fail to reach the destination | Causes gaps or retransmission |
Key idea: A high-bandwidth link can still feel unresponsive when latency is high. Different applications value different performance characteristics.
Match the evidence
Determine the main issue in each case.
- A 100 Mbps link transfers at 42 Mbps.
- Video-call packets arrive at irregular intervals.
- A button response takes 600 ms even though the message is tiny.
- Some voice packets never arrive.
Check your answer
- Throughput is below bandwidth.
- Jitter.
- Latency.
- Packet loss.
Calculate transfer time carefully
Use compatible units and distinguish bits from bytes.
transfer time (seconds) = data size (bits) / throughput (bits per second)
A 20 megabyte file contains approximately 160 megabits. At an actual throughput of 40 megabits per second, the idealised transfer time is:
160 Mb / 40 Mb/s = 4 seconds
Real transfers may take longer because of protocol overhead, changing conditions, competing traffic and retransmissions.
Calculate a transfer
A 75 MB video transfers at 30 Mbps. Determine the idealised time.
Check your answer
75 MB × 8 = 600 Mb; 600 / 30 = 20 seconds.
Packet switching
Packet switching divides data into packets that can travel through a shared network. Each packet carries control information used to deliver and reassemble the data.
- The sender divides and labels the data.
- Network devices forward packets towards the destination.
- Packets may take different routes or arrive out of order.
- The receiver checks and reassembles them.
- Missing or damaged data may be recovered according to the protocol.
Sharing links improves network use, but variable routes and congestion can change delay and loss.
Routing and forwarding
- Routing determines paths and maintains information about how networks can be reached.
- Forwarding is the local action of moving an arriving packet to the appropriate outgoing interface.
A route may change when a link fails or another path becomes preferable. More hops do not automatically prove poor performance; link quality, distance, load and processing also matter.
Explain the relationship
Explain how routing and forwarding work together.
Check your answer
Routing creates or updates knowledge about reachable paths. A router then uses that knowledge when forwarding each packet to its next hop. Routing informs the decision; forwarding performs it.
Congestion and flow control
Congestion occurs when offered traffic exceeds the capacity of network resources. Queues grow, latency rises and buffers may discard packets.
Congestion control adjusts sending behaviour in response to network conditions. Flow control prevents a sender from overwhelming the receiving endpoint's ability to process data.
Diagnose before upgrading: adding bandwidth may help a saturated link, but it will not remove propagation delay, fix a failing server or correct an inefficient database query.
Read a performance pattern
| Time | Throughput | Latency | Loss |
|---|---|---|---|
| 10:00 | 82 Mbps | 24 ms | 0% |
| 12:30 | 18 Mbps | 310 ms | 6% |
Analyse the likely change at 12:30.
View a sample solution
The combination of reduced throughput, sharply increased latency and packet loss is consistent with congestion or another serious link-quality problem at 12:30. More evidence is needed to locate the cause.
Error detection and correction
Transmission systems use error-control processes to detect corrupted or missing data and respond appropriately.
- A checksum or other integrity check can reveal changed data.
- Sequence information can reveal missing or reordered segments.
- Acknowledgments confirm receipt.
- Retransmission replaces missing or damaged data.
- Some systems use forward error correction to recover certain errors without retransmission.
Retransmission supports reliability but consumes capacity and adds delay. Real-time media may prefer a small gap over waiting for a late packet.
TCP, UDP and application needs
| Transport | Useful characteristics | Typical priority |
|---|---|---|
| TCP | Connection-oriented, ordered reliable byte stream with flow and congestion control | Complete, ordered delivery |
| UDP | Connectionless datagrams with low transport overhead and no built-in delivery guarantee | Timeliness or application-controlled recovery |
Applications may add their own reliability or security. “UDP is always faster” is too broad; suitability depends on implementation and purpose.
Quality of service
Quality of service (QoS) mechanisms classify and manage traffic so important flows receive appropriate treatment during contention.
- Prioritise delay-sensitive voice over a background software download.
- Reserve or shape traffic to protect essential services.
- Manage queues to reduce delay and loss for selected classes.
QoS manages limited capacity; it does not create unlimited bandwidth. Prioritising one class may delay another, so priorities must reflect actual requirements.
Choose a priority
A hospital link carries a live remote consultation and a scheduled archive backup. Recommend a QoS priority and Explain the trade-off.
Check your answer
Prioritise the real-time consultation because latency, jitter and loss directly affect communication needed now. Shape or schedule the backup with lower priority; it may finish later but its complete data can still be transferred reliably.
Evaluate with application criteria
Use the required task to judge measurements.
| Application | Especially important |
|---|---|
| Video call | Low latency, jitter and loss; adequate throughput |
| Large backup | Sustained throughput and reliable complete delivery |
| Emergency alert | Low delay, reliable delivery and availability |
| Interactive game | Low latency and jitter |
Independent practice: community event network
A temporary event network supports payment terminals, a live stream and overnight photo uploads. At peak time, measurements show 95% link utilisation, latency rising from 28 ms to 420 ms, 4% packet loss and highly variable video delay. Payments sometimes time out.
- Analyse the evidence to identify the likely performance condition.
- Explain how it affects payments and live video differently.
- Recommend two refinements, including one QoS decision.
- Evaluate the claim: “The only solution is to increase bandwidth.”
View a sample solution
- Very high utilisation with rising latency, loss and variable delay strongly indicates congestion.
- Payment requests may time out and retry, risking delay or duplicates; live video suffers from jitter, gaps and reduced quality.
- Prioritise small payment traffic and delay-tolerant control traffic appropriately, while shaping or scheduling photo uploads outside peak time. Additional capacity may also help if monitoring confirms sustained saturation.
- The claim is too absolute. More bandwidth could reduce saturation, but traffic scheduling and QoS address competing priorities, and client/server timeout or duplicate-handling problems may also need refinement.
Constraints, requirements and criteria
Four different jobs
| Term | Question answered | Example |
|---|---|---|
| Need | Why is change needed? | Workers lose time locating jobs. |
| Requirement | What must the solution do, or how well? | Allow search by street or suburb. |
| Constraint | What limits the solution space? | Must run on existing tablets. |
| Criterion | What observable evidence shows success? | A worker finds a supplied job within 20 seconds. |
Traceability: each criterion should test a requirement, and each proposed feature should address a requirement while respecting constraints.
Functional and non-functional requirements
- Functional requirements state what the solution does: inputs, processes, outputs, data exchange and user actions.
- Non-functional requirements state how well or under what quality conditions it operates: useability, security, performance, reliability, compatibility and maintainability.
“The user can submit a report” is functional. “A valid report is confirmed within two seconds” adds performance and feedback quality.
Classify requirements
- Store an equipment loan.
- Only authorised staff can issue refunds.
- Return search results within two seconds.
- Display all bookings for a selected date.
Check your answer
- Functional.
- Non-functional security requirement attached to a function.
- Non-functional performance requirement.
- Functional.
Find constraints in the context
Constraints can concern time, cost, technology, compatibility, data, people, law, environment or scope.
| Constraint | Possible design effect |
|---|---|
| Four-week development window | Prioritise essential scope and existing libraries. |
| Existing low-storage server | Limit retained media, compress where appropriate and define retention. |
| Unreliable field connectivity | Cache essential data and queue updates safely. |
| Personal information involved | Minimise collection and implement appropriate privacy and security controls. |
A constraint is not automatically a flaw. It becomes useful analysis when its effect on design, risk or testing is explained.
Explain an impact
A mobile app must use the school's existing server, which has limited storage. Explain one consequence for an image-reporting feature.
View a sample solution
Unrestricted full-resolution uploads could exhaust storage and make the service unavailable. The design should resize or compress images to an agreed quality, limit quantity and apply a justified retention rule.
Write strong criteria
A strong criterion is specific enough to test and relevant to the user and requirement.
Under [condition], [user or system] can [observable behaviour] with [measurable or clearly judgeable result].
| Weak | Stronger |
|---|---|
| The app is accessible. | Every interactive control can be reached and operated using keyboard navigation in a logical order. |
| Search works. | Given a known student ID, the search displays the correct student as the first result. |
| Data is secure. | A volunteer account cannot view health notes or perform a refund. |
Avoid false precision
Numbers are helpful when they come from the context or a reasoned target. Do not invent “99.99% accurate” merely to sound measurable. Some qualities are tested through observable tasks and evidence rather than arbitrary percentages.
A useful set of criteria covers normal, boundary and error conditions. For a capacity rule, test one below capacity, exactly at capacity and one above it.
Refine a criterion
The requirement is “Users must recover from an accidental cancellation.” Determine a testable criterion.
View a sample solution
After cancelling a booking, a user can activate Undo from the confirmation message and restore the same booking details before leaving the screen.
Build a traceability table
| Need | Requirement | Feature | Criterion |
|---|---|---|---|
| Find nearby safe routes | Filter routes by accessibility | Accessible-route filter | Selecting the filter removes every route marked inaccessible |
| Protect private records | Limit access by role | RBAC | A visitor account receives no private record data |
Traceability reveals orphan features that address no need, requirements with no implementation and criteria that test the wrong behaviour.
Resolve competing requirements
Requirements may trade off rather than fit perfectly together.
- Detailed data may improve personalisation but increase privacy risk.
- Immediate synchronization improves freshness but may fail with unreliable connectivity.
- High-resolution media improves detail but increases storage and transfer time.
- Frequent confirmation can reduce some errors but interrupt routine work.
Use the scenario's priorities and consequences to justify a balance. Do not declare one quality universally more important.
Analyse a trade-off
A field app needs recognisable damage photos but must operate on slow connections and limited storage. Recommend a balanced requirement.
View a sample solution
Resize and compress uploads to the lowest tested resolution that still lets staff classify the damage, queue them while offline, and retain originals only when a case is escalated. This protects useful visual detail while reducing routine transfer and storage demand.
Evaluate with test evidence
State whether each criterion is met, partially met or not met, using actual results.
| Criterion | Result | Judgment |
|---|---|---|
| Search within 2 seconds for 5000 records | 1.4 seconds | Met under tested condition |
| Clear field error without losing valid input | Message displayed, but all fields cleared | Partially met |
Independent practice: emergency relief hub
A temporary relief hub needs a tablet app to record supply requests. Internet access is intermittent; existing tablets have limited storage; volunteers change each shift; and medical notes must be visible only to authorised health staff.
The app must record a request, show its status, work during short outages and synchronise safely later.
- Recognise three constraints and Explain one design effect of each.
- Determine four functional and three non-functional requirements.
- Write one observable criterion for offline operation, access control, synchronisation integrity and useability.
- Justify how each criterion traces to a requirement.
View a sample solution
Constraints: intermittent internet requires a local queue; limited storage requires minimal cached data and retention; changing volunteers requires learnable interfaces and individual or shift-appropriate access.
Functional: create request, view status, store while offline, synchronise queued records. Non-functional: role-based confidentiality, no duplicates during retry, clear first-use workflow.
- Offline: a valid request remains available after restarting the tablet without connectivity.
- Access: a volunteer account cannot retrieve medical notes; a health role can retrieve only relevant notes.
- Integrity: retrying the same queued request creates exactly one server record with the same local identifier.
- Useability: a first-time volunteer completes a supplied request scenario without assistance and sees a clear saved-offline status.
Classical encryption algorithms
A shared numerical model
Use the mapping A = 0, B = 1, ..., Z = 25. Addition encrypts; subtraction decrypts. Modulo 26 wraps results into the alphabet.
encrypted = (plaintext + shift) MOD 26
plaintext = (encrypted - shift + 26) MOD 26
For a shift of 5, X = 23 encrypts to (23 + 5) MOD 26 = 2, which is C.
State your convention: Cipher questions must use one consistent letter-number mapping and direction. A different stated convention may produce different intermediate numbers.
Modulo practice
Determine the encrypted letters for A, M and Z using shift 4.
Check your answer
A → E, M → Q, Z → D.
Caesar cipher
A Caesar cipher applies one fixed shift to every plaintext letter.
| Plaintext | C | O | D | E |
|---|---|---|---|---|
| Number | 2 | 14 | 3 | 4 |
| +3, mod 26 | 5 | 17 | 6 | 7 |
| Ciphertext | F | R | G | H |
The ciphertext is FRGH.
Decrypt
Determine the plaintext for KHOOR with Caesar shift 3.
Check your answer
Subtracting 3 gives HELLO.
Evaluate Caesar security
There are only 25 useful non-zero shifts. An attacker can try them all quickly. The same plaintext letter always becomes the same ciphertext letter, so language patterns and letter frequency remain visible.
Security judgment: Caesar is useful for learning substitution and modulo arithmetic, not for protecting modern sensitive data.
Vigenère cipher
Vigenère repeats a keyword. Each key letter supplies a different shift using A = 0.
| Plaintext | C | A | T | C | H |
|---|---|---|---|---|---|
| Repeated key | D | O | G | D | O |
| Shift | 3 | 14 | 6 | 3 | 14 |
| Ciphertext | F | O | Z | F | V |
CATCH with key DOG becomes FOZFV.
Encrypt with Vigenère
Use key KEY to encrypt DATA. Determine the repeated key and ciphertext.
Check your answer
Repeated key: KEYK; shifts: 10, 4, 24, 10. D(3)+K(10)=N(13), A(0)+E(4)=E(4), T(19)+Y(24)=R(17), and A(0)+K(10)=K(10). The ciphertext is NERK.
Evaluate repeated-key security
Vigenère hides simple single-letter frequency better than Caesar because the same plaintext letter can encrypt differently at different key positions. However, a repeated keyword creates a period. With enough ciphertext, attackers can investigate repetition, infer key length and apply frequency analysis by position.
A longer keyword increases possibilities, but a predictable word and repeated use remain weaknesses.
Gronsfeld cipher
Gronsfeld uses a repeating sequence of decimal digits as shifts. It works like a Vigenère cipher whose shifts are limited to 0–9.
| Plaintext | M | A | P | S |
|---|---|---|---|---|
| Key | 2 | 0 | 4 | 2 |
| Ciphertext | O | A | T | U |
With repeating key 204, MAPS becomes OATU.
Gronsfeld varies shifts but uses only ten possible shift values and repeats the digit key, so it remains vulnerable to period and frequency analysis.
One-time pad
A one-time pad uses a key that is:
- truly random
- at least as long as the plaintext
- kept secret
- used once only.
Encryption can still use modular addition, but the key does not repeat. Under the required conditions, the ciphertext does not reveal a unique plaintext because every same-length plaintext has a possible key.
The conditions matter: a repeated, predictable or reused pad is not a secure one-time pad. Key generation, secure distribution and storage are major practical challenges.
Why reuse fails
Two messages use the same pad. Explain the resulting weakness.
Check your answer
Combining the two ciphertexts can cancel the shared key relationship and expose relationships between the plaintexts. Language patterns or a known part of one message can then help recover the other. Reuse removes the defining one-time condition.
Compare the algorithms
| Algorithm | Key pattern | Main weakness |
|---|---|---|
| Caesar | One repeated shift | Tiny key space and preserved frequency |
| Vigenère | Repeated letter-key shifts 0–25 | Repeated period can be analysed |
| Gronsfeld | Repeated digit shifts 0–9 | Repeated period and restricted shifts |
| One-time pad | Random, message-length, never reused | Secure key creation, distribution and handling |
Develop an encryption algorithm
BEGIN
INPUT plaintext
INPUT shifts
SET ciphertext = ""
SET keyIndex = 0
FOR EACH character IN plaintext DO IF character IS A LETTER THEN SET plainNumber = LetterToNumber(UPPERCASE(character)) SET shift = shifts[keyIndex MOD LENGTH(shifts)] SET cipherNumber = (plainNumber + shift) MOD 26 SET ciphertext = ciphertext + NumberToLetter(cipherNumber) SET keyIndex = keyIndex + 1 ELSE SET ciphertext = ciphertext + character ENDIF ENDFOR
OUTPUT ciphertext END
One design choice is whether spaces and punctuation advance the key. State and apply the choice consistently. The example advances only for letters.
Desk check the algorithm
Use plaintext AZ! and shifts [2, 4].
| Character | Key index | Shift | Output |
|---|---|---|---|
| A | 0 | 2 | C |
| Z | 1 | 4 | D |
| ! | 2 | Not used | ! |
The output is CD!.
Independent practice: compare keys
Use plaintext NETWORK.
- Encrypt it with Caesar shift 4.
- Encrypt it with Vigenère key
LINK. - Encrypt it with Gronsfeld key
314. - Analyse the repeated patterns and Evaluate relative resistance to simple brute force and frequency analysis.
View a sample solution
- Caesar:
RIXASVO. - Repeated key
LINKLIN; ciphertextYMGGZZX. - Repeated key
3143143; ciphertextQFXZPVN. - Caesar has only 25 useful keys and one substitution alphabet, making exhaustive search and frequency analysis easy. Vigenère and Gronsfeld vary shifts, but their repeated periods can be detected. Vigenère permits 26 shift values per key position, while Gronsfeld uses only ten; actual security also depends on key length and predictability. None is appropriate for modern sensitive data.
Visual communication principles
Elements are materials; principles organise them
Visual elements are the building materials visible in a composition. Principles describe how those elements are arranged to communicate.
| Elements | Principles |
|---|---|
| Space, line, colour, shape, texture, tone, form, proportion and scale | Balance, contrast, proximity, harmony, alignment, repetition and hierarchy |
Use evidence: “Contrast is used” is incomplete. Name the elements that contrast, what becomes distinguishable and how that supports the user.
Visual elements
- Space: occupied and empty areas; separates groups and reduces crowding.
- Line: divides, connects or guides attention.
- Colour: can distinguish state, category or emphasis when used accessibly.
- Shape: creates controls, containers and recognisable symbols.
- Texture: suggests surface or variation; usually restrained in interfaces.
- Tone: relative lightness and darkness.
- Form: appearance of three-dimensional volume.
- Proportion: size relationship between parts.
- Scale: size relative to a reference, screen or user context.
Not every interface needs every element to be visually obvious. Use them to communicate, not to fill space.
Recognise the element
A form uses blank space between address and payment sections, a thin rule beneath the heading and a much larger title. Identify the main element in each decision.
Check your answer
Space separates the sections; line divides the heading; scale and proportion distinguish the title.
Balance
Balance distributes visual weight so a composition feels stable. Symmetrical balance mirrors weight; asymmetrical balance uses different elements with comparable visual influence.
A large chart on the left may be balanced by a grouped summary and controls on the right. Balance does not require identical halves.
Avoid false balance: giving an infrequent destructive action the same size and position as the primary safe action may make the screen visually even but functionally unsafe.
Contrast
Contrast creates a noticeable difference using colour, tone, shape, size, weight or space. It helps users distinguish content and action.
- Dark text on a light background supports readability.
- A larger, heavier heading distinguishes it from body text.
- A primary action can stand out from secondary actions.
- A warning can combine text, symbol and visual emphasis.
Colour contrast supports accessibility, but visual communication should not rely on colour alone.
Explain the effect
A dashboard displays every label, heading and button at the same size and weight. Explain how contrast could improve it.
View a sample solution
Use stronger size and weight contrast for screen and section headings, and distinguish the primary action from secondary controls. Users can then scan the structure and locate the next action without reading every item equally.
Proximity and alignment
Proximity places related items closer together and separates unrelated groups. Alignment places elements along shared edges or axes to create order.
A field label should sit closer to its own input than the previous input. Form fields aligned to a consistent edge are easier to scan.
Relationship before decoration: spacing and alignment can communicate grouping even without borders or coloured panels.
Diagnose grouping
A validation message appears halfway between two fields, and buttons use unrelated left edges. Analyse the visual communication problems.
Check your answer
Ambiguous proximity makes it unclear which field caused the error. Place the message directly beside or below its field. Align related controls to consistent edges so the form has a predictable reading path.
Repetition and harmony
Repetition reuses visual patterns such as typography, icon style, spacing and component appearance. Harmony is the coherent overall relationship among elements.
- Repeated card structure lets users learn where each value appears.
- Consistent button styles communicate similar behaviour.
- A compatible type and colour system creates a unified experience.
Repetition supports learnability, but identical styling should not be applied to actions with different importance or risk.
Hierarchy
Hierarchy communicates order and importance. It can be produced through scale, position, contrast, spacing and grouping.
- Screen purpose or urgent state
- Section headings and primary task
- Supporting content and secondary actions
- Metadata and low-priority detail
Hierarchy should reflect user goals, not the organisation's desire to promote every feature.
Rank the content
An emergency-alert screen contains the warning type, affected location, time, safety action, app logo and settings link. Determine a useful hierarchy.
View a sample solution
Make the warning type and required safety action most prominent, followed by affected location and time. Keep the app identity visible but secondary, and place settings outside the urgent reading path.
Principles work together
A section heading may use larger scale and darker tone for contrast, align with its fields, repeat a type style used elsewhere and sit close to related controls. Together these choices create hierarchy and harmony.
| Evidence | Principle | User effect |
|---|---|---|
| Related label and value are close | Proximity | Relationship is interpreted correctly |
| All cards share structure | Repetition | Information becomes predictable |
| Primary action is prominent | Contrast and hierarchy | Next action is found quickly |
Evaluate with a cause-and-effect chain
The interface uses [element evidence] to create or weaken [principle]. This [effect on perception or grouping], helping or hindering [specific user task].
Weak: The colours have harmony and look professional.
Stronger: The interface repeats one restrained colour palette and icon style across all booking cards, creating harmony and making components feel related. A contrasting status label still distinguishes cancellations without disrupting the overall system.
Independent practice: repair dashboard
A repair dashboard has these features:
- all text, including headings, uses the same size and weight
- status is indicated only by red, amber or green text
- each card places its address in a different position
- large empty gaps appear inside cards, but unrelated cards touch
- the Delete button is larger than Update status
- icons come from several unrelated visual styles.
- Analyse four visual communication problems using four different principles.
- Recommend one specific refinement for each.
- Justify each refinement using a worker's task.
View a sample solution
- Hierarchy/contrast: Increase heading scale and weight so workers can scan sections and job names.
- Contrast/accessibility: Add text and symbols for status, with sufficient tonal contrast, so meaning does not depend on colour.
- Alignment/repetition: Use one card grid with the address in the same aligned position, reducing search time.
- Proximity: Keep content within each card close and separate cards with consistent space so relationships are clear.
- Hierarchy: Make Update status the primary action and reduce visual emphasis on Delete, matching task frequency and risk.
- Harmony/repetition: Use one consistent icon family so meaning and component style are predictable.
Emerging technologies
A family of related ideas
- Artificial intelligence (AI): broad field of systems performing tasks associated with intelligent behaviour.
- Machine learning (ML): methods that learn patterns from data to make predictions or decisions rather than relying only on hand-written rules.
- Neural network: an ML model made from connected layers of weighted processing units.
- Deep learning: ML using neural networks with multiple processing layers to learn complex representations.
- Natural language processing (NLP): methods for analysing, generating or interacting through human language; these may use rules, statistical ML or deep learning.
- Reinforcement learning: an agent learns a policy by interacting with an environment and receiving rewards or penalties.
Relationship: deep learning is a kind of machine learning; neural networks are models used in deep learning; NLP is a task area that can use several approaches.
Classify a description
A system learns to label road images using thousands of examples and a multi-layer neural network. Recognise the most specific terms that apply.
Check your answer
It is machine learning and, because it uses a multi-layer neural network, deep learning. Image classification is not NLP because the input is not human language.
Supervised and unsupervised learning
| Approach | Learning signal | Example |
|---|---|---|
| Supervised | Examples include target labels or values | Predict whether a sensor record is faulty from labelled history |
| Unsupervised | No supplied target label; the method seeks structure | Group similar travel patterns |
| Reinforcement | Rewards from actions in an environment | Learn a signal-control policy in a simulation |
These labels describe how learning occurs, not whether a system is accurate, fair or safe.
Training and inference
- Define the task: specify input, desired output and success criteria.
- Collect and prepare data: clean, label, encode and split records appropriately.
- Train: adjust model parameters to reduce error on training examples.
- Validate: tune decisions using separate evidence.
- Test: estimate performance on unseen examples.
- Infer: apply the trained model to new input.
- Monitor: detect changing data, failures and unequal outcomes.
Do not test on training data alone: memorising examples can produce impressive training results but weak performance on unseen data.
Training or inference?
A model adjusts weights using labelled pothole images, then later assigns a severity category to a new image. Determine which event is training and which is inference.
Check your answer
Adjusting weights from labelled examples is training. Applying the resulting model to the new image is inference.
Data shapes model behaviour
A model learns statistical patterns present in its data. Problems include:
- missing or incorrect labels
- under-representation of relevant conditions or groups
- historical decisions that encode unfairness
- features that indirectly reveal protected or sensitive information
- training data that differs from real operating conditions
- data drift as behaviour or environments change.
“More data” is not automatically better. Relevance, quality, coverage, lawful handling and representativeness matter.
Analyse dataset coverage
A road-damage model is trained only on clear daytime photos from one city. It will be used across Queensland at night, in rain and on unsealed roads.
Analyse the risk and Recommend a refinement.
View a sample solution
The training data does not represent lighting, weather, surface and regional variation in deployment, so test accuracy may not transfer to real use. Collect and label representative examples across those conditions, keep a separate test set and report performance by condition rather than only one overall value.
Neural networks and deep learning
A neural network combines inputs through weighted connections and transformations. Training changes weights to reduce a defined error. Hidden layers can learn intermediate representations useful for the output.
- Input layer receives encoded features.
- Hidden layers transform combinations of values.
- Output layer produces scores, categories or numerical predictions.
Deep networks can model complex image, audio and language patterns but may require substantial data and computation. Their internal reasoning can be difficult to explain, which matters in high-consequence decisions.
Natural language processing
NLP systems process language tasks such as classification, search, translation, summarisation, speech interaction and response generation.
Language is ambiguous and context-dependent. A support classifier may misread slang, negation, multilingual text or an uncommon request.
| Input | Possible NLP process | Output |
|---|---|---|
| “I can't access my booking” | Intent classification | account_access |
| Long incident report | Information extraction | location, time, category |
Design for uncertainty
Recommend one interface response when a chatbot has low confidence in the user's intent.
View a sample solution
State that the request was not understood, present a small set of likely options and provide a clear path to a human or standard form. Do not confidently perform a high-impact action from an uncertain classification.
Reinforcement learning
An agent observes a state, chooses an action, receives a reward and updates its policy to increase expected future reward.
state → policy chooses action → environment changes → reward → learning
The reward function matters. A traffic agent rewarded only for vehicle throughput might create long pedestrian waits. Simulation, safety constraints and evaluation of unintended strategies are essential.
Evaluate more than accuracy
- Performance: appropriate accuracy, error rates, latency and reliability.
- Fairness: outcomes and errors across relevant groups and conditions.
- Privacy: collection, consent, inference, retention and disclosure of personal data.
- Transparency: users understand when automation is used and what it can affect.
- Accountability: responsibility, review, logging and challenge processes exist.
- Safety: failures are detected, limited and recoverable.
- Security: training data, model, interface and output are protected.
- Environmental and economic cost: computation, infrastructure and ongoing monitoring are justified.
An overall accuracy can hide unequal error types. In a hazard detector, a missed hazard and a false alarm have different consequences.
Use a confusion matrix
| Predicted hazard | Predicted clear | |
|---|---|---|
| Actual hazard | True positive | False negative |
| Actual clear | False positive | True negative |
Explain why false negatives may deserve special attention in a pedestrian-hazard detector.
Check your answer
A false negative labels an actual hazard as clear, so the system may fail to trigger a protective action. Its safety consequence may be greater than the inconvenience caused by some false alarms.
Human oversight
Human involvement should be designed, not added as a slogan.
- Show the relevant input, output and uncertainty to the reviewer.
- Give reviewers time and authority to disagree.
- Record overrides and outcomes for monitoring.
- Provide a path for affected people to question or correct data.
- Do not overload one person with more alerts than can be meaningfully reviewed.
Independent practice: event safety classifier
An organisation proposes an NLP system that classifies incoming event messages as routine, urgent or emergency. Historical labels were created by one team; messages in languages other than English are rare in the training set; emergency messages are only 1% of examples; and an emergency classification automatically locks venue gates.
- Analyse four risks in the data, output or automated action.
- Evaluate whether overall accuracy alone is a suitable criterion.
- Recommend three controls covering testing, interface design and human oversight.
View a sample solution
- One team's labels may be inconsistent or encode narrow interpretations; language coverage is unrepresentative; rare emergencies can be missed while overall accuracy stays high; and automatic locking could create a physical safety risk from a false positive.
- Overall accuracy is insufficient because routine examples dominate. Report the confusion matrix, emergency recall, false-lock rate and performance by language and scenario.
- Review and diversify labels and test data; show category, confidence and original message to a trained reviewer; require confirmation or a safety-constrained procedure before gate control, with logging and a manual override.
SQL in a Unit 4 context
SQL behind a data exchange
A client might send JSON to an API, but the back end may validate the request and use SQL to read or update a relational database.
mobile app → HTTPS/JSON → API validation → parameterised SQL → database
mobile app ← JSON response ← result transformation ← SQL result
Separation of concerns: SQL manages relational data. The API controls authentication, authorisation, validation, error handling and the representation returned to the client.
Use a small relational schema
VENUE(
venue_id PRIMARY KEY,
venue_name,
suburb,
accessible
)
EVENT( event_id PRIMARY KEY, venue_id FOREIGN KEY REFERENCES VENUE(venue_id), title, event_date, capacity, status )
BOOKING( booking_id PRIMARY KEY, event_id FOREIGN KEY REFERENCES EVENT(event_id), attendee_email, places, booking_status )
Keys connect records without repeating all venue and event data in every booking.
Trace a relationship
Explain how a BOOKING record is connected to a VENUE.
Check your answer
BOOKING.event_id links to EVENT.event_id. That EVENT record contains venue_id, which links to VENUE.venue_id. The relationship therefore passes through EVENT.
SELECT, WHERE and ORDER BY
SELECT event_id, title, event_date
FROM EVENT
WHERE status = 'open'
AND event_date >= '2026-08-05'
ORDER BY event_date ASC, title ASC;
SELECTchooses columns.FROMidentifies the table.WHEREfilters rows before grouping.ORDER BYsorts the result;ASCis ascending andDESCdescending.
Text and date literals use quotes. Numeric and Boolean syntax depends on the database system and schema.
Write a query
Develop a query that returns the title and capacity of cancelled events, largest capacity first.
Check your answer
SELECT title, capacity
FROM EVENT
WHERE status = 'cancelled'
ORDER BY capacity DESC;Conditions and IN
SELECT event_id, title
FROM EVENT
WHERE status IN ('open', 'full')
AND capacity >= 20;
IN tests membership of a set. Combine conditions with AND, OR and parentheses so the intended logic is unambiguous.
NULL needs special handling: use IS NULL or IS NOT NULL, not = NULL.
Aggregate functions and GROUP BY
Aggregate functions summarise rows: COUNT, MIN, MAX, AVG and SUM.
SELECT event_id, SUM(places) AS booked_places
FROM BOOKING
WHERE booking_status = 'confirmed'
GROUP BY event_id;
Each output row represents one event group. Non-aggregated selected columns normally need to appear in GROUP BY.
Count by status
Develop a query that counts bookings for each booking_status.
Check your answer
SELECT booking_status, COUNT(*) AS booking_count
FROM BOOKING
GROUP BY booking_status
ORDER BY booking_status;WHERE and HAVING do different jobs
WHEREfilters individual rows before groups are formed.HAVINGfilters groups after aggregation.
SELECT event_id, SUM(places) AS booked_places
FROM BOOKING
WHERE booking_status = 'confirmed'
GROUP BY event_id
HAVING SUM(places) >= 20;
The WHERE clause excludes non-confirmed rows. HAVING keeps only event groups whose confirmed places total at least 20.
INNER JOIN related tables
SELECT EVENT.title, VENUE.venue_name, VENUE.suburb
FROM EVENT
INNER JOIN VENUE
ON EVENT.venue_id = VENUE.venue_id
WHERE EVENT.status = 'open'
ORDER BY EVENT.title;
An inner join returns only rows with a matching relationship. Qualify column names with table names when ambiguity is possible.
Join three tables
Develop a query returning booking ID, event title and venue name for confirmed bookings.
View a sample solution
SELECT BOOKING.booking_id, EVENT.title, VENUE.venue_name
FROM BOOKING
INNER JOIN EVENT
ON BOOKING.event_id = EVENT.event_id
INNER JOIN VENUE
ON EVENT.venue_id = VENUE.venue_id
WHERE BOOKING.booking_status = 'confirmed';Subqueries
A subquery supplies a result to another query.
SELECT title, capacity
FROM EVENT
WHERE capacity > (
SELECT AVG(capacity)
FROM EVENT
);
The inner query calculates the average capacity. The outer query returns events above it.
Use a join when combining related columns and a subquery when one result naturally supplies a condition. Either may sometimes express the same goal; clarity and database behaviour matter.
Filter by a related set
Develop a subquery that returns event titles at accessible venues.
Check your answer
SELECT title
FROM EVENT
WHERE venue_id IN (
SELECT venue_id
FROM VENUE
WHERE accessible = TRUE
);The Boolean literal may differ across database systems.
CREATE and constraints
CREATE TABLE BOOKING (
booking_id INTEGER PRIMARY KEY,
event_id INTEGER NOT NULL,
attendee_email VARCHAR(254) NOT NULL,
places INTEGER NOT NULL CHECK (places > 0),
booking_status VARCHAR(20) NOT NULL,
FOREIGN KEY (event_id) REFERENCES EVENT(event_id)
);
Types and supported constraint syntax vary by database system. Constraints provide a final integrity layer but do not replace clear UI validation and server-side checks.
INSERT and UPDATE
INSERT INTO BOOKING
(booking_id, event_id, attendee_email, places, booking_status)
VALUES
(501, 42, 'sam@example.org', 2, 'confirmed');
UPDATE BOOKING
SET booking_status = 'cancelled'
WHERE booking_id = 501;
Check UPDATE scope: omitting or miswriting WHERE may change every row. Preview the target with an equivalent SELECT and use transactions or backups appropriate to the system.
Update a specific event
Develop an UPDATE that marks event 42 as full.
Check your answer
UPDATE EVENT
SET status = 'full'
WHERE event_id = 42;ALTER and DROP
ALTER TABLE EVENT
ADD registration_url VARCHAR(500);
ALTER changes an existing structure. DROP removes a database object, such as a table, and can cause irreversible data loss.
Before structural change, consider existing data, defaults, nullability, dependent queries and exchange contracts. Adding a required field without a value for old records can break the system.
Secure application queries
Never build SQL by directly joining untrusted input into a query string.
# Unsafe idea
query = "SELECT * FROM BOOKING WHERE attendee_email = '" + input + "'"
Safe pattern
query = "SELECT booking_id, event_id, places FROM BOOKING WHERE attendee_email = ?" ExecuteWithParameters(query, [input])
- Use parameterised queries or prepared statements.
- Grant the application database account only needed permissions.
- Authorise the user before querying protected records.
- Select only fields the response needs.
- Avoid exposing database errors or schema details to clients.
Parameters protect values, not arbitrary table names or SQL keywords. Dynamic structure requires a controlled allow-list.
Independent practice: event availability
Using the VENUE, EVENT and BOOKING schema:
- Develop a query returning open event titles, venue names and dates in accessible venues, earliest first.
- Develop a query returning each event ID and confirmed booked-place total, but only totals of 10 or more.
- Develop a subquery returning events whose capacity is greater than the maximum capacity of events at venue 3.
- Explain why attendee email should not be returned by a public events endpoint.
View a sample solution
SELECT EVENT.title, VENUE.venue_name, EVENT.event_date FROM EVENT INNER JOIN VENUE ON EVENT.venue_id = VENUE.venue_id WHERE EVENT.status = 'open' AND VENUE.accessible = TRUE ORDER BY EVENT.event_date ASC;SELECT event_id, SUM(places) AS booked_places FROM BOOKING WHERE booking_status = 'confirmed' GROUP BY event_id HAVING SUM(places) >= 10;SELECT event_id, title, capacity FROM EVENT WHERE capacity > ( SELECT MAX(capacity) FROM EVENT WHERE venue_id = 3 );- The public endpoint needs event availability, not attendee personal information. Excluding the email minimises disclosure and enforces separation between public and authorised booking data.
Broader personal, social and economic impacts
Impact is a change with a stakeholder
An impact response should identify who experiences a change, how the solution causes it and why it matters.
| Perspective | Focus | Possible example |
|---|---|---|
| Personal | An individual's privacy, autonomy, safety, access, time or opportunity | A false record prevents one person receiving a service |
| Social | Groups, relationships, participation, fairness, trust and community practices | Digital-only access excludes people without reliable connectivity |
| Economic | Costs, income, jobs, productivity, competition and distribution of resources | Automation reduces processing cost but changes staff roles |
Categories overlap: one data breach may personally expose identity, socially reduce trust and economically create recovery costs.
Classify without oversimplifying
A route app reduces commuting time, but its live-location requirement prevents people with limited mobile data from participating. Determine one personal, social and economic impact.
View a sample solution
- Personal: participating commuters save time.
- Social: a connectivity requirement may widen unequal access.
- Economic: time savings may improve productivity, while mobile-data use shifts a cost to users.
Map stakeholders before judging
Stakeholders may experience different outcomes.
- Primary users and people represented in the data
- Staff who operate, review or maintain the solution
- The organisation and service partners
- People indirectly affected by automated or data-informed decisions
- Communities, governments and future users
Ask who gains, who carries cost or risk, who has decision power and who may be missing from the design process.
Stakeholder contrast
A council replaces staffed booking counters with an app. Analyse one benefit and one cost for two different stakeholders.
View a sample solution
The council may reduce routine processing cost and gain consistent records, but must fund development, security and support. Confident app users may book at any time, while people without suitable devices, connectivity or digital confidence may lose practical access unless an alternative channel remains.
Data exchange changes reach and risk
Exchanging data can remove duplicated entry, speed coordination and enable new services. It can also spread inaccurate or sensitive information beyond its original setting.
- Benefit: emergency teams receive timely, consistent status data.
- Risk: more systems and recipients increase exposure and dependence.
- Question: Is each field necessary for the receiving purpose?
- Control: minimise fields, authenticate parties, encrypt transmission and document responsibilities.
Interoperability can create public value, but an exchange should not be assumed ethical merely because it is technically possible.
Storage creates long-term consequences
Stored data can support history, accountability, personalisation and research. Retention also extends the time during which data may be misused, breached, misunderstood or applied to a new purpose.
| Decision | Impact question |
|---|---|
| What is stored? | Does each field have a defined need, especially sensitive data? |
| How long? | What benefit requires retention, and when is disposal appropriate? |
| Who can access it? | Are permissions necessary, attributable and reviewed? |
| Where? | Which provider, location, contract and legal obligations apply? |
Accuracy affects decisions
Data can be syntactically valid but inaccurate, incomplete, outdated or misleading. When a system scales, one error can be copied into many decisions.
Consider:
- who can correct a record
- whether source and update time are visible
- how conflicting values are resolved
- whether uncertainty is communicated
- what happens before a high-consequence decision.
Automation can amplify, not remove, error: consistent processing of inaccurate input produces consistent but still harmful output.
Trace an accuracy impact
A relief database incorrectly records that a household has received supplies. The automated system blocks a second request.
Explain a personal, social and economic consequence.
View a sample solution
Personally, the household may miss essential supplies. Socially, repeated unexplained errors can reduce community trust and affect already vulnerable groups unevenly. Economically, staff spend time investigating and correcting the record while emergency resources may be allocated inefficiently.
Ownership, control and responsibility
“Who owns the data?” may hide several different questions:
- Who is the information about?
- Who collected, created or inferred it?
- Who controls storage, access and disclosure?
- Who holds intellectual-property or contractual rights?
- Who is accountable for accuracy, security and correction?
- Can a person access, move, correct or delete it in the circumstances?
A platform possessing a copy does not mean it can ethically use that data for any purpose. Analyse legal obligations, notices, expectations, contracts and power relationships separately.
Access and the digital divide
Digital solutions can extend services across distance and time. They can also exclude through:
- device and data cost
- unreliable connectivity
- language and literacy barriers
- disability access barriers
- limited digital confidence
- identity-document or authentication requirements.
Providing an app is not the same as providing equitable access. Alternatives, assisted channels and accessible design may be required.
Recommend inclusion
A health appointment system moves to smartphone-only booking with mandatory biometric authentication. Recommend two inclusion refinements.
View a sample solution
Keep an assisted phone or in-person channel, and provide a secure non-biometric authentication alternative. These refinements support people without suitable devices, connectivity or usable biometrics while retaining access controls.
Work, cost and productivity
Automation may reduce repetitive work, increase consistency and allow a service to scale. Economic impacts can also include:
- development, infrastructure, energy, licensing and security costs
- training, role redesign or displacement
- new specialist and support work
- dependence on a provider or proprietary format
- costs of outages, errors and breaches
- unequal benefits between organisations and communities.
A serious evaluation avoids “technology creates jobs” versus “technology removes jobs”. Identify which tasks change, what new capabilities are required and who bears transition costs.
Environmental impacts
Digital services use devices, networks, data centres and storage. Impacts include energy use, cooling, hardware manufacture, electronic waste and replacement cycles.
Possible refinements include efficient data retention, appropriately sized models and media, renewable-energy procurement, repairable devices and avoiding unnecessary computation. An environmental claim should use evidence rather than assume that paperless always means impact-free.
Evaluate rather than list
Stakeholder: who is affected? Mechanism: what feature or data practice causes change? Impact: what benefit or harm occurs? Extent: under which conditions and for whom? Judgment: how significant or acceptable is it? Response: what refinement changes the balance?
Weak: The app has positive and negative impacts.
Evaluated: Real-time availability reduces wasted travel for connected users, but smartphone-only access excludes residents without reliable devices or data. The benefit is therefore unevenly distributed. A public kiosk and assisted booking channel would retain efficiency while reducing exclusion.
Independent practice: smart community transport
A regional service proposes an app that predicts demand and changes bus routes each hour. It collects precise passenger location, payment history and accessibility needs. The model was trained mainly on weekday smartphone users. Cash booking and the staffed phone line will close. The provider promises lower operating cost and shorter average waits.
- Analyse two personal, two social and two economic impacts for different stakeholders.
- Evaluate whether shorter average waiting time is enough to establish success.
- Recommend four refinements covering data, access, model evaluation and accountability.
View a sample solution
- Personal: some passengers wait less; location, payment and accessibility data create privacy consequences.
- Social: adaptive routes may improve regional participation, but training and smartphone-only access may reduce service for older people, weekend travellers or people without devices.
- Economic: the provider may reduce fuel and scheduling costs; passengers excluded from routes may face higher travel costs or reduced employment access, while staff roles change.
- Evaluation: an average can hide very long waits for smaller groups and does not test access, privacy, reliability or route coverage.
- Refinements: minimise and set retention for precise data; keep phone, cash or assisted access; test waiting time and missed-service rates by region, time and relevant user group; publish decision rules and provide human review and complaint mechanisms.
Exam clinics
Pseudocode and desk checking
How to use this clinic
This clinic brings together authentic QCAA external-assessment questions involving pseudocode, algorithm reasoning and desk checking.
- Attempt each question on paper without looking ahead.
- Compare your answer with the worked response and explanation.
- Use the QCAA marking criteria to check what earned the marks.
- Add anything missing to your answer in a different-coloured pen.
Download Pseudocode and desk checking (PDF)
The PDF includes the original question extracts, worked responses, explanations and marking-guide extracts.
Cybersecurity and the CIA triad
How to use this clinic
This clinic brings together authentic QCAA external-assessment questions about cybersecurity and the confidentiality, integrity and availability triad.
- Attempt each question on paper without looking ahead.
- Compare your answer with the worked response and explanation.
- Use the complete QCAA sample response and marking criteria to check what earned the marks.
- Add anything missing to your answer in a different-coloured pen.
Download Cybersecurity and the CIA triad (PDF)
The PDF includes the original question extracts, worked responses, explanations and complete QCAA sample-response and marking-criteria extracts.
Data-flow diagrams
How to use this clinic
This clinic brings together authentic QCAA external-assessment questions about data-flow diagrams and exchange-system relationships.
- Attempt each question on paper without looking ahead.
- Compare your answer with the worked response and explanation.
- Use the complete QCAA sample response and marking criteria to check what earned the marks.
- Add anything missing to your answer in a different-coloured pen.
Download Data-flow diagrams (PDF)
The PDF includes five QCAA questions from 2021–2025, worked responses, explanations and complete marking-guide extracts.
Practice exams
Complete 2024 and 2025 QCAA Digital Solutions practice examinations, with original stimulus and question material, official marking guides, and independent worked explanations.
2024 Digital Solutions practice exam
Complete 2024 practice examination with the original QCAA material and independent, student-friendly explanations.
What this booklet does: Use the original paper as a timed or untimed practice exam, check your work against the official marking guide, then use the final explanation pages to learn how each answer is constructed.
What is included
- Original 2024 stimulus book
- Original multiple-choice question book
- Original question and response book
- Official QCAA marking guide and sample responses
- Independent explanations for every question
- Alternative valid answers and worked visual examples where appropriate
Topics covered
Visual communication and accessibility; impacts of data use; algorithms and JSON; useability; cybersecurity and data exchange; Australian Privacy Principles; data-flow diagrams; and interface design.
How to use the booklet
- Complete the stimulus and examination questions on paper.
- Compare your response with the official marking guide.
- Read the independent explanations at the end, including why multiple-choice distractors do not fit.
- Compare alternative responses and identify which marking criteria each one satisfies.
Download
Open or download the 2024 practice-exam booklet
The same PDF is also available from the Attachments panel on this page.
Original assessment material: © State of Queensland (QCAA) 2024. The original documents retain their attribution and licence notices. The added cover and explanations are independent teaching material and are not an official QCAA publication or marking decision.
2025 Digital Solutions practice exam
Complete 2025 practice examination with the original QCAA material and independent, student-friendly explanations.
What this booklet does: Use the original paper as a timed or untimed practice exam, check your work against the official marking guide, then use the final explanation pages to learn how each answer is constructed.
What is included
- Original 2025 stimulus book
- Original multiple-choice question book
- Original question and response book
- Official QCAA marking guide and sample responses
- Independent explanations for every question
- Alternative valid answers and worked visual examples where appropriate
Topics covered
Encryption and hashing; programming and JSON; privacy and security; file transfer; data-flow diagrams; constraints; data dictionaries; desk checking; smart traffic systems; and useability.
How to use the booklet
- Complete the stimulus and examination questions on paper.
- Compare your response with the official marking guide.
- Read the independent explanations at the end, including why multiple-choice distractors do not fit.
- Compare alternative responses and identify which marking criteria each one satisfies.
Download
Open or download the 2025 practice-exam booklet
The same PDF is also available from the Attachments panel on this page.
Original assessment material: © State of Queensland (QCAA) 2025. The original documents retain their attribution and licence notices. The added cover and explanations are independent teaching material and are not an official QCAA publication or marking decision.