The Course Specifications at a Glance
Course Specifications pp.4–21 Every tool, notation and list NESA names, and where it turns up in the exam
Why the specifications are examinable
NESA states on page 4 that the specifications “indicate the depth of study required for some concepts” and that the syllabus “must be applied in conjunction with” them. In practice this means three things. First, the symbols are fixed: a data store is an open-ended rectangle, not a cylinder. Second, the lists are fixed: NESA names four SQL keywords, and those are the ones you are expected to know. Third, some depth is fixed: for machine learning you only need to know what it is used for, not how it works.
Where each tool sits, and what the 2025 HSC asked
| Specifications section | Page | On this page | Seen in the 2025 HSC |
|---|---|---|---|
| Data flow diagrams | 4–5 | Data flow diagrams | Level 0 versus Level 1 DFD using the correct symbols |
| Flowcharts; system flowcharts | 6–7 | Flowcharts, System flowcharts | Drawing tasks, including DFDs and flowcharts |
| Decision trees; data dictionary | 8–9 | Decision trees, Data dictionary | |
| Storyboards | 9 | Storyboards | Interface (screen) design with form controls |
| Network diagrams; graph and network theory | 10–11 | Network diagrams, Graph and network theory | |
| Gantt charts; process diaries | 12–13 | Gantt charts, Process diaries | A Gantt chart to schedule and track a team’s activities |
| Implementation and testing methods | 14–15 | Implementation, Testing | |
| Normalisation and schemas | 16 | Relational databases | |
| SQL syntax | 17 | SQL syntax | A query using four SQL keywords and a join |
| Machine learning and statistical modelling | 18 | Machine learning | |
| Database, spreadsheet, expert system, graphics and presentation software | 19–21 | Database, Spreadsheet, Expert system, Graphics and presentation | Formulas with SUM, LOOKUP and IF, checked with test data; conditional formatting, pivot tables and chart choice |
The last column is our summary of NESA’s 2025 marking feedback. NESA’s own wording is on its 2025 HSC exam page ↗.
How each tool is laid out
Each section follows the same routine so you can revise quickly: what the tool is for, NESA’s notation, how to draw or use it step by step, a warning about common exam mistakes, an exam tip and a short “Try this” task with a model answer you can reveal after you have had a go. Symbol keys and worked examples are redrawn from NESA’s own; the extra examples (a school canteen, a games database) are ours.
Data Flow Diagrams (DFDs)
Course Specifications pp.4–5 Four symbols, the voting-system example and the Level 0 diagram
What it is for
A data flow diagram shows what data moves between the people and organisations outside a system, the processes inside it and the places data is kept. It does not show when things happen or how they are coded, which makes it the standard tool for agreeing requirements with a client. In NESA’s own Gantt chart example (p.12) “Produce a data flow diagram” is a task in requirements gathering.
NESA’s symbols (p.4)
Symbol key
Data flow diagram symbols
The four symbols NESA uses, with what each one means.
What to notice
- A process is a circle. A data store is a rectangle that is open on one side. An external entity is a closed, near-square rectangle.
- Every data flow is a curved arrow with a label.
Try thisClose the page and draw all four symbols from memory, with a one-line meaning beside each.
| Symbol | Shape | Meaning (in our words) | Example |
|---|---|---|---|
| Process | Circle | Takes in data and turns it into different data (an output). | Voting |
| Data store | Rectangle, open on one side | Anywhere data is kept between processes: an electronic file or non-computer storage such as a filing cabinet. | Electoral roll |
| External entity | Closed, near-square rectangle | Any person, organisation or element outside the system that supplies data to it or receives data from it. | Voters |
| Data flow | Labelled, curved arrow | Data moving between processes, data stores and external entities. The label names the data, and the arrowhead shows the direction. | Confirmation |
Level 0 and Level 1 (p.5)
NESA describes a Level 0 diagram as an overview of the entire system that shows no data stores and no internal processes. The diagram above it on p.5, with three processes and two stores, shows the detail behind that overview. NESA does not name it, but the 2025 HSC called it a Level 1 diagram, so we do too.
| Level 0 (context diagram) | Level 1 | |
|---|---|---|
| Shows | The whole system as a single process and the data crossing its boundary | The main processes inside the system and how data moves between them |
| Processes | One circle, named for the system | Several circles, one per major function |
| Data stores | None | Shown |
| External entities | All of them | The same ones |
| Best for | Agreeing the scope: who and what the system talks to | Explaining how the system works and what it must remember |
Data flow diagram
Level 0 data flow diagram: a voting system
NESA’s voting system as one process, with three external entities and no data stores.
What to notice
- Only four flows cross the boundary: Candidates’ details, Voters’ details and vote, Confirmation, and Election results.
- Nothing is stored here. The Electoral roll and Endorsed candidates appear only in Level 1.
Try thisList the four boundary flows, then find each one again in the Level 1 diagram below.
Data flow diagram
Data flow diagram (Level 1): a voting system
The detail inside the voting system: three processes and two data stores.
What to notice
- Pairs of flows between the same two symbols curve to opposite sides, each with its own label.
- Data moves between entities and processes, or between processes and stores. No flow joins two stores or two entities directly.
Try thisWhich process changes the Endorsed candidates store, and which one only reads it?
How to draw one, step by step
We will build a diagram for an online ordering system in a school canteen. Students place an order and the canteen manager sets the menu and receives the order list.
- List the external entities: everyone and everything outside the system that sends or receives data. Here: Student and Canteen manager.
- Draw Level 0. Put one circle in the centre, name it for the whole system, place the entities around it and add a labelled flow for every piece of data that crosses the boundary.
- Break the system into processes. Name each circle for a job the system does, with a verb: Manage menu, Take order, Prepare order list.
- Add data stores wherever data has to be kept for a later process to use: Menu and Orders.
- Connect and label every flow. Label each arrow with the data itself (Order request, not “send”).
- Check the balance: every flow that crosses the boundary in Level 0 must appear, with the same label, in Level 1. Every process needs at least one flow in and one flow out.
Data flow diagram
Level 0 data flow diagram: a school canteen ordering system
Step 2: the whole system as one process, with four labelled flows crossing its boundary.
What to notice
- Two entities and one process. No stores, no internal processes.
Try thisAdd a third entity, Parents, who pay a top-up into a student’s canteen account. Which new flows would appear?
Data flow diagram
Level 1 data flow diagram: a school canteen ordering system
Steps 3 to 6: the same system opened up into three processes and two data stores.
What to notice
- The four Level 0 flows (Order request, Order confirmation, Menu and prices, Daily order list) are all still here, unchanged.
- The Menu and Orders stores are new: they hold data between processes.
- Every store is joined to a process, never straight to an entity.
Try thisWhere would a Payments store fit if students paid online, and which process would write to it?
Model answer
Level 0: one circle (Class booking) with entities Member and Instructor. Flows: Booking request (Member to system), Booking confirmation (system to Member), Class list (system to Instructor). If instructors also set up the timetable, add Class details from Instructor.
Level 1: processes Set up class (Instructor sends Class details, written to the Classes store), Make booking (Member sends Booking request, reads Classes for Available classes, writes to the Bookings store, returns Booking confirmation) and Produce class list (reads Bookings for Booked members, sends Class list to Instructor). Check that all Level 0 flows appear in Level 1 with the same labels.
Flowcharts
Course Specifications p.6 Four symbols, read top to bottom and left to right
What it is for
A flowchart represents logic: the steps a process follows and the decisions along the way. It is what you draw when you must show how a rule works, such as when a delivery charge applies, before writing the program or formula that carries it out.
NESA’s symbols (p.6)
Symbol key
Flowchart symbols
The four symbols in NESA’s Enterprise Computing flowcharts.
What to notice
- There are only four symbols. Do not add others, such as a subprogram box or connector circles.
- Arrows show the direction of flow.
Try thisName the symbol for each step: “Enter the student’s mark”, “Add 5 to the mark”, “Is the mark over 50?”, “Finish”.
| Symbol | Use it for | Text inside |
|---|---|---|
| Terminator (rounded ends) | The start and the end. NESA’s example starts with START and ends with END. | START, END |
| Input or output (parallelogram) | Data coming in or going out | Enter the delivery distance |
| Process (rectangle) | An action or calculation | No delivery charge |
| Decision (diamond) | A question with two possible answers, each leaving on a labelled arrow | Delivery distance >10km? |
NESA’s worked example
Flowchart
Flowchart: delivery charge for perishable and non-perishable items
Logic that decides whether a delivery charge applies.
What to notice
- Every arrow leaving a decision is labelled Yes or No.
- Two different paths lead to the same process, Delivery charge applies, and the paths join before END.
Try thisTrace an order for non-perishable items, 12 km away, worth $150. What does the flowchart output?
To trace a flowchart, put your finger on START and follow the arrows, answering each decision with test data. The table shows four tests on NESA’s example.
| Perishable? | Distance | Order value | Path taken | Result |
|---|---|---|---|---|
| Yes | (not asked) | (not asked) | First decision: Yes | Delivery charge applies |
| No | 8 km | (not asked) | First: No, second: No | No delivery charge |
| No | 12 km | $80 | No, Yes, third: Yes | Delivery charge applies |
| No | 12 km | $150 | No, Yes, third: No | No delivery charge |
How to draw one, step by step
- Write the rule in plain words and list every input the logic needs.
- Draw a START terminator at the top, then an input for each value you need.
- For each condition, draw a decision diamond with the question inside, using the same wording and symbols as the rule (“>10km?”).
- Draw two exits from each diamond and label both (Yes and No). Follow each one to a process or another decision.
- Bring separate paths back together where the logic joins, then finish with one END terminator.
- Trace the chart with test data for every path, including the boundary values.
Model answer
START, then input “Enter days overdue”. Decision “Days overdue ≤ 0?”. Yes leads to the process “Fine = $0”. No leads to a second decision “Days overdue > 10?”: Yes leads to “Fine = $5.00”, and No leads to “Fine = days overdue × $0.50”. All three processes flow into one output “Display the fine”, then END. Test with 0 days (no fine), 3 days ($1.50), exactly 10 days (No path: 10 × $0.50 = $5.00) and 11 days (Yes path: $5.00). Both paths give $5.00 at the boundary, which confirms the cap is applied consistently.
System Flowcharts
Course Specifications p.7 Nine symbols for the main processes and devices in a system
What it is for
A system flowchart shows the main processes and devices in a system: what is typed in, what is stored, what is displayed or printed and where data travels over a network. Where a flowchart shows the order of decisions, a system flowchart shows where the data goes. NESA says its arrows show “the direction of data between each of the symbols”.
| Flowchart (p.6) | System flowchart (p.7) | |
|---|---|---|
| Shows | Logic and decisions | Processes, devices and storage |
| Arrows mean | Direction of flow through the logic | Direction of data between symbols |
| Decisions | Yes/No diamonds | None: the decision-making sits inside a process |
| Symbols | Four | Nine |
NESA’s symbols (p.7)
Symbol key
System flowchart symbols
The nine symbols NESA lists for system flowcharts.
What to notice
- The telecommunications link is a zig-zag line, not a closed shape.
- NESA prints “Online dispay” (a typing slip in the original). The symbol is the online display.
Try thisCover the labels and name each symbol from its shape alone.
| Symbol | Typically stands for | Example |
|---|---|---|
| Paper document | A printed or handwritten document | Patient account |
| Process | A program, procedure or operation that changes data | Billing |
| Direct access storage | A database or disk where any record can be reached directly | Patient file |
| Online display | Output shown on a screen | Patient confirmation |
| Manual operation | A step a person does by hand | Checking a signature |
| Telecommunications link | Data sent over a communication link | Link to a cloud service |
| Online input | Data entered directly, for example by keyboard or touchscreen | Visit details |
| Magnetic tape | Tape storage, often used for backups | Overnight backup |
| Cloud | Storage or a service on the internet | Health data |
NESA only names each symbol. The “typically stands for” column is our explanation.
NESA’s worked example
System flowchart
System flowchart: a doctor managing patient information
Devices, storage and processes in a medical practice.
What to notice
- The double-headed arrow between Add a new patient and Patient file means the process both reads and writes the file.
- Consultation sends data to a second file and on to the Health data cloud through a telecommunications link. It also feeds Billing, which produces a paper Patient account.
Try thisTrace the data from “Visit details” to the paper Patient account, naming each symbol on the way.
How to draw one, step by step
- List the processes the system carries out, in the order the data reaches them.
- For each process, list where its data comes from (online input, paper document, storage) and where its results go (storage, display, printout, cloud).
- Choose the correct symbol for each device or store and write a short name inside it: what the data is, or what the process does.
- Join symbols with arrows that point the way the data moves. Use a double-headed arrow when a process reads and writes the same store.
- Insert the telecommunications link where data crosses a network, for example to reach a cloud service.
- Check that every process has an input and an output and that every store is joined to a process.
Model answer
Online input “Order details” → process “Record order” (double-headed arrow to direct access storage “Customer file” if it checks the customer’s details) → online display “Order confirmation”, and → paper document “Packing list”. Process “Record order” → telecommunications link → cloud “Accounting service”. Only the nine NESA symbols are used and every arrow points the way the data travels.
Decision Trees
Course Specifications p.8 All the combinations of decisions and their resulting actions, in two layouts
What it is for
A decision tree lays out every possible combination of conditions and the action that results from each. NESA adds that each decision path leads either to another decision or to a final action. It is the tool for rules with several factors, such as the settings for a smart house or whether to buy a car.
NESA’s two forms (p.8)
Decision tree
Decision tree (horizontal): comfort control in a smart house
Read left to right: three temperature ranges, two humidity ranges, then the settings.
What to notice
- Three temperature branches each split into two humidity branches, giving 3 × 2 = 6 paths.
- Each path ends in a set of final actions: fan, cooling, heating and window.
Try thisThe house is 22°C and 40% humidity. Read off the fan, cooling, heating and window settings.
Decision tree
Decision tree (vertical): buying a car
Read top to bottom: each rectangle is a condition or a final action, and each branch is labelled Yes or No.
What to notice
- Rectangles, not diamonds. Every branch is labelled.
- Different branches ask different follow-up questions: a car over 10 000 km is judged on accessories, not on colour.
Try thisA silver hatchback with 6 000 km on it: does the tree say buy or do not buy?
Try it
Follow a path through a decision tree
Answer a tree's questions and read off the path and its IF-THEN rule. Enable JavaScript to use this tool. In short: every path from the root to an action is one IF-THEN rule.
How to draw one, step by step
- List the conditions (inputs) and the actions (outputs) the rule involves.
- Choose the first condition and make it the root. Each answer becomes a labelled branch.
- From each branch, add the next condition that matters for that branch, or a final action if the answer is settled.
- Make sure the branches from any one condition cover every possible value once: no gaps and no overlaps (for example >30, 15–30 and <15).
- Trace at least one path to every final action to confirm the tree gives the outcome the rule requires.
Model answer
Root: “Year 11 or 12?”. Yes leads to “Signed agreement returned?”, where Yes gives “Issue laptop” and No gives “Ask student to sign”. No (younger year) leads to “Teacher approval?”, where Yes gives “Issue laptop” and No gives “Refuse”. There are four paths, every branch is labelled and every path ends in a final action.
Data Dictionary
Course Specifications p.9 A comprehensive description of each field in a database
What it is for
A data dictionary describes every field in a database in enough detail that a developer could build the table and a data-entry operator could fill it in correctly. NESA says it commonly includes six things, and its table has exactly these six columns: field name, data type, data format, field size, description and example.
NESA’s example (p.9)
| Field name | Data type | Data format | Field size | Description | Example |
|---|---|---|---|---|---|
| UserID | Text | XXXNNNN | 7 | Unique seven-character field with 4 digits | XYZ1539 |
| FirstName | Text | XXX…XXX | 25 | First name of employee | Jo |
| Surname | Text | XXX…XXX | 25 | Surname of employee | Smith |
| DOB | Date | DD/MM/YYYY | 10 | Date of birth | 15/07/1982 |
| HourlyPayRate | Currency | $#####.## | 9 | Rate of pay expressed in dollars per hour | $34.50 |
| Height | Real | #.## | 3 | Height in metres, with two decimal places | 1.58 |
| FeesPaid | Boolean | 1 | Y or N for Yes or No | Y |
NESA’s own examples count field size slightly differently: the pay rate counts every character including the dollar sign and point, while the height counts only the digits. Whichever you choose, apply it consistently and say what you counted.
How to build one, step by step
- List each table, then every field in it. Use one row per field.
- Choose the data type by how the field is used. Text for names and for numbers you will never calculate with (phone numbers, postcodes). Date, Currency, Real and Boolean, as in NESA’s table, for the rest. Whole numbers are usually called Integer.
- Write the data format with X, N and #, or DD/MM/YYYY for dates, so the layout is unambiguous.
- Set the field size to the longest value the field must hold.
- Write a description that adds information, such as units or rules, rather than repeating the name.
- Give a realistic example that matches the format.
If a question also asks for validation, add a column for it. It is not one of NESA’s six, so treat it as an extension, as in our canteen example below.
| Field name | Data type | Data format | Field size | Description | Example | Validation (extension) |
|---|---|---|---|---|---|---|
| OrderID | Text | CNNNN | 5 | Unique order number: the letter C then four digits | C0417 | Presence check; must match format |
| ItemName | Text | XXX…XXX | 30 | Name of the menu item ordered | Chicken wrap | Presence check |
| Price | Currency | $#.## | 5 | Price of one item in dollars | $5.50 | Range check: $0.50 to $20.00 |
| OrderDate | Date | DD/MM/YYYY | 10 | Date the order was placed | 12/08/2026 | Not later than today |
| Collected | Boolean | 1 | Y if the student has collected the order, otherwise N | N | Only Y or N |
Model answer
| Field name | Data type | Data format | Field size | Description | Example |
|---|---|---|---|---|---|
| MemberID | Text | XXXNNN | 6 | Unique member code: three letters then three digits | SMI042 |
| Name | Text | XXX…XXX | 40 | Member’s full name | Sam Nguyen |
| DateJoined | Date | DD/MM/YYYY | 10 | Date the member first joined the club | 01/02/2024 |
| AnnualFee | Currency | $###.## | 7 | Fee for one year, in dollars | $120.00 |
| Junior | Boolean | 1 | Y if under 18, otherwise N | Y |
Storyboards
Course Specifications p.9 The screens of an interface and the links between them
What it is for
A storyboard shows the various interfaces (screens) of a product and the links between them. You draw one before building a website or app so that the client and the team can agree on what each screen contains and how a user moves around.
NESA’s notation (p.9)
Storyboard
Storyboard: three pages promoting a school canteen
Three screens and the navigation buttons that link them.
What to notice
- Each screen has a title, a Help button at the top right, a column of navigation buttons and a content panel.
- The button for the screen you are on is highlighted. A dot on a button with an arrow means “this button opens that screen”.
Try thisFrom the Prices screen, list every screen you can reach in one click.
How to draw one, step by step
- List the screens the user needs and give each a title.
- Draw each screen as a rectangle with the same layout: title, Help button, navigation column, content panel.
- Sketch the content in each panel: headings, text lines, image boxes, tables. Detail is not needed; positions are.
- Show the navigation. Highlight the current screen’s button and draw an arrow from every button to the screen it opens.
- Number the screens and check every screen can be left: there must be a way back and an Exit.
Checklist for your storyboard
Three screens with the same frame. Home has a search box and a Search button linked to Search results. Search results lists titles with a link to Book details on each. Book details shows the cover image box, the author, the availability and a Home button. Every screen has Help and Exit, and the current screen’s button is highlighted.
Network Diagrams
Course Specifications p.10 Symbols for the devices (nodes) and how they are connected
What it is for
A network diagram, also called a network map, documents a network: the devices (nodes) and how they connect. It is what you would give a technician who has to set up, extend or fix the network.
NESA’s notation (p.10)
Network diagram
Network diagram: devices joined to a router and two hubs
A router links the internet to two hubs, a wireless device and the devices behind them.
What to notice
- Every device has a label. NESA says students should clearly label all devices, and that different software draws devices with different symbols.
- Dotted lines show the connections. The router is the link between the internet and everything else.
Try thisWhich devices lose their connection to the internet if the left-hand hub fails?
| Device | Role in the network (our explanation) |
|---|---|
| Router | Joins networks together and passes traffic between the local network and the internet |
| Hub | A simple connection point that repeats what it receives to every device plugged into it |
| Switch | A connection point that sends data only to the device it is meant for. Most modern networks use switches where NESA’s example shows hubs. |
| Wireless device | A device that connects without a cable, for example by Bluetooth or Wi-Fi |
| Computer, laptop, tablet, smart phone, printer | End devices (nodes) that send or receive data |
How to draw one, step by step
- List every device on the network, including the connection to the internet.
- Place the central device (usually the router) in the middle, and the internet above it.
- Add the hubs or switches, then group the end devices around the one they connect through.
- Draw a line for each connection. Use a different line style for wireless connections and add a small key if you use more than one line style.
- Label every device with its type, and its name or purpose where that helps (for example “Printer – front office”).
Model answer
Internet at the top, joined to Router. From Router: one wired line to Switch and three dotted wireless lines to Laptop 1, Laptop 2 and Phone. From Switch: five wired lines to Printer and Computer 1 to 4. Every device is labelled and a small key shows wired (solid) and wireless (dotted) lines.
Graph and Network Theory
Course Specifications p.11 Nodes and links, applied to the design of social networks
What it is for
Graph and network theory represents things and the relationships between them. NESA says it can be applied in the design of social networks: people and groups become circles, and their connections become lines. Drawing the network makes it easy to see who or what is central and which groups cluster together.
NESA’s notation (p.11)
| Symbol | Name | Represents |
|---|---|---|
| Circle | Node (vertex) | An individual or a category. Its size may show the size of a dataset, where appropriate. |
| Straight line | Link (edge) | A connection between nodes, groups of nodes or clusters. A label on the link names the relationship. |
Graph
Graph: VB’s social network
Individuals and categories linked to VB, with the relationship written on each link.
What to notice
- VB is the largest circle: size shows importance or the amount of activity in the network.
- The link labels (Friend, Listen, Watch, Group) tell you the relationship between VB and each node.
Try thisHow many nodes are directly linked to VB, and which of them are categories rather than individuals?
Reading the graph: the number of links at a node shows how connected it is, a cluster is a group of nodes mostly linked to each other, and a node that joins two clusters is a bridge between them. NESA does not name these ideas, but they are how a graph is interpreted.
How to draw one, step by step
- List the nodes: the individuals and the categories in the network.
- Decide which links exist and what each relationship is called.
- Place the most important node in the centre and draw it largest if size is used to show importance.
- Draw straight lines between related nodes and write the relationship on each line.
- Group related nodes near each other so clusters are visible.
What a good answer shows
Your circle is the largest. Four individual nodes and two category nodes each have a straight link to you, labelled (for example Friend, Plays, Studies). Any two classmates who also know each other are linked, forming a cluster. You can explain which node has the most links and what that tells you.
Gantt Charts
Course Specifications p.12 Tasks on a dated timeline, with dependencies, milestones, resources and progress
What it is for
A Gantt chart displays each component task of a proposed system development on an estimated timeline. It answers: what has to be done, how long each task should take, which tasks depend on others, who is doing them and how far along they are. NESA says other formats are acceptable, so what matters is that the main elements are present.
The main elements (NESA example 1)
Gantt chart
Gantt chart: requirements gathering
Eight tasks on a dated timeline, with dependencies and a milestone.
What to notice
- Task names are self-explanatory. The time scale shows months and dates, and weekends are shaded.
- Elbow arrows show dependencies: the report cannot start until the data flow diagram is finished.
- The hollow diamond is a milestone, a point in time rather than a task with a duration.
Try thisWhich task must finish before task 6, Produce a data flow diagram, can begin?
| Element | What NESA asks for | How it appears |
|---|---|---|
| Task names | Self-explanatory titles | “Interview participants”, not “Phase 1” |
| Estimated time | The time each task needs | Bar length on the timeline |
| Dependent tasks | Clearly shown | An arrow from the end of one bar to the start of the next |
| Time scale | Clearly indicated with dates | Months and day numbers across the top |
| Milestones | Important ones clearly marked | A hollow diamond |
Resources and percentage completion (NESA example 2)
NESA’s second example allocates team members to tasks and shows the percentage complete of each. It also says the chart should be regularly updated during development to reflect actual versus estimated times.
Gantt chart
Gantt chart: resources and percentage completion
Tasks grouped into Analysis, Design and Development, with people and progress on each bar.
What to notice
- The darker part of each bar is the work done. The lighter part is the work still to do.
- Summary tasks (Analysis, Design, Development) group the smaller tasks, and milestones carry dates.
- Team members’ names sit beside the tasks they are responsible for.
Try thisWhich phase is furthest through, and which team members have work allocated to them in the Design phase?
How to build one, step by step
- List the tasks the project needs, with names that explain themselves. Group them into phases if there are many.
- Estimate a duration for each task in days or weeks.
- Find the dependencies: which tasks cannot start until another finishes. Tasks with no dependency between them can run in parallel.
- Draw the timeline with dates, then place each bar so it starts after the tasks it depends on. Add arrows for the dependencies.
- Mark milestones: the points that matter, such as “Requirements approved” or “Testing complete”.
- Allocate people to tasks and check nobody is double-booked at the same time.
- Track and update: shade each bar to the percentage complete and revise the plan when actual times differ from the estimates.
One useful reading skill, though NESA does not name it: the longest chain of dependent tasks decides the earliest finish date. In example 1, tasks 1, 2, 5, 6 and 7 form that chain, so a delay to any of them delays the milestone.
Model answer
Start on Monday 3 August. Interview the club secretary (Ana): 3–4 Aug. Design the form (Ben): 5–7 Aug, starting after the interview. Build the form (Ben and Ana): 10–14 Aug. Test the form (Ana): 17–19 Aug. Milestone “Form approved” on 19 Aug. Hand over to the club (Ana): 20 Aug. Each task has an arrow from the one before it. Week-by-week you would shade each bar to the percentage complete and record any difference between the estimate and the actual time.
Process Diaries and Log Books
Course Specifications p.13 Documenting the progress of a project at regular intervals
What it is for
A process diary (or log book) documents the progress of a project as it happens. Where a Gantt chart shows the plan, the diary records what was done, what went wrong and what you learned. It is also evidence of your own work when a project is marked.
What NESA says an entry should include (p.13)
Entries are made by team members at regular intervals and should include the following eight items.
| Item | What to write | Example |
|---|---|---|
| Date | The day of the entry | Thursday 13 August |
| Person making the entry | Your name, so that each member’s contribution can be seen | Sam Nguyen |
| Progress since the last entry | What has changed since you last wrote | Menu screen is built and linked to the order screen |
| Tasks achieved | The specific tasks completed | Finished the Menu and Orders tables |
| Stumbling blocks or issues and how they were managed | What went wrong and what you did about it | Prices displayed with one decimal place; changed the field format to $#.## |
| Possible approaches for upcoming tasks | Options you are considering for the next steps | Either a drop-down list or option buttons for choosing a lunch item |
| Reflective comments | What you learned and what you would change | Testing the form earlier would have caught this sooner |
| Resources used | Tools, data, people and sources you used | Spreadsheet software; feedback from the canteen manager |
How to keep one, step by step
- Decide the interval (for example after every lesson or work session) and stick to it.
- Write the entry as soon as you finish, while the detail is fresh.
- Cover every item in the list, even briefly. If nothing went wrong, say so.
- Record problems honestly: what happened, how you found it, what you did and whether it worked.
- Read back over earlier entries when you plan the next one, so your reflections shape what you do.
What a good answer shows
Your name and today’s date. What you covered since your last session. The specific tasks you finished (for example redrew the voting Level 0 DFD). A problem you hit (mixing up the process and data store symbols) and how you fixed it. Your plan for next time. A reflection on how you learn best. The resources you used, such as this page.
System Implementation Methods
Course Specifications p.14 Recognise and understand: direct, parallel, pilot and phased
What it is for
Implementation is the step where a new or redesigned system replaces the old one, or is put into use for the first time. The method you choose decides how much risk you take, how much it costs and how long the changeover lasts.
The four methods
| Method | How it works | Strengths | Weaknesses |
|---|---|---|---|
| Direct | The old system is switched off and the new one switched on at an agreed moment. | Fastest and cheapest. Everyone moves at once. | Highest risk. If the new system fails there is nothing to fall back on. |
| Parallel | Old and new systems run side by side for a period. Outputs are compared before the old system is retired. | Lowest risk. The old system is a safety net and results can be checked. | Costs the most and takes longer: staff enter data twice and run two systems. |
| Pilot | The complete new system is introduced in one location or one group first. If it works, it is rolled out to everyone else. | Problems are found on a small scale. Feedback shapes the wider rollout. | Slower overall. The organisation runs two systems for a while, and the pilot group may not represent everyone. |
| Phased | The new system is introduced one part (module or function) at a time, for everyone, until all of it is live. | Spreads the risk and the training load. Each stage can be fixed before the next. | Old and new must work together during the changeover, which can be complicated. Full benefits come late. |
Animated diagram
Implementation methods: switching from the old system to the new
Watch the steps, or step through with the arrow keys.
What to notice
- Direct switches every office at once, so a fault hits everyone. Parallel keeps the old system running as a fallback.
- Pilot moves one office first. Phased moves one module at a time across all offices.
Try thisUse the tabs to compare how each method behaves when the new system has a fault.
Choosing a method for a scenario
| Scenario | Best fit | Why |
|---|---|---|
| A regional hospital changes its patient records system | Parallel | Failure is unacceptable, so the old system stays as a fallback while results are compared. |
| A retail chain with 40 stores introduces new point-of-sale software | Pilot | Trial in one store, fix the problems, then roll out to the rest. |
| A council adds new modules to its system: rates, then permits, then libraries | Phased | Each module goes live in turn and staff are trained a module at a time. |
| A small sports club replaces its membership spreadsheet with a simple app | Direct | Low risk, cheap, and the old spreadsheet can be kept as a backup copy. |
How to choose, step by step
- Ask how critical the system is. If failure is costly or dangerous, lean towards parallel or pilot.
- Ask how many users and locations are involved. Many sites suggest pilot or phased.
- Ask whether the system splits into independent modules. If it does, phased is possible.
- Weigh cost and time. Parallel is safest but most expensive, and direct is cheapest but riskiest.
- Justify the choice with a reason drawn from the scenario, and name the disadvantage you are accepting.
Model answer
A pilot in one depot, followed by a rollout, is a sound choice. It limits the damage if the system has faults, because only one depot is affected, and drivers’ feedback can be used to fix problems before the other four depots switch. The trade-off is a slower changeover and running two systems at once. Running the old system in parallel at the pilot depot would reduce the risk further, at extra cost.
Methods for Testing a System
Course Specifications p.15 Recognise and understand: functional, acceptance, live data, simulated data, beta and volume testing
What it is for
Testing checks that a system does what it should before people rely on it. Different methods find different kinds of problems, so a project normally uses several.
The six methods
| Method | What it checks | Who and how | Example |
|---|---|---|---|
| Functional testing | Each function works as the requirements say | Developers or testers give inputs and compare results with what is expected | Enter a $150 order and check that no delivery charge is added |
| Acceptance testing | The finished system meets the client’s agreed needs | The client or user runs it against agreed criteria, and decides whether to accept it | The canteen manager tries her daily tasks and signs off |
| Live data | The system copes with real data from the organisation | Real records are used in the test, with care for privacy | Last term’s actual orders are loaded into the new ordering system |
| Simulated data | The system handles chosen cases, including unusual and invalid ones | Testers make up data on purpose, so results can be predicted | A test order with a price of $0.00 or a date in the future |
| Beta testing | Faults that appear in real use, by real users | A near-final version is released to a limited group outside the development team for feedback | Fifty students use the new app for a fortnight and report problems |
| Volume testing | Performance under a large amount of data or many users | Testers load the system with large quantities of data or many simultaneous users | Ten thousand orders are loaded to see whether searches slow down |
Testing with simulated data: a worked example
Here is a functional test plan with simulated data for NESA’s delivery charge flowchart. The expected column is worked out from the rule before the test is run. The actual column is filled in during testing.
| Test | Perishable? | Distance | Order value | Expected result | Purpose |
|---|---|---|---|---|---|
| 1 | Yes | 2 km | $40 | Delivery charge applies | Normal data, perishable path |
| 2 | No | 5 km | $40 | No delivery charge | Normal data, short distance |
| 3 | No | 10 km | $40 | No delivery charge | Boundary: exactly 10 km is not more than 10 |
| 4 | No | 11 km | $100 | Delivery charge applies | Boundary: exactly $100 is not more than $100 |
| 5 | No | 11 km | $101 | No delivery charge | Boundary: just over $100 |
| 6 | No | −3 km | $40 | Rejected as invalid | Invalid data: a negative distance. The flowchart has no check for this, so the test would fail and reveal a missing validation step |
How to plan testing, step by step
- List what the system must do (its functions) from the requirements.
- For each function, choose test data: normal values, boundary values and invalid values.
- Work out the expected result before testing, so you are checking the system rather than believing it.
- Run the tests and record the actual result, then fix and retest anything that fails.
- Move on to the client’s acceptance test, a beta release if the system will be used widely, and a volume test if it must handle a lot of data or users.
Model answer
(a) Beta testing. (b) Volume testing. (c) Acceptance testing. (d) Functional testing using simulated data.
Relational Databases: Normalisation and Schemas
Course Specifications p.16 Minimising duplication with linked tables, and drawing the schema
Normalisation
NESA describes normalisation as a process in relational database design where data duplication is minimised by separating the database into a number of smaller, linked tables. Each table should include fields that are solely dependent on the primary key in that table. NESA gives the reason: if a database contains redundant data, the copies may not be updated consistently, which leads to a data integrity problem. NESA does not ask you to name normal forms such as 1NF, 2NF or 3NF.
The problem: one flat table
Suppose the games database began as one flat file. The publisher’s name and the developer’s name are typed again on every row.
| ID | Name | Release_date | Cost | Publisher_name | Developer_first_name | Developer_last_name |
|---|---|---|---|---|---|---|
| 1 | Reef Runner | 15/03/2022 | 19.95 | Games Inc | Mia | Nguyen |
| 3 | Star Harbour | 21/11/2022 | 39.95 | Games Inc | Priya | Patel |
| 6 | Tidal Trader | 05/09/2023 | 29.95 | Games Inc | Tom | Walker |
| 8 | Night Market | 30/03/2023 | 34.95 | Games Inc | Liam | O’Brien |
| 4 | Kelp Quest | 10/03/2023 | 14.95 | Southern Cross Games | Mia | Nguyen |
“Games Inc” is stored four times and Mia Nguyen twice. If the publisher renames itself, four rows must be edited. If one is missed, the database now holds two versions of the same publisher, and a search for “Games Inc” misses some of its games. This is the data integrity problem NESA describes.
The fix: separate, linked tables
Move each repeating group into its own table, give each table a primary key and link the tables with a foreign key. Now “Games Inc” is stored once, and each game holds only the Publisher_ID that points to it.
NESA’s schema (p.16)
Schema
Schema: a games database
Three tables, with primary keys (P), foreign keys (F) and one-to-many relationships.
What to notice
- Each table is a rectangle with its bold name in a header box and one field per line.
- Games holds two foreign keys, Publisher_ID and Developer_ID, so it links to both other tables.
- 1 sits at the Publishers and Developers ends of the lines and ∞ at the Games end: one publisher can have many games.
Try thisWhich field links a game to its publisher, and which table is that field the primary key of?
NESA says there are other acceptable ways to represent a schema, so a different notation (for example crow’s foot lines for the many end) is fine if it clearly shows the tables, the fields, the primary keys and the relationships.
The sample data we use for SQL
The queries in the next section run on this data. The tables follow NESA’s schema. The rows and the dates (day/month/year, as in NESA’s example) are ours.
| Publisher_ID (P) | Name |
|---|---|
| 1 | Games Inc |
| 2 | PixelWorks |
| 3 | Southern Cross Games |
| Developer_ID (P) | First_name | Last_name |
|---|---|---|
| 1 | Mia | Nguyen |
| 2 | Liam | O’Brien |
| 3 | Priya | Patel |
| 4 | Tom | Walker |
| ID (P) | Name | Release_date | Cost | Publisher_ID (F) | Developer_ID (F) |
|---|---|---|---|---|---|
| 1 | Reef Runner | 15/03/2022 | 19.95 | 1 | 1 |
| 2 | Outback Dash | 02/06/2022 | 9.99 | 2 | 2 |
| 3 | Star Harbour | 21/11/2022 | 39.95 | 1 | 3 |
| 4 | Kelp Quest | 10/03/2023 | 14.95 | 3 | 1 |
| 5 | Dingo Derby | 27/03/2023 | 24.95 | 2 | 4 |
| 6 | Tidal Trader | 05/09/2023 | 29.95 | 1 | 4 |
| 7 | Coral Code | 18/01/2022 | 12.50 | 3 | 3 |
| 8 | Night Market | 30/03/2023 | 34.95 | 1 | 2 |
How to normalise, step by step
- Start with the flat table and look for values repeated across rows (a publisher, a customer, a supplier).
- Move each repeating group into its own table, and give the new table a primary key.
- Check that every other field in a table depends only on that table’s primary key. A game’s cost belongs in Games. A publisher’s name belongs in Publishers.
- In the original table, replace the repeated details with a foreign key that holds the other table’s primary key value.
- Draw the schema: tables, fields, (P) and (F) markers and a 1 and ∞ on each relationship line.
Model answer
Student details repeat for every order, and item details repeat for every sale. Three tables: Students (StudentID (P), StudentName, Homeroom), Items (ItemID (P), ItemName, ItemPrice) and Orders (OrderID (P), Date, StudentID (F), ItemID (F)). One student has many orders and one item appears in many orders, so both relationships are one-to-many with the ∞ end at Orders. Changing an item’s price now means editing a single row.
SQL Syntax
Course Specifications p.17 SELECT, FROM, WHERE and ORDER BY, applied to the games schema
What it is for
NESA describes Structured Query Language (SQL) as a language used to access and manipulate data in relational databases. For the HSC Enterprise Computing course, NESA lists exactly four pieces of standard syntax:
- SELECT (what is to be displayed)
- FROM (the tables to be used)
- WHERE (the search criteria which may come from multiple tables)
- ORDER BY (the sequence in which the results are displayed)
NESA’s own examples also use AND to combine criteria, the comparison operators =, >= and <=, ASC and DESC after ORDER BY, and the Table.Field form for naming a field. The database software specification (p.19) adds the logical operators AND, OR and NOT, which you can use in a WHERE clause.
The shape of a query
SELECT the fields to display
FROM the table or tables that hold them
WHERE the criteria a record must meet (optional)
ORDER BY the field to sort on, then ASC or DESC (optional)
The clauses always come in this order. Text and dates go inside single quotes. Numbers do not. If two tables have a field with the same name (Name appears in Games and Publishers), write Table.Field so the database knows which you mean. ASC (A to Z, smallest first) is the default, and DESC reverses it.
All the results below were checked by running the queries on the sample data, with the dates compared as real dates.
Worked queries on the games schema
1. SELECT and FROM: display chosen fields
List the name and cost of every game. With no WHERE clause, every record is returned.
SELECT Name, Cost
FROM Games
Result (8 rows)
| Name | Cost |
|---|---|
| Reef Runner | 19.95 |
| Outback Dash | 9.99 |
| Star Harbour | 39.95 |
| Kelp Quest | 14.95 |
| Dingo Derby | 24.95 |
| Tidal Trader | 29.95 |
| Coral Code | 12.50 |
| Night Market | 34.95 |
2. WHERE: choose which records
Only records that meet the criterion appear. Here, games that cost less than $15.
SELECT Name, Cost
FROM Games
WHERE Cost < 15
Result (3 rows)
| Name | Cost |
|---|---|
| Outback Dash | 9.99 |
| Kelp Quest | 14.95 |
| Coral Code | 12.50 |
3. WHERE with text
Text criteria go in quotes. Here, the developers whose last name is Patel.
SELECT First_name, Last_name
FROM Developers
WHERE Last_name = 'Patel'
Result (1 row)
| First_name | Last_name |
|---|---|
| Priya | Patel |
4. ORDER BY: put results in order
Sort by cost with the most expensive first. DESC reverses the default ascending order.
SELECT Name, Cost
FROM Games
ORDER BY Cost DESC
Result (8 rows)
| Name | Cost |
|---|---|
| Star Harbour | 39.95 |
| Night Market | 34.95 |
| Tidal Trader | 29.95 |
| Dingo Derby | 24.95 |
| Reef Runner | 19.95 |
| Kelp Quest | 14.95 |
| Coral Code | 12.50 |
| Outback Dash | 9.99 |
5. Sorting on more than one field
List games by publisher, and within each publisher alphabetically by game name. The first field decides the main order and the second breaks ties.
SELECT Publisher_ID, Name
FROM Games
ORDER BY Publisher_ID ASC, Name ASC
Result (8 rows)
| Publisher_ID | Name |
|---|---|
| 1 | Night Market |
| 1 | Reef Runner |
| 1 | Star Harbour |
| 1 | Tidal Trader |
| 2 | Dingo Derby |
| 2 | Outback Dash |
| 3 | Coral Code |
| 3 | Kelp Quest |
6. NESA example 1: WHERE with AND, and ORDER BY
NESA’s first example displays the name and release date of all games released from 1 March 2022 to 31 March 2023, in alphabetical order by name.
SELECT Name, Release_date
FROM Games
WHERE Release_date >= '01/03/2022' AND Release_date <= '31/03/2023'
ORDER BY Name ASC
Result (6 rows)
| Name | Release_date |
|---|---|
| Dingo Derby | 27/03/2023 |
| Kelp Quest | 10/03/2023 |
| Night Market | 30/03/2023 |
| Outback Dash | 02/06/2022 |
| Reef Runner | 15/03/2022 |
| Star Harbour | 21/11/2022 |
The two conditions are joined with AND, so a game must satisfy both. Tidal Trader (September 2023) and Coral Code (January 2022) fall outside the range.
7. OR and brackets
Use OR when either condition is enough. Put brackets around the OR so it is worked out before the AND. Here, games from publisher 2 or 3 that cost less than $20.
SELECT Name, Cost
FROM Games
WHERE (Publisher_ID = 2 OR Publisher_ID = 3) AND Cost < 20
Result (3 rows)
| Name | Cost |
|---|---|
| Outback Dash | 9.99 |
| Kelp Quest | 14.95 |
| Coral Code | 12.50 |
Joining tables
Data about a game and its publisher are in different tables, so a query that shows both must join them. NESA’s method has two parts: list every table in FROM, separated by commas, then add a WHERE condition that makes the primary key equal the matching foreign key.
8. A join of two tables
Show each game with its publisher. The condition Games.Publisher_ID = Publishers.Publisher_ID pairs each game with only its own publisher. Both tables have a Name field, so each is written as Table.Field.
SELECT Games.Name, Publishers.Name
FROM Games, Publishers
WHERE Games.Publisher_ID = Publishers.Publisher_ID
ORDER BY Games.Name ASC
Result (8 rows)
| Games.Name | Publishers.Name |
|---|---|
| Coral Code | Southern Cross Games |
| Dingo Derby | PixelWorks |
| Kelp Quest | Southern Cross Games |
| Night Market | Games Inc |
| Outback Dash | PixelWorks |
| Reef Runner | Games Inc |
| Star Harbour | Games Inc |
| Tidal Trader | Games Inc |
9. NESA example 2: a join of three tables
NESA’s second example shows each developer’s name and the games they developed for the publisher “Games Inc”, in descending order of the developer’s last name. It needs two join conditions, one for each foreign key, plus the search criterion.
SELECT Developers.First_name, Developers.Last_name, Games.Name
FROM Games, Developers, Publishers
WHERE Publishers.Name = 'Games Inc'
AND Publishers.Publisher_ID = Games.Publisher_ID
AND Developers.Developer_ID = Games.Developer_ID
ORDER BY Developers.Last_name DESC
Result (4 rows)
| Developers.First_name | Developers.Last_name | Games.Name |
|---|---|---|
| Tom | Walker | Tidal Trader |
| Priya | Patel | Star Harbour |
| Liam | O'Brien | Night Market |
| Mia | Nguyen | Reef Runner |
The order is Walker, Patel, O’Brien, Nguyen: last names in reverse alphabetical order.
Try it
Run SQL on the games database
Write queries with the four keywords and have them checked. Enable JavaScript to use this tool. In short: SELECT chooses the fields, FROM names the tables, WHERE gives the criteria and joins the tables on their key fields, and ORDER BY sets the sequence.
How to write a query, step by step
- Underline what the question wants displayed. Those fields go after SELECT.
- Find which tables hold those fields and any field named in the criteria. Those tables go after FROM.
- If you need more than one table, add a WHERE condition for each link: the primary key of one table equals the foreign key of the other. You need one fewer join condition than tables.
- Add the search criteria with AND (both must be true), OR (either) or NOT, using brackets when you mix them.
- Add ORDER BY with the field and ASC or DESC.
- Read the query back in words and check it against the question.
SELECT Games.Name, Publishers.Name
FROM Games JOIN Publishers ON Games.Publisher_ID = Publishers.Publisher_ID
ORDER BY Games.Name ASC
FROM Games, Publishers on its own pairs every game with every publisher: 8 games × 3 publishers = 24 rows, most of them wrong. Writing Name when two tables have a Name field. Writing the clauses in the wrong order (WHERE must come before ORDER BY). Missing quotes around text and dates. Forgetting the AND between conditions. Leaving out brackets when mixing AND with OR. Using a date format different from the one in the question’s tables, for example “-” instead of “/”.
Exam-style practice
Use the games tables above. Write each query first, then check your answer.
Model answer and result
SELECT Games.Name, Publishers.Name
FROM Games, Publishers
WHERE Games.Publisher_ID = Publishers.Publisher_ID
AND Games.Cost > 20
ORDER BY Games.Cost DESC
| Games.Name | Publishers.Name |
|---|---|
| Star Harbour | Games Inc |
| Night Market | Games Inc |
| Tidal Trader | Games Inc |
| Dingo Derby | PixelWorks |
Award yourself a mark for each of: SELECT with both fields, FROM with both tables, the join condition, the cost criterion, and ORDER BY with DESC.
Model answer and result
SELECT Developers.First_name, Developers.Last_name, Games.Name
FROM Games, Developers, Publishers
WHERE Publishers.Name = 'Southern Cross Games'
AND Publishers.Publisher_ID = Games.Publisher_ID
AND Developers.Developer_ID = Games.Developer_ID
ORDER BY Developers.Last_name ASC
| Developers.First_name | Developers.Last_name | Games.Name |
|---|---|---|
| Mia | Nguyen | Kelp Quest |
| Priya | Patel | Coral Code |
Model answer and result
SELECT Name, Cost
FROM Games
WHERE Cost >= 10 AND Cost <= 30
ORDER BY Name ASC
| Name | Cost |
|---|---|
| Coral Code | 12.50 |
| Dingo Derby | 24.95 |
| Kelp Quest | 14.95 |
| Reef Runner | 19.95 |
| Tidal Trader | 29.95 |
“Inclusive” means the end values count, so use >= and <= rather than > and <.
SELECT Name, Name
FROM Games, Publishers
WHERE Cost > 20
ORDER BY Cost
Model answer
First, Name exists in both Games and Publishers and is not qualified, so the database cannot tell which is meant: write Games.Name, Publishers.Name. Second, there is no join condition, so every game is paired with every publisher: add WHERE Games.Publisher_ID = Publishers.Publisher_ID AND Games.Cost > 20. Also, the sort should be written ORDER BY Games.Cost DESC if the most expensive is to come first, because ASC is the default.
Machine Learning and Statistical Modelling
Course Specifications p.18 Know what they are used for; the underlying logic is not required
What NESA expects
NESA says that machine learning and statistical modelling can be used independently or together to analyse datasets and make predictions. Students are not required to understand the underlying logic of either, but should be aware of their use in real-world scenarios. So the exam tests whether you can recognise a suitable use and describe it, not whether you can calculate a model.
| Statistical modelling | Machine learning | |
|---|---|---|
| Idea | Fit a chosen mathematical model to data to describe the relationship between variables and to estimate or predict a value. | A program learns patterns from example data, then uses them to predict or classify new cases. |
| Typical use | Estimating how one thing changes with another, with a measure of uncertainty. | Sorting or predicting from many inputs, especially when the patterns are hard to write as rules. |
| Example | A council predicts next month’s water use from temperature and rainfall. | A bank system flags card transactions that look unusual compared with past ones. |
| Used together | A hospital could use a statistical model to estimate a patient’s risk from age and test results, and a machine learning model to spot patterns in scans, then combine both to support a clinician’s decision. | |
Both depend on the quality of the data they are given. Poor, biased or out-of-date data leads to poor predictions, which is why the ethical use of these tools is covered under Intelligent Systems and data quality under Data Science.
Model answer
Predicting yield from rainfall suits statistical modelling: it estimates how yield changes with rainfall. Sorting photos by quality suits machine learning, because a model can learn from labelled examples. They can be combined: the predicted yield and the quality mix together help plan sales.
Database Software
Course Specifications p.19 What database software should allow you to do
What NESA lists
NESA says database software should allow you to do the following. The right-hand column is our explanation.
| NESA feature | What it means in practice |
|---|---|
| Create flat file databases and relational databases | A flat file keeps everything in one table. A relational database splits data into linked tables with primary and foreign keys (see normalisation). |
| Use relational operators | Compare a field with a value in a search. See the table below. |
| Use logical operators (AND, OR and NOT) | Combine several criteria into one search. See the table below. |
| Create queries and use a query language to search on single and multiple fields across one or more tables | Ask the database a question, using SQL or the software’s query designer, with criteria on one field or several, and data from one table or joined tables. |
| Sort data using multiple fields to specify the sequence | Order by one field, then a second to break ties: by publisher, then by name. |
| Design forms and reports | A form is a screen for entering, viewing or editing records. A report is a formatted output of data or query results, for reading or printing, often with headings and totals. |
| Implement and display a schema | Build the tables, fields, keys and relationships, and show them as a diagram of the structure. |
| Import and export data | Bring data in from, or send data out to, other files such as a CSV file or a spreadsheet. |
| Apply security to the database | Control who can see or change data: user accounts and passwords, permissions (for example read-only), encryption and backups. |
Operators, with the games table
| Relational operator (NESA) | Symbol | Example criterion | Records returned |
|---|---|---|---|
| EQUALS | = | Publisher_ID = 3 | Kelp Quest, Coral Code |
| NOT EQUAL TO | <> | Publisher_ID <> 1 | Outback Dash, Kelp Quest, Dingo Derby, Coral Code |
| GREATER THAN | > | Cost > 34.95 | Star Harbour |
| GREATER THAN OR EQUAL TO | >= | Cost >= 34.95 | Star Harbour, Night Market |
| LESS THAN | < | Cost < 12.50 | Outback Dash |
| LESS THAN OR EQUAL TO | <= | Cost <= 12.50 | Outback Dash, Coral Code |
| CONTAINS | (text search) | Name CONTAINS “Run” | Reef Runner |
| DOES NOT CONTAIN | (text search) | Publishers.Name DOES NOT CONTAIN “Inc” | PixelWorks, Southern Cross Games |
| Logical operator | Meaning | Example | Records returned |
|---|---|---|---|
| AND | Both conditions must be true | Publisher_ID = 1 AND Cost < 30 | Reef Runner, Tidal Trader |
| OR | Either condition may be true | Cost < 10 OR Cost > 35 | Outback Dash, Star Harbour |
| NOT | Reverses a condition | NOT Publisher_ID = 1 | Outback Dash, Kelp Quest, Dingo Derby, Coral Code |
NESA gives CONTAINS and DOES NOT CONTAIN as operators in the database software list but does not include them in its SQL syntax. In many products they are written as a pattern search, for example LIKE '%Run%'. Treat that spelling as an extension.
Model answer
(a) Create a query with criteria on multiple fields joined with AND: Due date less than today AND Year equals 9, across the Loans and Students tables linked by StudentID. (b) Design a report from that query, sorted or grouped by teacher. (c) Apply security: give students accounts with read-only permissions, and give only library staff permission to edit.
Spreadsheet Software
Course Specifications p.20 Formulas, functions, referencing, charts and the other features spreadsheet software should provide
Our worked spreadsheet
All the examples use a school canteen’s sales sheet. Column D holds revenue, which is price times quantity, and the loyalty table in J1:K5 gives a discount by points. The GST rate sits in its own cell, H1.
| A | B | C | D | E | F | G | H | I | J | K | |
|---|---|---|---|---|---|---|---|---|---|---|---|
| 1 | Item | Price | Qty sold | Revenue | GST | GST rate | 10% | Points | Discount | ||
| 2 | Sandwich | 5.50 | 42 | 231.00 | 23.10 | 0 | 0% | ||||
| 3 | Pie | 4.80 | 35 | 168.00 | 16.80 | 50 | 5% | ||||
| 4 | Juice | 3.20 | 60 | 192.00 | 19.20 | 100 | 10% | ||||
| 5 | Salad | 6.50 | 18 | 117.00 | 11.70 | 200 | 15% | ||||
| 6 | Fruit cup | 2.50 | 25 | 62.50 | 6.25 |
Entering formulas and copying them
A formula starts with =. NESA lists these skills: enter text, numeric values and formulas; copy cells using both absolute and relative referencing; and fill down and across.
| Cell | Formula | What happens when you fill down |
|---|---|---|
| D2 | =B2*C2 | Relative references move with the row: D3 becomes =B3*C3, D4 becomes =B4*C4. |
| E2 | =D2*$H$1 | D2 is relative and moves to D3, D4…. $H$1 is absolute, so it stays locked on the GST rate. E3 becomes =D3*$H$1. |
The dollar signs lock a reference. $H$1 locks column and row, H$1 locks only the row and $H1 locks only the column. Without the dollar signs, the GST reference would slide to H2, H3… when copied, and the results would be wrong.
The functions NESA lists
| NESA name | Syntax | What it does | Worked example on the sheet |
|---|---|---|---|
| Arithmetic | |||
| SUM | SUM(range) | Adds the numbers | =SUM(D2:D6) gives 770.50 |
| MAXIMUM | MAX(range) | Largest value | =MAX(B2:B6) gives 6.50 |
| MINIMUM | MIN(range) | Smallest value | =MIN(B2:B6) gives 2.50 |
| COUNT | COUNT(range) | How many cells hold numbers | =COUNT(B2:B6) gives 5 |
| ABSOLUTE VALUE | ABS(number) | The value without its sign, so the size of a difference | =ABS(C3-40) gives 5 (pies sold compared with a target of 40) |
| SQUARE ROOT | SQRT(number) | The number that multiplied by itself gives the value | =SQRT(144) gives 12 (side of a square sign with area 144 cm²) |
| INTEGER | INT(number) | Rounds down to a whole number | =INT(D2/5) gives 46 (whole $5 vouchers that $231 buys) |
| PART | LEFT(text, n) RIGHT(text, n) MID(text, start, n) | Takes part of a text value | =LEFT(A2,3) gives San; =MID(A2,2,3) gives and |
| Statistical | |||
| MEAN | AVERAGE(range) | The sum divided by the count | =AVERAGE(C2:C6) gives 36 |
| STANDARD DEVIATION | STDEV.S(range) STDEV.P(range) | How spread out values are around the mean (a sample, or the whole population) | =STDEV.S(C2:C6) gives 16.26; =STDEV.P(C2:C6) gives 14.55 |
| Logical | |||
| IF | IF(condition, value_if_true, value_if_false) | Chooses a value depending on whether the condition is TRUE or FALSE | =IF(C2>=40,"Best seller","Standard") gives Best seller |
| Other | |||
| LOOKUP | LOOKUP(value, search_range, result_range) | Finds the value in one range and returns the matching entry from another | =LOOKUP(120,J2:J5,K2:K5) gives 10% |
| VLOOKUP | VLOOKUP(value, table, column, match) | Looks down the first column of a table and returns a value from a column across | =VLOOKUP("Pie",A2:D6,2,FALSE) gives 4.80; =VLOOKUP(120,J2:K5,2,TRUE) gives 10% |
| HLOOKUP | HLOOKUP(value, table, row, match) | The same, for a table laid out across rows | =HLOOKUP("Pie",B1:F2,2,FALSE) if item names run across B1:F1 and prices are in row 2: gives the price under Pie |
Relational operators and IF
NESA lists the relational operators less than or equal to (<=), equal to (=), not equal to (<>), greater than (>) and greater than or equal to (>=). Less than (<) works the same way. They give TRUE or FALSE, which is what IF tests. IF can be nested to handle more than two outcomes, and it can be combined with the other functions:
| Formula | Reads as | Result |
|---|---|---|
=IF(B2<>5.5,"Changed","Same") | If the price is not 5.50, show Changed | Same |
=IF(D2>=200,"High",IF(D2>=100,"Medium","Low")) | Nested IF: 200 or more is High, otherwise 100 or more is Medium, otherwise Low | D2 (231.00) gives High; D6 (62.50) gives Low |
=SUM(D2:D6)*(1-VLOOKUP(120,J2:K5,2,TRUE)) | Total revenue after the discount for 120 points (10%) | 693.45 |
Two things to remember about lookups. With FALSE as the last input, VLOOKUP needs an exact match and gives an error if there is none. With TRUE, the first column must be sorted in ascending order, and it returns the row for the largest value that is not more than the one you are looking up. That is why 120 points falls in the 100-point band.
The other features NESA lists
| Feature | What it does | Example |
|---|---|---|
| Print all or parts of a spreadsheet | Set a print area, add headings and print only what is needed | Print just the Revenue column for the manager |
| Import and export data | Bring data in from files, databases or the web, and save it in other formats such as CSV | Import last term’s sales from a CSV file |
| Manipulate rows and columns; apply formats | Insert, delete, hide, resize, and format numbers, dates and cells | Show prices as currency |
| Record, run and edit macros | Record a series of actions, replay them to automate a task and edit the recorded steps | A macro that formats and prints the weekly report |
| Sort selected areas | Reorder the rows of a chosen range by one or more columns | Sort items by revenue, largest first |
| Configure page layouts; manipulate page breaks | Set orientation, margins and where a page ends | Landscape, with a page break before each category |
| Work with data across multiple sheets | Refer to cells on other sheets in formulas | =Prices!B2*C2 uses a price stored on a sheet named Prices |
| Conditional formatting | Automatically changes a cell’s appearance when its value meets a rule | Shade the cell red when stock is below 10 |
| Filters | Hide rows that do not meet a condition, without deleting them | Show only items with revenue over $150 |
| Pivot tables | Summarise a large table by grouping and totalling, for example total revenue by category | Revenue for Drinks against Food, by month |
| Generate and configure charts | Turn ranges into a chart, then set its title, axis labels, scale and colours | See the chart choices below |
| Save a chart to a file format | Export a chart as an image or PDF for use in other software | A PNG chart placed in a presentation |
Choosing a chart (NESA lists five)
| Chart | Best for | Canteen example |
|---|---|---|
| Bar chart | Comparing categories, especially with long labels | Revenue by item |
| Column chart | Comparing categories or a few time periods, drawn vertically | Quantity sold per item |
| Line chart | Showing a trend over time | Weekly sales across a term |
| Scatter graph | Showing whether two numeric variables are related | Daily temperature against cold-drink sales |
| Pie chart | Showing parts of a whole, with only a few categories | Share of total revenue by item |
How to build a formula, step by step
- Say in words what the cell must show, for example “total revenue after the loyalty discount”.
- Choose the function or operator that does each part: SUM for the total, VLOOKUP for the discount, IF for any condition.
- Decide which references must stay fixed when copied. Put dollar signs on those (an absolute reference) and leave the rest relative.
- Type the formula, then check it on test data whose answer you already know.
- Fill down or across, then spot-check the last row to confirm the references moved as intended.
=. Using a relative reference for a fixed value such as a rate, so the answer changes as you fill down. Range typos such as SUM(D2:D5) that miss the last row. Using COUNT on text (it counts numbers only). A lookup with the wrong match type: FALSE for an exact match, TRUE for a band. Putting text in a formula without quotation marks. Typing a value into a formula instead of referring to its cell.
Exam-style practice
Use the sales sheet above.
Model answer
=D2*$H$1. The revenue reference D2 must be relative so it moves to D3, D4… as the formula is filled down. The GST rate is in one cell, H1, so its reference must be absolute ($H$1), otherwise it would slide down to H2, H3…. Check: E2 = 231.00 × 10% = 23.10.
Model answer
=IF(C2<30,"Reorder","OK"). Sandwich: 42 is not less than 30, so OK. Salad: 18 is less than 30, so Reorder.
Model answer
=VLOOKUP(120,J2:K5,2,TRUE) returns 10%, because 120 points falls in the band that starts at 100. Total after discount: =SUM(D2:D6)*(1-VLOOKUP(120,J2:K5,2,TRUE)), which is 770.50 × 0.90 = 693.45. (A formula using LOOKUP(120,J2:J5,K2:K5) also works.)
Expert System Software
Course Specifications p.20 Develop IF–THEN rules, change them, and display the rules used as text and as a decision tree
What NESA lists
Expert system software should allow you to develop a set of IF–THEN rules, add, remove and edit rules and display the rules the system has used to reach a conclusion, both in a text format and as a decision tree. An expert system stores the knowledge of a human specialist as rules and applies them to the facts a user provides, so a non-expert can get expert-style advice. The rules and the reasoning make it different from a database: it draws a conclusion, it does not just retrieve a record.
Rules, and the tree they make
Here are five IF–THEN rules for a laptop help-desk expert system:
| Rule | IF | THEN |
|---|---|---|
| R1 | Power light is on AND screen shows a picture AND Wi-Fi is connected | No fault found |
| R2 | Power light is on AND screen shows a picture AND Wi-Fi is not connected | Restart the Wi-Fi adapter |
| R3 | Power light is on AND screen does not show a picture | Connect to an external screen |
| R4 | Power light is off AND charger is plugged in | Try a different charger |
| R5 | Power light is off AND charger is not plugged in | Plug in the charger |
Decision tree
Decision tree: diagnosing a laptop fault
The same five rules, drawn as a decision tree in NESA’s style.
What to notice
- Each path from the top to an action is one rule: the questions on the path are the IF part, and the action at the end is the THEN part.
- The tree has five paths and there are five rules. None is missing and none overlaps.
Try thisThe laptop’s power light is on and the screen is blank. Which rule fires, and what does the tree advise?
When the user answers the questions, the system can show why it reached its conclusion. In text: “Power light on = Yes. Screen shows a picture = Yes. Wi-Fi connected = No. Rule R2 fired: restart the Wi-Fi adapter.” As a decision tree, it highlights the path that was followed.
How to build and maintain a rule set, step by step
- Identify the decision the system must support and the questions the user can answer.
- Write each rule as IF conditions THEN conclusion, with one rule for each possible outcome.
- Check that every combination of answers fires exactly one rule: no gaps and no conflicts.
- Test with real cases and compare the system’s advice with what an expert would say.
- Edit as needed: add a rule for a new case, edit a rule whose advice is wrong and remove a rule that no longer applies. For example, add R6: IF the battery is swollen THEN stop using the laptop and take it to IT.
Model answer
R1: IF soil is dry AND rain is forecast THEN wait and re-check tomorrow. R2: IF soil is dry AND no rain is forecast THEN irrigate. R3: IF soil is moist AND rain is forecast THEN do not irrigate. R4: IF soil is moist AND no rain is forecast THEN check again in two days. New rule R5: IF temperature is above 35°C AND soil is dry THEN irrigate even if rain is forecast. Because R1 and R5 now overlap, edit R1 to say AND temperature is 35°C or lower, so the rules do not conflict.
Graphics and Presentation Software
Course Specifications p.21 Bitmap and vector images, and the features of presentation software
Graphics software: what NESA lists
| NESA feature | What it means in practice |
|---|---|
| Create and manipulate bitmapped images | Work with images made of a grid of pixels, such as photos. Editing changes the colour of individual pixels. |
| Create and manipulate vector graphics as geometric shapes | Work with images built from shapes (lines, curves, rectangles) described by mathematics. Each shape can be selected and edited on its own. |
| Rotate, crop, resize and distort images | Turn an image, cut away the parts you do not want, change its size and stretch or skew it out of proportion. |
| Import and export graphic data in a variety of formats | Open images from other software and save them in formats that suit their use, for example PNG or JPEG for bitmaps and SVG for vectors. |
| Apply textures, patterns and a transparent background | Fill shapes with a texture or pattern, and remove the background so that what is behind shows through (PNG and SVG support this, JPEG does not). |
| Use templates, colour themes and animations | Start from a ready-made layout, apply a consistent colour scheme and add movement. |
| Bitmap | Vector | |
|---|---|---|
| Made of | A grid of pixels | Geometric shapes and paths |
| Enlarging | Becomes blocky and blurred | Stays sharp at any size |
| Best for | Photographs and detailed images | Logos, icons and diagrams |
| File size | Grows with the number of pixels | Usually small for simple images |
Presentation software: what NESA lists
| NESA feature | What it means in practice |
|---|---|
| Create and manipulate text; apply editing and formatting features | Type text, then change font, size, colour, alignment and spacing consistently. |
| Insert and display text, images, audio, video and animations | Add media to slides and control how it appears, plays or moves. |
| Import and export data | Bring in content from other files and save the presentation as PDF, video or other formats. |
| Embed objects such as charts and tables from other applications | Place a chart or table made in a spreadsheet inside a slide. |
| Use hyperlinks within and outside the presentation | A link that jumps to another slide (for example a menu slide) or to a web page or file. |
| Use templates and themes | A master layout and colour scheme so every slide looks consistent. |
Model answer
The logo should be a vector graphic, saved as SVG (or exported as PNG with a transparent background), because it can be enlarged for the banner without losing sharpness. The photos should be bitmaps, saved as JPEG for small file sizes. On the menu slide, insert a hyperlink on each gallery name to the matching slide, and put a Back to menu hyperlink on each gallery slide.