ACARA Digital Technologies Years 9–10

These are free worksheets for Years 9–10 of the Australian Curriculum: Digital Technologies (version 9.0): networked systems and access control, content, structure and presentation on the web, data compression, acquiring, validating and analysing data, relational databases and SQL, algorithms with logical operators, testing programs, modular and object-oriented programming in Python or JavaScript, cyber security, and the Australian Privacy Principles.

This page lists the 243 modules written for Years 9–10, one section per content description: topologies, DHCP, subnet masks, gateways, ping, nslookup, traceroute and routing; HTML, CSS and the behaviour layer; audio bitrate and video compression; the data science life cycle, sampling, survey validation, sensor logging and Indigenous data sovereignty; conditional formulas, trends and pivot tables; entities, ERDs, crow's foot notation, referential integrity and SQL; compound conditions in flowcharts and loops; expected outputs, edge cases, test tables and test plans; functions, lists, classes and methods in Python, and functions, arrays and classes in JavaScript; social engineering, STRIDE, attack trees, SQL injection, XSS and buffer overflows; and the Privacy Act, the 13 APPs and the OAIC. Each module includes real practice questions and a full answer key.

Each content description has its own journey below — with separate Python and JavaScript programming journeys — and most are also split into smaller journeys. They reuse Cloodit's other Years 5–10, IGCSE, Python, JavaScript, HTML & CSS and VCE modules where the topic is the same, so each journey is a complete course. Teachers can assign one content description at a time, with progress tracking, class sprints and badges.

Add this whole curriculum to your class, or just the modules your unit needs — Cloodit tracks who's stuck automatically.

Networked Systems and Access Control — AC9TDI10K01, AC9TDI10P13 (28 modules)

12
Star network topology A network layout where each device has its own cable to a central switch or router, so one broken cable cuts off only that device. If the central device fails, the whole network goes down.
13
Drawing a network diagram A drawing that shows each device as a labelled symbol and each connection as a line, so you can see how data can travel between devices.
22
DHCP Dynamic Host Configuration Protocol: a router service that automatically gives each joining device an IP address, subnet mask and default gateway, so no manual set-up is needed.
24
Private and public IP addresses An address like 192.168.1.5 that works only inside a local network. The internet sees the router's public IP instead, and NAT translates between the two so many devices can share it.
25
Subnet mask A number like 255.255.255.0 that splits an IP address into a network part and a device (host) part. With 255.255.255.0, the first three groups name the network.
26
Checking whether two devices are on the same network Two devices are on the same network when their IP addresses have the same network part under the subnet mask. If the network part differs, data must go via the router.
27
Default gateway The router address a device sends data to when the destination is not on its own network. It is usually the router's LAN address. With no gateway set, a device cannot reach the internet.
32
Domain table (name-to-address table) A list pairing each domain name with an IP address. A DNS server looks up a name in it. A missing or wrong entry sends users to the wrong place or nowhere.
33
The ping command A command that sends a small test message to another device and reports whether it replied and how long the reply took in milliseconds. Example: ping 8.8.8.8
34
The nslookup command A command that asks a DNS server for the IP address that matches a domain name. The reply shows which DNS server answered and the Address line with the site's IP.
41
Routing table and next hop A list a router uses to pick where to send each packet. Each row has a destination network and a next hop. The default route 0.0.0.0 is used when no other row matches.
45
Hops and time to live (TTL) Time to live: a number in a packet that drops by 1 at each router hop. When it reaches 0 the packet is discarded, so a packet stuck in a loop cannot circle forever.
46
The traceroute command Windows command (traceroute on Mac and Linux) that lists each router hop between your device and a site, with the time taken to reach each one. Stars (*) mean no reply.
48
Building a small network in a network simulator Software like Filius where you place devices, set each IP address and subnet mask, connect them with cables, then send a ping to test they can reach each other.
50
The TCP/IP four-layer model A four-layer plan for network communication: application (HTTP), transport (TCP, UDP), internet (IP) and network access (Ethernet, Wi-Fi). Each layer has its own job.
51
Internet Protocol (IP) The protocol that puts source and destination IP addresses on each packet so routers can deliver it. It is best-effort: it does not guarantee a packet arrives.
52
Transmission Control Protocol (TCP) Transmission Control Protocol. It sets up a connection, numbers packets, checks each one arrived and resends any missing, so data arrives complete and in order. Web pages and email use it.
53
User Datagram Protocol (UDP) User Datagram Protocol: sends packets with no connection and no resending. It is faster than TCP but data may be lost, so it suits live video, voice calls and online games.
54
Port numbers An IP address followed by a port number. The IP finds the device and the port (80 = HTTP) tells it which service gets the data. Others: 443 HTTPS, 25 SMTP, 53 DNS.
55
Email protocols: SMTP and IMAP SMTP sends email from a client to a mail server and between servers. IMAP (or POP3) lets a client read email stored on the server. Each protocol has a different job.
116
Reading a permission string like rwxr-x--- Three groups of three letters for owner, group and others: r is read, w is write, x is execute and - means not allowed. Here the owner has rwx, group r-x, others nothing.
123
Network (hardware) firewall A device or router feature between a local network and the internet that filters inbound and outbound traffic for every device behind it, not just one.
124
Firewall rule: allow or deny by port A firewall rule with an action (allow), a direction (inbound) and a port (TCP 443). It lets incoming web traffic through. A deny rule on a port, such as 23, blocks it.
125
Firewall rule: allow or deny by IP address A firewall rule that blocks traffic from one IP address. Use a range like 192.168.1.0/24 to match a whole network, and allow to let only trusted addresses, such as the school network, in.
126
Firewall rule order and default deny A firewall checks rules from the top and uses the first match. A final default deny rule blocks anything not allowed by an earlier rule.
127
MAC address filtering A router setting that only lets devices with MAC addresses on an allowed list join. It is easy to set up but weak, because a MAC address can be copied (spoofed).
148
Choosing access controls for a scenario Naming the data to protect, then choosing controls like login, permissions, a firewall or encryption, and justifying each one with the risk it reduces.
149
Explaining how hardware and software control access to data in a network Hardware like routers and firewalls moves and filters a request; software like protocols, login, permissions and encryption decides who may see the data and keeps it safe.

Just this content description: the Networked Systems and Access Control journey · Add AC9TDI10K01, AC9TDI10P13 to a class →

Content, Structure and Presentation — AC9TDI10K02 (10 modules)

153
The behaviour layer: JavaScript The programming language that adds behaviour to a web page, such as reacting to a click, on top of its HTML content and structure and its CSS presentation.
154
Sorting webpage components into layers Every part of a page is content (words, images), structure (tags), presentation (CSS colour, layout) or behaviour (JavaScript). Each layer can be changed on its own.
155
Revealing the layers with View page source and Inspect Browser tool opened by right-clicking an element. It shows that element's HTML and CSS so you can explore a real site's layers. View page source shows the whole HTML.
175
Anatomy of a CSS rule: selector, property and value A CSS rule: a selector (p) picks elements, then { } hold declarations. Each declaration is property, colon, value, semicolon, so all paragraphs get blue text.
182
The color and background-color properties The color property sets an element's text colour using a name or hex value. background-color sets the colour behind the text. Choose pairs with enough contrast to read.
184
The text-align property A CSS property that sets how lines of text line up inside an element: left, center or right. Example: text-align: center; centres a heading's text. It styles the text, not the box.
189
Inline, internal and external CSS Adds an external CSS file. Inline uses style=, internal uses <style>, but only this external link lets many pages share one stylesheet and fully separates presentation from structure.
191
Building a simple page with HTML and CSS together Placed in the head of the HTML file, it connects the page to style.css, so the CSS rules in that second file style the content and structure written in the HTML file.
192
Fixing common HTML and CSS mistakes Finding and fixing small slips in code, such as a missing closing tag, quote, semicolon or brace, or a class name that does not match. Check your code against the rules to spot each one.
193
Explaining why content is separated from presentation Keeping HTML content apart from CSS style means one CSS rule can restyle every page without touching the content, because the look is stored in one place.

Just this content description: the Content, Structure and Presentation journey · Add AC9TDI10K02 to a class →

Data Compression — AC9TDI10K03 (7 modules)

Just this content description: the Data Compression journey · Add AC9TDI10K03 to a class →

Acquiring and Validating Data — AC9TDI10P01, AC9TDI10P02, AC9TDI10P03, AC9TDI10P14 (21 modules)

234
What data science is Using data to answer questions and make decisions by following a purposeful process, instead of guessing. For example, using sport or health data to find real answers.
235
The data science life cycle A repeating cycle of five stages: define the objective, acquire data, clean it, analyse it, communicate insights. Findings can send you back to an earlier stage.
236
Data science roles: scientist, engineer and analyst Data engineers prepare data, data analysts explore it and share results, and data scientists build models and insights. Together they share the data science life cycle.
253
Population and sample The part of a population you collect data from. It must represent the whole population, so use a big enough size, choose randomly and avoid sampling bias.
254
Piloting a survey before use Trying a survey on a few people first to find confusing questions, missing options and timing problems before the real data collection begins.
255
Validation rules on an online survey form A rule set on an online form question, such as required, a number range or multiple choice instead of free text, that blocks bad answers so only valid data is collected.
268
Choosing a logging interval for sensor readings How often a sensor records a reading. Short intervals give more detail but bigger files; long intervals save space but can miss fast changes.
269
Recording sensor readings in a spreadsheet with timestamps A sensor log stores each reading as its own row: a timestamp column for the date and time, then one column per measurement, with units in the header, such as Temp (C).
270
Sensor errors: faults, calibration and noise A reading that is wrong due to a faulty or uncalibrated sensor or electrical noise, so check for stuck values, impossible spikes and offsets against a known value.
283
Respectful data collection and Indigenous data sovereignty The right of Aboriginal and Torres Strait Islander peoples to own, control and decide how data about their communities is collected, used and shared, with consent and respect.
289
Keeping an untouched copy of the raw data Keep the original data untouched on its own Raw sheet or file, then clean a copy on a Clean sheet, so any mistake can be undone. Version numbers like data_v2 and backups help.
307
Length checking with LEN LEN counts the characters in a cell, spaces included. Comparing it to a number, like =LEN(A2)=4 for a 4-digit postcode, gives TRUE if the length is right and FALSE if not.
308
Format checking text and dates A validation check that tests a value follows an expected pattern, like two letters then three digits or a real date. A correct pattern does not prove the data is right.
310
Flagging invalid entries with IF Shows OK if B2 is between 0 and 120, otherwise Check. Copy it down the column beside the data, then filter on Check to find the invalid entries.
329
Standardising spelling variations with Find and Replace A spreadsheet tool that swaps every spelling variation of a category, such as Vic or VIC, for one agreed value like Victoria, so each category is counted only once.
333
Finding duplicates with COUNTIF Counts how many times the value in A2 appears in the whole column range. A result above 1 flags a duplicate, so review those rows before deleting any.
337
Splitting one column into several with Text to Columns A spreadsheet tool that splits the text in one column into separate columns at a chosen delimiter, such as a comma or space, e.g. a full name into first and last name.
341
Deciding what to do with an outlier A value far from the rest. Check if it is a data entry error or a real extreme value, then correct, remove or keep it, and record your decision.
342
Keeping a cleaning log A record of each change made to the data: what changed, how many rows it affected and why. It lets other people check the cleaning and repeat it.
353
Communicating insights to an audience The final life cycle stage: present findings so the audience sees the answer to the original question. State the key finding first, link to the objective and note data limits.
354
Applying the data science process to a scenario Work through a scenario in stages: define the objective, acquire data, validate and clean it, analyse it, report insights, and go back a stage if the data is poor.

Just this content description: the Acquiring and Validating Data journey · Add AC9TDI10P01, AC9TDI10P02, AC9TDI10P03, AC9TDI10P14 to a class →

Analysing and Visualising Data — AC9TDI10P01, AC9TDI10P02, AC9TDI10P07 (24 modules)

358
Converting a range to a Table (Ctrl+T) Shortcut that converts a data range into a Table with named columns, filter buttons and automatic growth when new rows are added. Tick 'My table has headers' first.
375
The AVERAGEIF function Finds the mean of only the values in the last range whose matching cell in the first range meets the criterion, such as the average mark for just Year 9 students.
376
COUNTIFS and SUMIFS with several criteria Counts only rows that meet two or more criteria at once, using pairs of criteria range and criterion. SUMIFS works the same way but adds numbers, and its sum_range comes first.
377
IF with AND and OR AND or OR inside IF joins several tests into one TRUE/FALSE. AND needs every test true. OR needs only one true. The IF then gives its first result if TRUE, otherwise its second.
378
The IFERROR function Runs a formula and shows your chosen value, like 0 or "Not found", if it gives an error. Use it carefully, because it can also hide real mistakes.
390
Combination chart with a secondary axis A chart that mixes types, like columns plus a line, and puts one series on a secondary axis so two data sets with different units, such as sales and temperature, can be read together.
393
Finding outliers with QUARTILE and the IQR rule Finds Q1, the value 25% of the way up the data. Use 3 for Q3. IQR = Q3 - Q1. A value more than 1.5 times the IQR below Q1 or above Q3 is flagged as an outlier.
401
SLOPE and INTERCEPT for a prediction equation SLOPE gives m and INTERCEPT gives c of the best-fit line, so a prediction can be written as y = m*x + c. Both functions take known_y first, then known_x.
406
Building a pivot table from fields The four areas of the PivotTable field list. Drag a field into one to lay out the summary: Rows and Columns label it, Values calculates, Filters narrows the data.
407
Changing a pivot table's value summary A pivot table option that changes what is calculated for each group, such as Sum, Count or Average. It can also show values as a % of column total and set the number format.
408
Grouping dates and numbers in a pivot table A pivot table feature that bundles dates into months or years, or numbers into equal-sized ranges, so the summary shows useful chunks. Right-click a value, then choose Group.
409
Creating a pivot chart A chart linked to a pivot table. It updates whenever you change the pivot table's fields or filters. Create it with Insert > PivotChart.
411
Inserting a slicer on a pivot table Adds a panel of buttons for one field. Click a button to filter the pivot table and its pivot chart. Hold Ctrl to select several buttons at once.
412
Timeline slicers for dates A timeline slicer filters a pivot table by dragging along a date range. Pick months, quarters or years from the time level drop-down. It needs a date field.
413
Connecting one slicer to several pivot charts A slicer setting that links one slicer to many pivot tables. Tick each pivot table to connect; they must share the same source data. One click then updates every linked chart.
414
Referencing a cell on another worksheet Pulls the value from cell B2 on the sheet named Data. Write the sheet name, then !, then the cell. Names with spaces need quotes: ='Sales Data'!B2.
416
Named ranges A readable name given to a cell or range, like Selected_Year, which formulas and charts can use instead of cell addresses such as B2:B30.
417
A drop-down list as a chart selector A drop-down in one cell, made with Data Validation, that lets the user pick an item from a range; formulas read that cell so the chart shows only the chosen item.
418
Feeding a chart from a selected cell with INDEX and MATCH MATCH finds the row of the item chosen in the selector cell A13. INDEX returns that whole row into a helper range, and the chart plots the helper range, so it updates when the choice changes.
419
Option buttons and combo boxes as form controls A Developer tab control, such as an option button or combo box, that writes the user's choice into a linked cell so formulas and charts can react.
420
Scroll bar and spin button form controls A form control that changes a linked cell's number between a minimum and maximum, in steps, so a chart can move through values like years. A spin button does the same.
421
A chart title linked to a cell A chart title linked to a cell. Click the title, type = then a cell or text joined with &, and the title updates when the cell changes, such as a drop-down choice.
422
Charting a filtered table A chart built from a filtered table plots only the visible rows, so applying or clearing a filter updates the chart. Hidden rows stay out unless Show data in hidden rows is on.
424
Laying out a dashboard sheet Arranging charts, slicers and key figures on one sheet, neatly aligned and sized, with gridlines hidden, so the main message is easy to see at a glance.

Just this content description: the Analysing and Visualising Data journey · Add AC9TDI10P01, AC9TDI10P02, AC9TDI10P07 to a class →

Entities, Relationships and Queries — AC9TDI10P03 (20 modules)

433
The repeated-data problem in one big table 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.
435
Entity 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.
436
Attributes become fields 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.
441
One-to-one and many-to-many relationships 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.
442
Entity relationship diagram: entities and relationship lines 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.
443
Crow's foot notation for one and many 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.
444
Drawing an ERD 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.
445
Referential 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.
448
What SQL is Structured Query Language, the standard language for asking a database to return data (SELECT) or to add, change or remove it (INSERT, UPDATE, DELETE).
451
FOREIGN KEY ... REFERENCES in CREATE TABLE 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.
459
Pattern matching with LIKE, % and _ 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.
460
BETWEEN and IN in a WHERE clause 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.
465
Why a query over two tables needs a join 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.
467
Writing the ON condition: foreign key equals primary key 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.
468
Table-qualified field names in a join 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.
469
Table aliases in a join Gives the students table the short name s after FROM, so the rest of the query can write s.firstName instead of students.firstName.
470
A join with WHERE and 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.
471
Joining three tables 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.
472
A join that forgets the ON condition 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.
475
Answering a question with a multi-table query A query that gets fields from more than one table: find which tables hold them, JOIN them on matching keys, then add WHERE and ORDER BY to match the question.

Just this content description: the Entities, Relationships and Queries journey · Add AC9TDI10P03 to a class →

Algorithms with Logical Operators — AC9TDI10P05, AC9TDI10P06 (11 modules)

492
Turning a worded rule into AND, OR and NOT Key words in a worded rule signal the operator: both/and means AND, either/or means OR, not/unless/except means NOT. Use them to rewrite the rule as a compound condition.
498
Drawing AND as two decisions in a row In a flowchart, AND is two diamonds in a row: only Yes then Yes reaches the action, and a No from either diamond goes to the same next step.
499
Drawing OR as two decisions sharing one outcome In a flowchart, OR is two diamonds whose Yes arrows both reach the same action. The second diamond sits on the first's No path. The action is skipped only if both are No.
503
Choosing nested IFs or one compound condition IF A AND B gives the same result as IF A THEN IF B when one action needs both tests. Use nesting when each test needs its own different ELSE outcome.
511
A WHILE loop with a compound condition The loop repeats only while BOTH tests are TRUE. As soon as either test becomes FALSE, the whole condition is FALSE and the loop stops.
512
A REPEAT…UNTIL loop with two ways to stop A REPEAT loop whose UNTIL condition uses OR stops as soon as either part becomes TRUE, so the loop has two ways to end: a correct guess or running out of tries.
514
Drawing a loop with a compound exit condition in a flowchart A loop test using AND or OR is drawn as a back arrow to the first question, with one combined diamond or two diamonds. Both exit reasons must lead out of the loop.
520
Counting items that meet a compound condition Inside a loop, an IF with AND or OR tests each item and adds 1 to count only when the whole combined condition is true, so count ends as the number of items that qualify.
524
Tracing a compound condition step by step Work out each part as TRUE or FALSE for the current values, record both in the trace table, then combine them with AND, OR or NOT. Do brackets first.
534
Designing an algorithm that uses logical operators with selection and iteration A complete design where a loop repeats, IF decisions use AND, OR or NOT, and the flowchart and the pseudocode do the same job, so both versions agree.
536
Choosing test data for compound conditions Values chosen so each part of a compound condition is TRUE and FALSE in turn, including boundaries like 17, 18 and 19 for Age >= 18, so every path gets tested.

Just this content description: the Algorithms with Logical Operators journey · Add AC9TDI10P05, AC9TDI10P06 to a class →

Testing and Validating Programs — AC9TDI10P05, AC9TDI10P06, AC9TDI10P07 (19 modules)

540
What it means to validate an algorithm or program To prove a program gives the correct output for its problem by running or tracing it against test cases. Running without errors is not proof; it is only as validated as its tests.
542
Working out the expected output before you run the code The correct result of a test case, worked out by hand from the specification before running the code. Never copy it from the program's own output, or the test proves nothing.
551
Edge cases with lists and strings An unusual but allowed input, such as an empty list, a one-item list, repeated values, or the maximum at the start or end, that you test because it can break code.
552
Testing compound conditions with and, or, not A table listing every True/False combination of the parts in an and/or/not condition. Use it to pick test inputs that make each part True and False, then check each result.
554
Test coverage of branches and loops Testing so that every if/elif/else branch runs at least once and every loop is tried running zero times, once and many times. Any code never run is untested.
566
Tracing a flowchart with test values Follow a flowchart from Start to Stop using test values, noting each diamond's Yes or No answer in a trace table and following loop arrows back until Stop.
568
Checking a trace against the real program output Run the code with the same input you traced, then compare. If the real output differs from your trace, either the trace or the code has a mistake, so re-trace.
589
Test table layout A table with one row per test case. Its columns are test number, purpose, input, expected result, actual result and pass or fail.
590
Recording actual results and a pass or fail verdict Copy the actual result exactly as the program gave it, then mark Pass only if it matches the expected result, otherwise Fail. Never change the expected result to fit, and add a note for fails.
591
Writing a test plan from requirements A list, made before testing, of normal, boundary and invalid test cases for each requirement, with the expected result for every test.
592
Writing test cases before the code Write test cases and expected results from the requirements before coding, so they check what the program should do, not what your code does. Rerun them as it grows.
594
Testing a program that uses input() Pauses a program so you can type a test value; it returns text. Test by typing each planned input in order, then compare the printed output with the expected result.
595
Storing test cases as a list of tuples A list of (input, expected) tuples. Each tuple is one test case, so a loop can run many tests stored in one variable. Add a new tuple to add a new test.
596
Looping through test cases and printing PASS or FAIL Loops over each (input, expected) tuple in tests, unpacking it into two variables. Then you call the function, compare actual to expected, and print PASS, or FAIL with both values.
598
Testing decimal results with round() Floats can be slightly inexact (0.1 + 0.2 is not 0.3), so round the actual result to a set number of decimal places before comparing it with the expected value.
599
Testing that invalid input is rejected Tests that bad input is rejected: call the validator with an invalid value and assert it returns False. If an error is expected, use try/except; no error means the test fails.
601
Judging whether a set of test cases is enough Test cases are enough when they use normal, boundary and invalid data and run every branch and loop. Missing any leaves the program only partly validated, and passing tests never prove no bugs.
603
Writing a test report conclusion A summary of how many tests passed and failed, what was fixed and retested, and a conclusion on whether the program is validated, backed by the results and any limitations.
622
Retesting everything after a fix After fixing a bug, rerun the failed test and all earlier tests, because a fix can break code that used to pass.

Just this content description: the Testing and Validating Programs journey · Add AC9TDI10P05, AC9TDI10P06, AC9TDI10P07 to a class →

Modular and Object-Oriented Programming (Python) — AC9TDI10P06, AC9TDI10P09 (12 modules)

629
Functions that return True or False (Python) Calls a function that returns True or False and uses that result directly as the if condition. You do not need to write == True. It can also be combined with not, and, or.
648
Passing a list into a function A function header with a list parameter. Pass a list when you call it, like total_of([5, 8, 9]), and the function can loop over or read its items.
649
Functions that change a list or return a new one A function can change a list you pass in, altering the original in place. Make a copy with [:] first if you need to keep the original list unchanged.
650
Building and returning a list from a function Start a function with an empty list, append each wanted item inside a loop, then return the finished list after the loop ends. Filtering builds a new list.
659
Common function mistakes: print instead of return Sends a value back to the caller. If a function only prints and has no return, it gives back None, so the caller cannot use the result.
664
Why object-oriented programming is used A way of writing programs that groups related data and the code that uses it into one unit called an object, so programs modelling real things are easier to organise than separate lists and functions.
668
Reading and changing attributes with dot notation Dot notation reads or changes an attribute stored in an object, like print(pet.name) or pet.age = 5. Each object keeps its own values. A missing attribute causes an AttributeError.
670
Methods with parameters and return values (Python) A method can take extra parameters after self, like amount, and use return to send a value back to the code that called it.
672
Creating several objects from one class Creates a second object from the same class. Each object keeps its own attribute values, so changing s2 does not change s1, but both use the same methods.
680
Common class mistakes: self and attribute errors Saves a value on the object. Without self. the attribute is lost (AttributeError), and a method missing self as first parameter gives a TypeError for wrong argument count.
681
Testing a class with assert Creates an object, calls its method, then uses assert to check the result or attribute equals what you expect. If it is False, Python raises an AssertionError.
682
Building a modular program with functions, lists and classes A program split into parts: a class for its things, a list of objects, and small functions called from main(), planned with diagrams and checked with tests.

Just this content description: the Modular and Object-Oriented Programming (Python) journey · Add AC9TDI10P06, AC9TDI10P09 to a class →

Modular and Object-Oriented Programming (JavaScript) — AC9TDI10P09 (35 modules)

696
A function with no return gives undefined The value a function gives back when it has no return statement. console.log only shows a value on screen, so a variable storing the result will hold undefined.
699
Functions calling other functions A function can call another function inside its body. Here square() is a helper, so the bigger function stays short and each function does one job.
700
Functions that return true or false (JavaScript) A function that returns true or false can be called right inside an if condition. The if block runs only when the function returns true, like isEven(n) or isValidAge(age).
701
Documenting a function with a comment A doc comment placed above a function. It says what the function does, lists its inputs with @param and its output with @returns, so others can use it without reading the code.
703
Passing a function as an argument (callback) A function passed as an argument, without brackets, to another function that calls it later. Examples: nums.forEach(show) or nums.map(n => n * 2).
705
The array length property A property (no brackets) giving how many items are in an array. The last index is length - 1, an empty array has length 0, and length grows as items are added.
706
Reading beyond the end of an array Reading an index past the last item (or a negative index) does not crash. It gives undefined. The last valid index is length - 1, so scores[10] in a 10-item array is undefined.
707
Looping through an array by index A loop that counts i from 0 up to the last index, so scores[i] visits every item in the array. Use < not <=, or i goes one step past the end and reads undefined.
710
Removing items with pop, shift and splice Array methods that remove items and change the original array: pop removes the last item, shift removes the first, splice(index, count) removes count items starting at index.
711
Searching an array with includes and indexOf Array method that gives true if the value is in the array, otherwise false. Its partner indexOf(value) gives the position, or -1 if the value is not found.
712
Passing an array to a function A function with a parameter that receives an array when called, e.g. total([4, 7, 9]). The function can loop over it, return a new array, or change the original array.
713
A function that totals and averages an array Adds each array item to a running total inside a loop. Set let total = 0 before the loop, then return total. Divide by nums.length for the average.
714
A function that finds the largest value in an array Start by treating the first array item as the largest, compare every other item, replace it when a bigger one is found, then return it. Smallest works the same way.
719
Reading a JavaScript error message The console text that names the error type, such as SyntaxError or TypeError, and the line number where it happened, so you know what went wrong and where to look.
720
Debugging with console.log A temporary line that prints a variable's value while the program runs, so you can see where it goes wrong. Add a label to tell values apart, then remove it once fixed.
722
Breakpoints and stepping in browser DevTools A marker on a line in browser DevTools that pauses the program there, so you can step through the code line by line and watch the variables change.
723
Common bugs in functions and arrays A mistake in code that gives wrong results. Common ones: a missing return, <= instead of < in an index loop, a total set inside the loop, or calling a function without ().
727
Testing a function with console.assert Prints the message only when the condition is false, so a test like console.assert(add(2, 3) === 5) stays silent when the function gives the expected result.
728
Modifying an existing JavaScript program Read the code and predict its output, change one small part at a time, then re-run your tests after each change to check that nothing else broke.
729
Why programmers use object-oriented programming Object-oriented programming: building a program from objects that bundle related data with the code that uses it, modelling real things and reusing a blueprint.
730
Class, object, property and method A blueprint for dogs. An object like Rex is made from it. Properties are its data (nouns like name) and methods are its actions (verbs like bark).
732
Changing and adding object properties Assigning to object.property with = changes an existing property or adds a new one if it is not there yet. Reading a property that does not exist gives undefined.
734
A method inside an object literal A method is a function stored as an object property. Write it inside the object, then call it with a dot and brackets: person.greet().
737
Creating an object with new Creates an object from a class and passes the arguments to the constructor. Store it in a variable, e.g. const rex = new Dog('Rex', 3). Leaving out new causes an error.
738
The this keyword in a class Inside a class, this means the object being worked on, so this.name is that object's own name property. Leaving out this causes a ReferenceError.
739
Reading and changing an object's properties Reads a property of an object, like rex.age. To change it, assign a new value: rex.age = 4. Each object keeps its own values.
741
Methods with parameters and return values (JavaScript) A class method takes a parameter (amount) and uses return to give back a value worked out from the object's properties, such as the new balance.
742
Methods that change an object's properties A method line that updates the object's own property, so its state changes each time the method is called. Calling deposit(50) twice adds 50 twice.
743
One class, many objects Each new Pet() makes a separate object from the same class. Every object has its own property values, but all of them share the same methods. Changing one object does not change the others.
744
Storing objects in an array Makes a new Student object and adds it to the end of the students array. You can then loop over the array and call each object's methods.
745
Methods calling other methods Inside a class, a method calls another method of the same object by writing this. before its name, such as this.isPassing(). Forgetting this. causes a ReferenceError.
747
Choosing properties and methods for a class from a scenario Read the scenario: nouns (data to store) become properties and verbs (actions) become methods. Keep only the details the program needs and leave the rest out.
748
Modifying an existing class Modifying a class: add or change a constructor parameter, property or method, then update every new call that creates its objects and re-run your tests.
749
Common bugs in classes and objects Common class bugs: forgetting new, leaving out this. in the constructor, swapping the arguments, or misspelling a property so it reads undefined.
750
Building a modular program with functions, arrays and classes A program built from small parts: a class for the data, an array of its objects, and helper functions that each do one job (like totals or searches), all run by a main function.

Just this content description: the Modular and Object-Oriented Programming (JavaScript) journey · Add AC9TDI10P09 to a class →

Cyber Security Threats and Vulnerabilities — AC9TDI10K01, AC9TDI10P13, AC9TDI10P14 (49 modules)

768
Impact of a cyber attack on an individual The harm a cyber attack causes a person, such as stolen money, identity theft, a locked-out account, lost private photos or messages, reputation damage and emotional distress.
769
Impact of a cyber attack on an organisation The harm a cyber attack does to a business or group, such as downtime, recovery costs, lost customer trust, a damaged reputation and fines for breaking privacy laws.
781
Pretexting Inventing a believable story or fake identity, like IT support or a delivery driver, to build trust and talk someone into handing over information or access.
782
Physical social engineering: tailgating and baiting Tricks that gain physical access: tailgating follows an authorised person through a secure door, and baiting leaves an infected USB drive for someone to plug in.
795
Data flow diagram of a system A diagram showing how data moves between users, processes, data stores and external services, using labelled arrows to show what data flows where.
798
Mapping STRIDE threats to confidentiality, integrity and availability Each STRIDE threat attacks at least one part of the CIA triad. Tampering hits integrity, denial of service hits availability, spoofing and information disclosure hit confidentiality.
801
Writing a threat statement One sentence naming the actor, the vulnerability they use, the asset at risk and the impact, using because to link cause and effect.
803
Attack trees A diagram with the attacker's goal at the top, branching into the different ways to reach it. OR branches are alternatives; AND branches are steps that are all needed.
804
Reviewing and updating a threat model Check and update a threat model whenever the system, its users or the known threats change, for example after adding a new feature, a new dependency or a new control.
806
Input validation Checking that data a user enters is the expected type, length and format before the program uses it, so bad or harmful input is rejected.
807
SQL injection An attack where SQL commands typed into an input box run because the program joins the input straight into a query. Parameterised queries stop it by treating input only as data.
808
Cross-site scripting (XSS) An attack where a page shows untrusted input, like a comment, without cleaning it, so the attacker's script runs in other users' browsers and can steal cookies. Escape output to stop it.
809
Buffer overflow When a program writes more data into a memory area (buffer) than it can hold, overwriting nearby memory. This can crash the program or let an attacker run their own code.
810
Zero-day vulnerabilities A zero-day is a software flaw that attackers know about before the maker has released a fix, so there is no patch yet. Defenders use workarounds and monitoring until one arrives.
811
Outdated versions of software Software that is missing the latest security patches, so its known flaws stay open for attackers to exploit.
812
Default credentials and insecure settings The factory username and password a device or app ships with. If they are never changed, anyone who knows or guesses them can log in and take control.
813
Improper credential management Storing, sharing or reusing passwords, keys or tokens insecurely (in plain text, on shared accounts, or on many sites) so attackers can steal them and gain unauthorised access.
815
Reading a vulnerability report A public vulnerability report with a unique ID that names the affected software and versions, explains how the flaw is exploited, gives a severity score and links to a fix.
820
Oversharing fuels targeted attacks Posting personal details online, like pet or school names, which attackers use to guess passwords and write convincing targeted messages.
824
Software supply chain Everything used to make and deliver software: code libraries, tools, build systems, suppliers and updates. Most of an app is other people's code, so every link must be trusted.
825
Third-party dependencies A library written by someone else that your program imports and relies on. A flaw in it affects every app that uses it, and it may pull in its own dependencies too.
826
Compromised software updates A software update from a trusted supplier that criminals have secretly infected with malicious code, so users install it believing it is safe.
827
Typosquatting and malicious packages Publishing a malicious package or site with a name almost the same as a trusted one, like reqeusts for requests, hoping people use it by mistake.
828
Analysing a real supply chain attack An attack where hackers breach one trusted supplier and use its software update to reach many victims. A case study traces the supplier, how the update spread and who was hit.
829
Code signing and trusted sources Adding a digital signature to software so a computer can check it came from the named publisher and has not been changed since it was signed.
830
Software bill of materials (SBOM) A software bill of materials: a list of every component and library inside software, with version numbers, so each can be checked for known vulnerabilities.
831
Reducing supply chain risk Lower the chance of a bad dependency: use fewer trusted ones, pin exact versions, verify their integrity with hashes, and scan them for known vulnerabilities.
837
The Essential Eight Eight baseline security strategies from the Australian government, like patching, MFA, backups and application control, that cut the risk of cyber incidents.
841
Spotting an attack in a log file Reading a log in time order for patterns, like many failed logins then one success, odd times or unfamiliar places, to spot an attack.
856
Caesar cipher wrap-around with MOD 26 Caesar wrap-around rule: with A=0 to Z=25, add the shift then take MOD 26 so letters past Z loop back to A. Example: X (23) + 5 = 28, MOD 26 = 2, which is C.
857
Key space: how many keys a cipher has The total number of different keys a cipher allows. A Caesar cipher has only 25 useful keys, so an attacker can try them all. More keys means a bigger key space and a stronger cipher.
858
Breaking a Caesar cipher by trying every shift Trying every possible key, such as all 25 Caesar shifts, then choosing the result that reads as sensible text. A short key leaves few shifts to try, so the cipher is weak.
859
Monoalphabetic substitution cipher A cipher that swaps each letter for a different letter from one scrambled alphabet. That scrambled alphabet is the key, and it never changes during the message.
860
Frequency analysis Counting how often each letter appears in ciphertext and matching the most common ones to common English letters like E, to work out a substitution cipher's key.
862
Transposition cipher: rail fence A cipher that keeps the same letters but changes their order, like writing a message in a zigzag across rails and then reading each rail in turn.
866
CODE and CHAR functions in a spreadsheet Gives the number code of a letter, so =CODE("A") returns 65. Its partner =CHAR(65) turns a code back into a letter. Capital letters start at 65 (A) and run to 90 (Z).
867
The MOD function in a spreadsheet Returns the remainder after division, so numbers wrap around. =MOD(27,26) gives 1, which is how a Caesar shift loops from Z back to A.
868
Encrypting a letter with a Caesar formula in a spreadsheet Shifts the capital letter in A2 forward by the key in locked cell $B$1, wrapping Z back to A, and returns the encrypted letter. Copy it across so each cell encrypts one letter.
869
Decrypting a Caesar cipher in a spreadsheet Shifts a letter back by the key (3) to decrypt it. Subtracting the key undoes adding it, and MOD 26 wraps A-Z around so the result stays a letter.
871
ord() and chr() in Python ord("A") returns the number code of a character (65). chr(65) turns a number code back into its character ("A"). Ciphers use them to change letters to numbers and back.
873
Testing letters with isalpha() and isupper() Returns True if the character ch is a letter, so a Caesar loop can shift letters and leave spaces and punctuation unchanged. ch.isupper() checks for capitals.
874
Encrypting a message with a Caesar loop in Python Shifts an upper-case letter ch along the alphabet by shift, wrapping past Z back to A. A for loop applies it to each letter and builds the ciphertext with +=, skipping spaces.
875
Decrypting a Caesar cipher in Python Decrypts by calling the same Caesar function with the negative of the original shift. Shifting back by the same amount undoes the encryption, and % keeps the letters wrapping.
876
Brute-forcing a Caesar cipher in Python A loop that tries every Caesar shift from 1 to 25. Each pass decrypts the message and prints the shift beside the result, so you can spot the readable one.
877
Vigenere cipher in Python Picks the keyword letter for position i and wraps back to the start with %, so each message letter gets its own shift. This is how a Vigenere cipher loop cycles the keyword.
878
The XOR cipher Encrypts by XOR-ing (^ in Python) each character code with a key number. XOR-ing the result with the same key again restores the original, so one key encrypts and decrypts.
879
Base64 is encoding, not encryption Rewrites data using 64 printable characters so it can be sent as text. It has no secret key, so anyone can reverse it. It is encoding, not encryption, and protects nothing.
885
One-way functions A calculation that is easy to do forwards but practically impossible to reverse, like mixing paint. It is the idea behind hashing and public-key encryption.
897
Hashing text with hashlib in Python Python code that turns text into bytes, hashes it with SHA-256 and returns a fixed-length hex string. Same input gives the same hash; one changed letter gives a new hash.

Just this content description: the Cyber Security Threats and Vulnerabilities journey · Add AC9TDI10K01, AC9TDI10P13, AC9TDI10P14 to a class →

Privacy Principles and Digital Footprints — AC9TDI10P14 (7 modules)

913
Who must follow the Privacy Act: APP entities An organisation or government agency that must follow the Australian Privacy Principles under the Privacy Act 1988, such as federal agencies, health providers and larger businesses.
915
The 13 APPs grouped by stage of the data lifecycle The 13 APPs grouped by what happens to data: openness (1-2), collection (3-5), use and disclosure (6-9), quality and security (10-11), access and correction (12-13).
927
APP 10: quality of personal information Australian Privacy Principle 10: take reasonable steps to make sure the personal information you collect, use or disclose is accurate, up to date and complete.
930
The OAIC and making a privacy complaint The Office of the Australian Information Commissioner: the government body that oversees the Privacy Act, gives guidance, handles privacy complaints and can act on APP breaches.
931
Implications of the APPs for organisations and individuals The APPs make organisations handle personal data responsibly (clear policy, minimal collection, security, correction) and give people rights: consent, anonymity, access, correction and complaint.
941
Depersonalising a spreadsheet by removing identifying columns Save a copy first, then delete columns that identify people (name, address, birth date) so only data needed for analysis remains. Hiding is not enough when sharing.
944
Critiquing a student solution's digital footprint against the APPs List the data a solution collects, test each item against the relevant APPs as met, partly met or not met, then recommend changes that shrink the footprint.

Just this content description: the Privacy Principles and Digital Footprints journey · Add AC9TDI10P14 to a class →

Printable ACARA Digital Technologies Years 9–10 Crosswords & Word Searches

Built from the key terms of each block of modules, every one with a full answer key. All free printables →

✎
Crossword: Networked Systems and Access Control (Modules 12–34) 10 clues · Star network topology, Drawing a network diagram, DHCP, Private and public IP addresses and more
✎
Crossword: Networked Systems and Access Control (Modules 41–55) 10 clues · Routing table and next hop, Hops and time to live (TTL), The traceroute command, Building a small network in a network simulator and more
✎
Crossword: Networked Systems and Access Control and Content, Structure and Presentation (Modules 116–154) 10 clues · Reading a permission string like rwxr-x---, Network (hardware) firewall, Firewall rule: allow or deny by port, Firewall rule: allow or deny by IP address and more
✎
Crossword: Content, Structure and Presentation and Data Compression (Modules 155–225) 10 clues · Revealing the layers with View page source and Inspect, Anatomy of a CSS rule: selector, property and value, The color and background-color properties, The text-align property and more
✎
Crossword: Data Compression and Acquiring and Validating Data (Modules 226–254) 10 clues · Exporting audio at different quality levels in Audacity, How video compression reuses unchanged parts of frames, Streaming media and adjusting bitrate, Common compressed file formats and what they are used for and more
✎
Crossword: Acquiring and Validating Data (Modules 255–329) 10 clues · Validation rules on an online survey form, Choosing a logging interval for sensor readings, Recording sensor readings in a spreadsheet with timestamps, Sensor errors: faults, calibration and noise and more
✎
Crossword: Acquiring and Validating Data and Analysing and Visualising Data (Modules 333–377) 10 clues · Finding duplicates with COUNTIF, Splitting one column into several with Text to Columns, Deciding what to do with an outlier, Keeping a cleaning log and more
✎
Crossword: Analysing and Visualising Data (Modules 378–412) 10 clues · The IFERROR function, Combination chart with a secondary axis, Finding outliers with QUARTILE and the IQR rule, SLOPE and INTERCEPT for a prediction equation and more
✎
Crossword: Analysing and Visualising Data (Modules 413–424) 10 clues · Connecting one slicer to several pivot charts, Referencing a cell on another worksheet, Named ranges, A drop-down list as a chart selector and more
✎
Crossword: Entities, Relationships and Queries (Modules 433–451) 10 clues · The repeated-data problem in one big table, Entity, Attributes become fields, One-to-one and many-to-many relationships and more
✎
Crossword: Entities, Relationships and Queries (Modules 459–475) 10 clues · Pattern matching with LIKE, % and _, BETWEEN and IN in a WHERE clause, Why a query over two tables needs a join, Writing the ON condition: foreign key equals primary key and more
✎
Crossword: Algorithms with Logical Operators (Modules 492–534) 10 clues · Turning a worded rule into AND, OR and NOT, Drawing AND as two decisions in a row, Drawing OR as two decisions sharing one outcome, Choosing nested IFs or one compound condition and more
✎
Crossword: Algorithms with Logical Operators and Testing and Validating Programs (Modules 536–590) 10 clues · Choosing test data for compound conditions, What it means to validate an algorithm or program, Working out the expected output before you run the code, Edge cases with lists and strings and more
✎
Crossword: Testing and Validating Programs (Modules 591–622) 10 clues · Writing a test plan from requirements, Writing test cases before the code, Testing a program that uses input(), Storing test cases as a list of tuples and more
✎
Crossword: Modular and Object-Oriented Programming (Python) (Modules 629–680) 10 clues · Functions that return True or False (Python), Passing a list into a function, Functions that change a list or return a new one, Building and returning a list from a function and more
✎
Crossword: Modular and Object-Oriented Programming (Python) and Modular and Object-Oriented Programming (JavaScript) (Modules 681–707) 10 clues · Testing a class with assert, Building a modular program with functions, lists and classes, A function with no return gives undefined, Functions calling other functions and more
✎
Crossword: Modular and Object-Oriented Programming (JavaScript) (Modules 710–727) 10 clues · Removing items with pop, shift and splice, Searching an array with includes and indexOf, Passing an array to a function, A function that totals and averages an array and more
✎
Crossword: Modular and Object-Oriented Programming (JavaScript) (Modules 728–742) 10 clues · Modifying an existing JavaScript program, Why programmers use object-oriented programming, Class, object, property and method, Changing and adding object properties and more
✎
Crossword: Modular and Object-Oriented Programming (JavaScript) and Cyber Security Threats and Vulnerabilities (Modules 743–781) 10 clues · One class, many objects, Storing objects in an array, Methods calling other methods, Choosing properties and methods for a class from a scenario and more
✎
Crossword: Cyber Security Threats and Vulnerabilities (Modules 782–809) 10 clues · Physical social engineering: tailgating and baiting, Data flow diagram of a system, Mapping STRIDE threats to confidentiality, integrity and availability, Writing a threat statement and more
✎
Crossword: Cyber Security Threats and Vulnerabilities (Modules 810–827) 10 clues · Zero-day vulnerabilities, Outdated versions of software, Default credentials and insecure settings, Improper credential management and more
✎
Crossword: Cyber Security Threats and Vulnerabilities (Modules 828–859) 10 clues · Analysing a real supply chain attack, Code signing and trusted sources, Software bill of materials (SBOM), Reducing supply chain risk and more
✎
Crossword: Cyber Security Threats and Vulnerabilities (Modules 860–875) 10 clues · Frequency analysis, Transposition cipher: rail fence, CODE and CHAR functions in a spreadsheet, The MOD function in a spreadsheet and more
✎
Crossword: Cyber Security Threats and Vulnerabilities and Privacy Principles and Digital Footprints (Modules 876–944) 10 clues · Brute-forcing a Caesar cipher in Python, Vigenere cipher in Python, The XOR cipher, Base64 is encoding, not encryption and more
🔎
Word Search: Networked Systems and Access Control (Modules 12–55) 20 words to find · Star network topology, Drawing a network diagram, DHCP, Private and public IP addresses and more
🔎
Word Search: Networked Systems and Access Control to Data Compression (Modules 116–225) 20 words to find · Reading a permission string like rwxr-x---, Network (hardware) firewall, Firewall rule: allow or deny by port, Firewall rule: allow or deny by IP address and more
🔎
Word Search: Data Compression and Acquiring and Validating Data (Modules 226–329) 20 words to find · Exporting audio at different quality levels in Audacity, How video compression reuses unchanged parts of frames, Streaming media and adjusting bitrate, Common compressed file formats and what they are used for and more
🔎
Word Search: Acquiring and Validating Data and Analysing and Visualising Data (Modules 333–412) 20 words to find · Finding duplicates with COUNTIF, Splitting one column into several with Text to Columns, Deciding what to do with an outlier, Keeping a cleaning log and more
🔎
Word Search: Analysing and Visualising Data and Entities, Relationships and Queries (Modules 413–451) 21 words to find · Connecting one slicer to several pivot charts, Referencing a cell on another worksheet, Named ranges, A drop-down list as a chart selector and more
🔎
Word Search: Entities, Relationships and Queries and Algorithms with Logical Operators (Modules 459–534) 22 words to find · Pattern matching with LIKE, % and _, BETWEEN and IN in a WHERE clause, Why a query over two tables needs a join, Writing the ON condition: foreign key equals primary key and more
🔎
Word Search: Algorithms with Logical Operators and Testing and Validating Programs (Modules 536–622) 20 words to find · Choosing test data for compound conditions, What it means to validate an algorithm or program, Working out the expected output before you run the code, Edge cases with lists and strings and more
🔎
Word Search: Modular and Object-Oriented Programming (Python) and Modular and Object-Oriented Programming (JavaScript) (Modules 629–707) 21 words to find · Functions that return True or False (Python), Passing a list into a function, Functions that change a list or return a new one, Building and returning a list from a function and more
🔎
Word Search: Modular and Object-Oriented Programming (JavaScript) (Modules 710–742) 21 words to find · Removing items with pop, shift and splice, Searching an array with includes and indexOf, Passing an array to a function, A function that totals and averages an array and more
🔎
Word Search: Modular and Object-Oriented Programming (JavaScript) and Cyber Security Threats and Vulnerabilities (Modules 743–809) 21 words to find · One class, many objects, Storing objects in an array, Methods calling other methods, Choosing properties and methods for a class from a scenario and more
🔎
Word Search: Cyber Security Threats and Vulnerabilities (Modules 810–859) 21 words to find · Zero-day vulnerabilities, Outdated versions of software, Default credentials and insecure settings, Improper credential management and more
🔎
Word Search: Cyber Security Threats and Vulnerabilities and Privacy Principles and Digital Footprints (Modules 860–944) 20 words to find · Frequency analysis, Transposition cipher: rail fence, CODE and CHAR functions in a spreadsheet, The MOD function in a spreadsheet and more

Journeys using these modules

ACARA Digital Technologies Years 9–10 — Networked Systems and Access Control, ACARA Digital Technologies Years 9–10 — Content, Structure and Presentation, ACARA Digital Technologies Years 9–10 — Data Compression, ACARA Digital Technologies Years 9–10 — Acquiring and Validating Data, ACARA Digital Technologies Years 9–10 — Analysing and Visualising Data, ACARA Digital Technologies Years 9–10 — Entities, Relationships and Queries, ACARA Digital Technologies Years 9–10 — Algorithms with Logical Operators, ACARA Digital Technologies Years 9–10 — Testing and Validating Programs, ACARA Digital Technologies Years 9–10 — Modular and Object-Oriented Programming (Python), ACARA Digital Technologies Years 9–10 — Modular and Object-Oriented Programming (JavaScript), ACARA Digital Technologies Years 9–10 — Cyber Security Threats and Vulnerabilities, ACARA Digital Technologies Years 9–10 — Privacy Principles and Digital Footprints, QCE Digital Solutions Unit 1 — Algorithms and Programming Techniques, QCE Digital Solutions Unit 1 — Programmed Solutions, QCE Digital Solutions Unit 2 — Data-Driven Problems and Solution Requirements, QCE Digital Solutions Unit 2 — Data and Programming Techniques, QCE Digital Solutions Unit 2 — Prototype Data Solutions, QCE Digital Solutions Unit 3 — Interactions Between Users, Data and Digital Systems, QCE Digital Solutions Unit 3 — Real-World Problems and Solution Requirements, QCE Digital Solutions Unit 3 — Innovative Digital Solutions, QCE Digital Solutions Unit 4 — Digital Methods for Exchanging Data, QCE Digital Solutions Unit 4 — Complex Digital Data Exchange Problems and Solution Requirements, QCE Digital Solutions Unit 4 — Prototype Digital Data Exchanges, WA Computer Science ATAR Year 11 — Pseudocode and Algorithm Design, WA Computer Science ATAR Year 11 — Control Structures and Data Types, WA Computer Science ATAR Year 11 — Modular Programming, WA Computer Science ATAR Year 11 — Network Communications, WA Computer Science ATAR Year 11 — Data Management, WA Computer Science ATAR Year 11 — Cyber Security

Or build your own Journey from any of these modules →

Frequently Asked Questions

Are these worksheets free?

Yes — every worksheet and its answer key is free to view, download, and print, with no account required to access any individual module.

Do I need an account?

No account is needed to view or print a worksheet. A free teacher account adds extras like assigning modules to a class and tracking progress automatically — it takes under three minutes to set up and doesn't need a credit card.

What year level is this for?

This curriculum is aligned to the Australian Curriculum (ACARA) and Victorian Curriculum, spanning roughly Years 3 to 10 — from first sequencing and variables through to object-oriented programming and advanced data structures. Start wherever matches your class's current level; each module builds on the last.

Can I print them?

Yes — every module has a one-click Print Worksheet button that generates a printable page with the practice questions and a full answer key.

Is this aligned to a curriculum?

Yes — the module sequence is mapped to the Australian Curriculum (ACARA) and Victorian Curriculum, and a class's progress is reported back against those curriculum bands (e.g. ACARA Years 5–6 sequencing and iteration, Years 7–8 functions and data structures), not just a generic difficulty scale.

Can students use this without a teacher?

Yes — students can start any module and practice directly, no class or account required. Joining a teacher's class with a class code adds progress tracking, class badges, and live Sprints, but isn't needed to work through the worksheets or modules solo.

Do I need to know ACARA Digital Technologies Years 9–10 myself to teach this?

No — every module comes with a full worked answer key, and Cloodit tracks who's stuck automatically, so you don't need to solve each exercise yourself before assigning it or be able to debug a student's work line by line.

Cloodit turns curriculum-aligned coding content into journeys students work through one biome at a time.

The 'Fennec Fox' badge — Listener, one of Cloodit's 106 collectible badges
Students earn collectable badges

Over 100 of them, across seven natural biomes.

Study Buddy
Students build a real study resource

Turns their work into revision material ready for Flash Cards and Exam study.

Diamond Dash — one of Cloodit's live, competitive Sprint games
Students lock in with Sprints

Live, competitive practice for the start of the lesson or a teacher-led lesson finisher.

A Cloodit certificate of achievement, ready to personalise and print
Custom printable certificates

Honour your top performers, or encourage a student who's trying hard — ready to print in seconds.

For Teachers

Set this curriculum for your class and see who needs help, automatically.

Create a free teacher account →

No credit card. No setup fee. Make a class and invite students in under three minutes.

For Students

Practice this topic interactively, track progress, and unlock badges.

Start Learning Free →

Have a class code?