← QCE Digital Solutions Unit 2 — Data and Programming Techniques

QCE Digital Solutions Unit 2 — Data and Programming Techniques Hangman

Year 11 · QCE · 142 key terms.

Theme
Words

Every word, shuffled.

Players

Storing, structuring and manipulating data in code and databases. See the whole journey →

Want your own words? Free Hangman Generator →

Same words, on paper

The quiet activity after the loud one. Free to print, answer keys included.

CrosswordEntities, Relationships and Queries · Data and Programming Techniques · Entities, Relationships and Queries · all 45

Word searchData and Programming Techniques · What is Pseudocode to Reading and tracing complex pseudocode · Manipulating, validating and testing spreadsheet data to Querying data with SQL · all 33

Worksheetfor any module, with answer key

When your class is on devices — Snake Break and Diamond Dash run on the same modules, with a free class.

The 142 key terms

1data
Raw facts and values, like names or scores. When data is organised so it has meaning, it becomes information, like a table showing each class's average score.
2Wisdom
Wisdom is using information and experience to make good decisions. It is the top step of the DIKW pyramid, above data and information, and it needs context to work.
3scope
The boundary of what a solution will and will not include. Features inside the boundary are in scope. Features left out, or saved for later, are out of scope.
4constraint
A limit on how a solution can be made, such as time, cost, skills, devices or software. A constraint is not a feature; it limits what you can build.
5The solution must
Starts a functional requirement: one thing a digital solution must do. It says what the solution does, not how, and covers one action. Example: The solution must show the score.
6Non-functional requirement
A quality describing how well a system performs, such as speed, security, or reliability, rather than what it does
7programming requirements
The list of SQL statements and algorithms a data-driven solution must include so it can carry out each of its functions, with each requirement linked to a task.
8platform requirement
A requirement stating the operating system, device type or environment (desktop, web, mobile, database software) that the solution must run on.
9hardware requirement
The processing power, memory, storage and peripherals needed to run a solution and hold its data, such as disk space for a database or RAM for large files.
10Comparison measures
The four criteria used to compare wired, wireless and mobile technologies: cost, data storage options, reliability and security.
11Data storage system
The hardware and software an organisation uses to hold its data for ongoing access.
12primary data vs secondary data
Primary data is data you collect yourself, like a survey. Secondary data was collected by someone else, like data from a website or database.
13CSV
A text file with one record per line, fields split by a delimiter such as a comma, and an optional header line of field names. Text containing commas goes in quotes.
14sensor
An input device that measures a physical quantity, such as heat or light, from the environment and sends the readings to a computer or microprocessor.
15open data
Datasets, such as government statistics, that anyone can download from a portal. A licence says how you may reuse them, and you must credit the source.
16API
An application programming interface: a defined set of requests and responses that lets one program use the features or data of another program.
17survey
A survey collects data by asking everyone the same clear questions, such as closed or open questions on an online form, so the answers can be counted and compared.
18data acquisition
Capturing data from a source and bringing it into a solution in a usable form: choose the source, capture it accurately, then check it on arrival.
19naming convention
A consistent rule for naming a database and its tables, such as a singular noun in lower_case with no spaces or special characters, e.g. student, applied in the same style for every table.
20student_id
A key column name in lowercase with an _id suffix. A primary key uses it in its own table, and a foreign key reuses the exact same name in a related table.
21file format
The way a dataset's data is structured and stored in a file, such as CSV, XLSX, JSON or XML. Choose the format that suits the software you will open it in.
22TXT, CSV, XML
Choose a data source by structure: TXT for simple lines, CSV for tables of records, XML for nested self-describing data shared between systems. All three store data between runs.
23data dictionary
A table listing each data element with its name, data type, size or format, description and validation rule, so everyone uses the data the same way when coding and testing.
24one-dimensional array
A single row of items of the same data type, stored under one name. Each item is found by its index number, starting at 0. In Python, a list is used as an array.
25record
A structure that groups related fields of different data types to describe one thing, such as a student's name (text), age (integer) and mark (decimal).
26grid[row][col]
A 2D array stores data in rows and columns like a table. Use the row index first, then the column index, to reach one element, such as a seat in a seating plan.
27list, dict, tuple
Pick the structure by how you use the data: a list for an ordered collection, a dict for lookup by key, and a tuple for a fixed group of values that should not change.
28data representation
A way of showing the same data, such as a table, list, picture, symbol or chart. You choose the one that best suits your purpose and your audience.
29string
Text made of a sequence of characters (single letters, digits or symbols), written in quotes, like 'Sam' or '0412345678'. Phone numbers are strings.
30integer
A whole number with no decimal part, positive or negative, used for counts such as the number of students in a class (e.g. 25, 0 or -3).
31float
A floating point number is a number with a decimal part, such as 1.75 or 19.95. It is used for measurements like height and for money, unlike an integer, which has no decimals.
32Date/Time
A data type that stores a calendar date and/or time of day, such as 25/03/2025 or 14:30, so values can be sorted in order and used to calculate the duration between two dates.
33Boolean
A data type with only two possible values: true or false (yes or no). Used for yes/no fields, TRUE and FALSE in a spreadsheet, and the result of a comparison such as 5>3.
34data type
Pick the data type by what you will do with the value: calculate (number), sort by date (date/time), test true or false (Boolean). Postcodes are text, not numbers, as you never do maths on them.
35VARCHAR(50)
A column's data type and size set in CREATE TABLE. VARCHAR(50) holds text up to 50 characters. Other types: INT, DECIMAL(8,2), DATE, BOOLEAN. They control what a column stores.
36authenticity
Data is authentic when it is genuine and really comes from the source it claims. Check the source and watch for fake or altered data.
37correctness
Each value is entered in the right field and right form, and processing gives the right result. It differs from accuracy, which is how close a value is to the real world.
38reasonableness
Data is reasonable when its values are sensible and plausible for what they describe. An age of 250 fails a reasonableness check on a range, such as 0 to 120.
39timeliness
Data is timely when it is up to date enough for its purpose, judged by its collection date or date of last update. Old census figures may be too out of date.
40accuracy
Data is accurate when it is correct and free from errors, so it matches the real-world fact it records. Typos, faulty measurements and out-of-date values make data inaccurate.
41data redundancy
The same details stored again and again in one big table. It wastes space and risks typos or missed updates, like a customer's address copied onto every order.
42data completeness
Data is complete when every required value is present, with no missing fields or records. A presence check finds blank required fields.
43data consistency
The same fact has the same value and format everywhere it is stored, with no spelling variations or conflicting copies. Storing each fact in one place helps keep it consistent.
44insertion anomaly
A problem where a new fact, like a new course, cannot be stored until unrelated data, like a student, exists, forcing null values or dummy rows in a single table.
45update anomaly
A problem where a repeated fact is changed in one row but not its other copies, so the data disagrees. Caused by redundancy, and fixed by normalisation.
46deletion anomaly
Deleting a row also wipes out a separate fact stored only in that row, e.g. deleting the last student enrolled in a course also erases the course details.
47Confidentiality
Only authorised people or systems can read data. Everyone else is kept out, like student marks seen only by the student and teacher. A breach is when someone else sees them.
48Integrity
Data stays accurate and unaltered unless an authorised person changes it, so a tampered bank balance breaks integrity.
49Availability
Authorised users can reach data and systems when they need them. Hardware failure and attacks can threaten it, so backups and protection keep a system running.
50permission
A rule that lets an account read, write or execute a file or resource. Read only views it, write can change or delete it, and execute runs it as a program.
51stream
A sequence of structured records that arrives or is read one at a time, such as sensor readings, file lines or API results, and is processed as it flows.
53records.append(line.strip().split(','))
Splits one CSV line into fields and appends them as one record to a list, so each row of the file becomes a record and the whole file becomes a table in memory.
54line.split(',')
A string method that breaks a line of text into a list of field strings at each comma. Use strip() first to remove the newline, and int() or float() to convert fields.
55filter
Keep only the records in a stream that meet a condition and discard the rest, usually with an if inside a loop that adds matches to a result list.
56map
map() applies a function to every record in a stream and gives back changed records, such as converting a type, trimming and changing the case of text, or computing a derived field.
57[x for x in items]
A list comprehension builds a new list from a loop in one expression. Add 'if condition' to filter items, or change x (e.g. x * 2) to transform each item.
58aggregate
To aggregate is to combine many records into one summary value, such as a running total, a count of matching records, or an average worked out after the loop.
59sum(), min(), max()
Built-in functions that return the total, smallest and largest value in a list, replacing a hand-written loop with one short, clear line of code.
60SQL
Structured Query Language, the standard language for asking a database to return data (SELECT) or to add, change or remove it (INSERT, UPDATE, DELETE).
61SELECT name, age FROM students;
SELECT lists the fields to show and FROM names the table. This returns the name and age columns for every record in students. SELECT * shows all columns. End with a semicolon.
62WHERE
An SQL clause that keeps only the rows meeting a condition, such as WHERE age >= 15 or WHERE town = 'Perth'. Text goes in quotes, and AND or OR can combine conditions.
63AND, OR, NOT
Combine WHERE conditions: AND needs both true, OR needs at least one true, NOT reverses a condition. Brackets set the order and decide which rows are returned.
64WHERE lastName LIKE 'S%'
LIKE matches text by pattern in a WHERE clause. % stands for any run of characters and _ for exactly one, so 'S%' finds values starting with S and '%son' finds values ending in son.
65BETWEEN low AND high
Tests if a value is inside a range, including both limits. Its partner IN (a, b, c) checks a value against a list, replacing repeated OR. NOT IN excludes the list.
66ORDER BY
Sorts the rows a SELECT query returns by a chosen field. It sorts A to Z or lowest to highest by default (ASC), or the reverse if you add DESC after the field name.
67SELECT AVG(score) FROM results;
An aggregate function works out one value from many rows. COUNT, SUM, AVG, MIN and MAX give the count, total, mean, lowest and highest. This query returns the mean score.
68GROUP BY
An SQL clause that sorts rows into groups sharing the same field value, then applies an aggregate like AVG or COUNT to each group, giving one result row per group (e.g. average score per class).
69SELECT FROM WHERE ORDER BY
The order of clauses in a full SQL query: SELECT, FROM, WHERE, then ORDER BY. WHERE filters the rows first, then ORDER BY sorts the rows that are left.
70JOIN
A join matches each foreign key value in one table to the primary key value in another, so rows from both tables show together. Rows with no match are left out.
71ON orders.customer_id = customers.customer_id
The join condition: it matches the foreign key in one table to the primary key in the other. The = sign compares the two values to find matching rows. It does not assign a value.
72table.field
Names the table a field comes from, like students.name. Needed in a join when both tables share a field name, or SQL gives an ambiguous column error.
73FROM students s
Gives the students table the short name s after FROM, so the rest of the query can write s.firstName instead of students.firstName.
74JOIN ... ON ... WHERE ... ORDER BY
After JOIN ... ON links two tables, WHERE filters the joined rows and ORDER BY sorts them. Clause order: SELECT, FROM, JOIN ON, WHERE, ORDER BY.
75JOIN subjects ON results.subjectId = subjects.subjectId
A second JOIN line chained after the first to reach a third table. It follows a foreign key in the junction table to the primary key of the next table.
76Cartesian product
A join with no ON condition pairs every row of one table with every row of the other, so 3 customers and 4 orders give 12 rows, most of them wrong.
77UPDATE table SET field = value WHERE condition;
UPDATE changes field values and DELETE FROM removes records. Always add WHERE so only the chosen records change. Without it, every record in the table is changed or deleted.
78CREATE TABLE
SQL command that builds a new table by naming its fields and their data types, such as a PRIMARY KEY. INSERT INTO ... VALUES then adds one record to that table.
79FOREIGN KEY (field) REFERENCES other_table(field)
Used in CREATE TABLE to link a column to another table's key. The database then only accepts values that match an existing key, so bad links are rejected.
80ALTER TABLE
An SQL command that changes the structure of an existing table, such as adding a column with ADD, removing one with DROP COLUMN, or adding a FOREIGN KEY, without deleting the table.
81CREATE VIEW
Saves a SELECT query as a named virtual table. It shows chosen columns and rows, can hide others, and stores no copy of the data, so you query it like a table.
82CHECK (age BETWEEN 0 AND 120)
A constraint is a rule on a column. This CHECK rejects any record with an age outside 0 to 120. NOT NULL (must have a value) and UNIQUE (no repeats) are constraints too.
83relational database
A database that stores data in separate tables of fields (columns) and records (rows), with tables linked by shared values such as keys.
84field and record
A field is a column and a record is one data row. The heading row is not a record. A table with 4 fields and 6 records has 4 columns and 7 rows including the heading.
85entity
A type of thing a database stores data about, such as a student, book or order. Each entity becomes one table, and its name is a singular noun.
86attribute
An attribute is one property of an entity, like a student's name or year level. Each attribute becomes one field (column) in the entity's table, and each instance of the entity is one record.
87PRIMARY KEY
A field whose value is unique for every record in a table, such as a student ID number, so each record can be identified exactly. Names make poor keys because they can repeat.
88FOREIGN KEY
A field in one table that holds the primary key value of a record in another table, linking the two tables together so related data is stored once and not repeated.
89secondary key
A non-primary field used to search or sort records, such as surname. Unlike a primary key, its values need not be unique, and it is often indexed to make searches faster.
90NULL
A field with no value at all. It is not zero and not an empty string. Test for it with IS NULL, never = NULL. A primary key can never be NULL.
92one-to-many relationship
One record in a primary table matches many records in a related table. The foreign key sits on the many side, e.g. one class has many students, so class details are not repeated.
93junction table
A table that splits a many-to-many relationship into two one-to-many links by holding two foreign keys, such as Enrolment with studentId and subjectId.
94ERD
An entity relationship diagram draws each entity as a labelled box and each relationship as a line joining two boxes. Boxes list attributes, with PK and FK marked.
95crow's foot
ERD notation where a single bar at a line's end means one and a three-pronged crow's foot means many. The crow's foot end is the foreign key side of the relationship.
96referential integrity
Every foreign key value must match an existing primary key in the related table, so no record points to something missing. The database blocks changes that break this.
97Table(PK, field, FK)
A relational schema lists each table and its fields, marks the primary key (underlined) and foreign keys (FK), and shows how tables link.
98ERD from a scenario
Find the entities, list their attributes, pick primary keys, then work out each relationship and draw it, with the foreign key on the many side.
99normalisation
Organising tables to reduce repeated data and prevent anomalies by splitting data into linked tables, using the normal forms 1NF to 3NF.
100First normal form (1NF)
A table is in 1NF when every field holds one atomic value, there are no repeating groups or repeating columns, and each row is identified by a key.
1031NF, 2NF, 3NF
Work through 1NF, 2NF, then 3NF, splitting data into new tables linked by foreign keys so no data is lost and anomalies are removed.
104validation
An automatic check that data is reasonable and in the right form when entered. It blocks bad data early, but it cannot prove the data is true (a valid age of 15 could still be wrong).
105validation vs verification
Validation checks entered data is reasonable and complete. Verification checks it matches the source data, for example by proofreading.
106validation check
A test that an entry is sensible. Types include presence, data type, range, length, format and list. Each one tests a different property of the entry.
107double entry check
Data is entered twice and the two entries are compared. Any difference shows a mistake, so the user must enter it again. It misses the same mistake made twice.
108validation rule
A rule set on a database field that checks each entry, such as a number range, a maximum text length or a drop-down list, and rejects any record that breaks the rule.
109if value.strip() == '':
An existence check tests that a value was actually entered. strip() removes spaces, so this is True for empty or space-only input, and an error message can be shown.
110type check
A check that input is the expected data type, using .isdigit(), try/except around int() or float(), or isinstance(). input() is always text, so check before converting.
1111 <= age <= 120
A range check: tests that a number lies between a minimum and a maximum (inclusive here). Values outside the limits, such as 0 or 121, are rejected as invalid.
112while not valid:
A loop that keeps asking for input again until the answer is valid, so bad data (like an age of -5) can't get into your program. Show an error message each time.
113def is_valid_age(text):
A validation function that runs the existence, type and range checks in order and returns True or False, so the same checks can be reused for many inputs and tested.
114encrypt
To scramble data so nobody can read it without the key. This keeps private things like messages, passwords and bank details safe if someone steals or intercepts them.
115Symmetric encryption
Using the exact same secret key to both lock and unlock a message.
116Encryption at rest and in transit
Encrypting data both while stored (databases, backups) and while moving over a network (TLS), so intercepted or stolen data stays unreadable without the key.
117hash
A one-way scrambled value made from a password. A system stores it instead of the real password and checks a login by hashing what you type and comparing. It can't be reversed.
118Linear Search
An algorithm that checks each element in an array one at a time, from the start, until the target is found or the end is reached.
119Binary Search
An algorithm that repeatedly halves a sorted array to quickly find a target value.
120pattern, trend, outlier
Look for patterns and trends in data, like highest, lowest, going up or down. An outlier is a value that stands out from the rest. Compare groups to see differences.
121direct and indirect identifiers
A direct identifier, like a name or email, points to one person alone. An indirect identifier, like suburb, age or school, only identifies someone when combined with other details.
122participant code
A code such as P01 used instead of a name. Names and indirect identifiers like school or suburb are removed, and the key list linking codes to people is stored separately.
123generalising
Replacing an exact value with a broader group, like a birth date with an age band, so the data is less identifying but still useful.
124re-identification
Working out who a person is by matching a mix of details, like age, suburb and year level, that fits only a very small group, even a group of one. Bigger groups hide people better.
125IPO chart
A three-column table listing a solution's inputs (data entered), the processes applied to that data, and the outputs it produces, such as a total or report.
126end if
A closing keyword in VCAA pseudocode that ends an if block; every nested construct uses end followed by its matching keyword: end if, end while, end for
128input
A VCAA pseudocode keyword that accepts a value from the user and stores it in a named variable. Example: input age stores the user's entered value in the variable age
129print
A VCAA pseudocode keyword that outputs a value, variable or expression as a result. Example: print area displays the current value stored in the variable area
130MOD
The pseudocode operator that returns the remainder after integer division. Example: 10 MOD 3 gives 1 because 10 divided by 3 is 3 remainder 1
132AND
A VCAA pseudocode boolean operator that combines two conditions. The overall result is true only when BOTH conditions are true. Example: x > 0 AND x < 10
133IF-THEN-ELSE
A selection structure that runs one set of instructions if a condition is true, and a different set if it is false
134ELSE IF
A keyword that adds another condition to check if the previous IF or ELSE IF condition was false
135FOR i FROM 1 TO n
A loop that repeats its instructions a fixed number of times, counting the variable i from 1 up to n
136WHILE condition DO
A loop that repeats its instructions for as long as the given condition remains true, checked before each repetition
137REPEAT ... UNTIL condition
A loop that repeats its instructions and checks the condition after each repetition, so the body always runs at least once
138count <- count + 1
A counter. It adds 1 to a variable each time a loop repeats. Set it to 0 before the loop. An accumulator works the same way: total <- total + x adds a value each time.
139scores[1]
Accesses the array element at index 1, using square brackets to specify the position.
140student.name
Accesses the name field of the student record, using a dot to connect the record to its field.
141define
A keyword that starts a function definition, naming the function and listing the parameters it accepts
142return
A keyword that sends a value back from a function to where it was called, ending the function's execution at that point
143addNumbers(3, 4)
Calling a function by writing its name followed by arguments in brackets, running its instructions and possibly producing a value
144IPO to pseudocode
Turn each IPO input into an INPUT statement, each process into assignments or IF selection, and each output into a PRINT statement, in that order.
145if valid = true then
Only insert the record if every validation check left the valid flag true. If any check set valid to false, skip the bad record or report it instead of inserting it.
146for each line in file
A loop that reads each line, splits it into fields, trims and validates them, then builds an INSERT statement for each good row and counts accepted and rejected rows.
147repeat ... until choice = 4
A menu loop: repeat shows the menu, reads the choice, picks an action with if or else if, and stops on the exit choice. Any other value gets an invalid choice message.
148for each record in results
Loops through the returned records, printing each as a formatted line under a heading, then prints a summary such as a count or total. If there are none, print a no results message.

Frequently Asked Questions

Do I need an account?

No. Hangman runs straight from this page — no account, no sign-up, nothing to install. If you add your class names, they are saved in your own browser and never sent to Cloodit.

How do I play it with my class?

Put the page on your whiteboard or projector and press Play. The class calls out letters and you click or type them. Six wrong letters and the word gets away. After every word its definition appears, so each round ends on the meaning, not just the spelling.

Can I use my own words?

Yes. The free Hangman generator at cloodit.com/hangman/ takes any list: one word or phrase per line, with a definition after a dash if you want it shown at the end of the round.

Can I put my students' names in?

Yes. Add your class list and a random student is called for each word. The list stays in this browser on this computer, so it is still there next lesson.

Are the worksheets free too?

Yes. Every module in this journey has a free printable worksheet with a full answer key, and there are crosswords and word searches built from the same key terms.

More QCE Hangman

QCE Digital Solutions Unit 1 — Understanding Digital Problems66 key terms QCE Digital Solutions Unit 1 — User Experiences and Interfaces76 key terms QCE Digital Solutions Unit 1 — Algorithms and Programming Techniques87 key terms QCE Digital Solutions Unit 1 — Programmed Solutions96 key terms QCE Digital Solutions Unit 2 — Data-Driven Problems and Solution Requirements128 key terms QCE Digital Solutions Unit 2 — Prototype Data Solutions111 key terms Make your own hangman →Paste any word list and play