HomeLearn step by stepMemoriseKey termsFlashcardsNotesMaster answersPast questionsMultiple choiceMock examPractice & marker
Software Engineering › Key terms › By syllabus category
Key terms by syllabus category
426 terms grouped by the syllabus area they belong to. A term used in more than one area appears under each (for example Maintenance in Year 11 and in the Software Engineering Project).
Year 11: Programming Fundamentals (69)
Software development steps
- Software development steps (the order) The fixed sequence of the development cycle: requirements definition, determining specifications, design, development,…
- Requirements definition Finding out what the client needs: gathering and documenting the problem, users, functional and non-functional requirements and…
- Determining specifications Turning requirements into a detailed description of what the software will do: inputs, processes, outputs, data, performance,…
- Design Planning the solution before coding using modelling tools: algorithms (pseudocode, flowcharts), structure charts, DFDs, class…
- Development Writing the code that implements the design in the chosen language, following the algorithms and good coding practice (comments,…
- Integration Combining separately built modules or subsystems into one working system and checking they communicate correctly through their…
- Testing and debugging Testing runs the software with chosen data to find errors; debugging finds the cause of each error and fixes it.
- Installation Putting the finished system into use in the client's environment (direct, phased, parallel or pilot method) including setup and…
- Maintenance Changes made after release to keep software working and useful: corrective (fix errors), adaptive (new environment) and…
- Online code collaboration tools Web platforms where developers store, share, review and co-edit code with version control and issue tracking, for example…
Designing algorithms
- Computational thinking Check A problem-solving approach: decompose a problem, spot patterns, abstract away detail and design an algorithm.
- Algorithm A finite, ordered set of clear steps that solves a problem or completes a task, with defined inputs and outputs.
- Sequence A control structure where statements run one after another in the order written.
- Selection A control structure that chooses which path to run depending on a condition: binary selection (IF ...
- Iteration (repetition) A control structure that repeats statements while or until a condition: pre-test loop (WHILE ...
- Divide and conquer Breaking a large problem into smaller sub-problems, solving each one and combining the results (for example binary search or…
- Backtracking Trying one choice and, if it reaches a dead end, undoing it and trying the next, as in maze solving or Sudoku.
- Top-down design Starting with the whole problem (the mainline) and refining it step by step into smaller subroutines.
- Bottom-up design Building and testing small low-level modules first, then combining them into larger parts of the system.
- Abstraction Hiding unnecessary detail so you focus on what matters, such as calling a subroutine without knowing how it works.
- Refinement Adding successively more detail: a subroutine is expanded into its own algorithm or structure chart, named the same as the…
- Pseudocode Structured, language-independent English-like code: keywords in capitals (IF, ELSE, WHILE, ENDWHILE, FOR, NEXT, SET, GET,…
- Flowchart A diagram of an algorithm drawn with standard symbols (terminator, process, input/output, decision) joined by arrows, read top…
- Subroutine (module, subprogram, procedure) A named block of statements that performs one specific task and can be called many times; the terms subroutine, module,…
- Function v procedure A function returns a value to the caller (RETURN); a procedure carries out a task and does not return a value.
- Parameter and argument A parameter is a variable in the subroutine's definition that receives data; an argument is the actual value passed when the…
- Mainline The main algorithm that controls the program by calling subroutines in order.
- Desk checking Manually stepping through an algorithm with sample data and recording variable values (a trace table) to check it works before…
- Peer checking Another person reviews the algorithm or code to find errors you may have missed.
- Inputs, outputs and purpose of an algorithm Check When analysing an algorithm, identify the data it takes in (inputs), the results it produces (outputs), what it is designed to…
- IPO chart (Input, Process, Output) Check A table listing the inputs, the processes applied and the outputs of a system or subroutine; used when determining specifications.
- Linear search Check A search that checks each item in order until the target is found or the list ends.
- Binary search Check A search on a SORTED list that checks the middle item and discards half the list each time (a divide and conquer method).
- Recursion Check A subroutine that calls itself on a smaller version of the problem until it reaches a base case that stops it.
- Imperative paradigm A programming style that gives the computer an ordered list of commands that change program state (for example Python procedural…
- Logic paradigm A programming style that states facts and rules and lets the system answer queries by logical inference (for example Prolog).
- Functional paradigm A programming style that builds programs from functions, avoids changing state, and treats functions as values that can be…
Data representation and structures
- Binary (base 2) A number system using only the digits 0 and 1.
- Decimal (base 10) The everyday number system using digits 0 to 9.
- Hexadecimal (base 16) A base-16 system using 0 to 9 and A to F (A = 10 ...
- Two's complement A way of storing signed (positive and negative) integers in binary: write the positive number, invert every bit, then add 1 to…
- Character representation (ASCII, Unicode) Characters are stored as numeric codes.
- Data types The kind of value a variable holds: character, string, Boolean, integer, real (single-precision floating point) and date/time.
- Integer A whole number, positive or negative, with no fractional part.
- Real (floating point) A number with a fractional part.
- Boolean A data type with only two values, True or False, used in conditions.
- Character and string A character is a single symbol; a string is a sequence of characters (text) such as a name.
- Date and time A data type for calendar dates and clock times, stored as a single value (32 bits in the course data dictionary examples).
- Array A data structure holding a fixed number of items of the same type, accessed by index; can be single or multi-dimensional (rows…
- Multi-dimensional array An array of arrays, used for grids or tables and accessed by row and column index, such as grid[row][col].
- Record A data structure that groups related fields of different types into one item, such as a student with name, age and mark.
- List An ordered, changeable collection of items (Python list) that can grow and shrink and can hold mixed types.
- Tree A hierarchical data structure of nodes: one root, each node having child nodes and leaves at the bottom (for example folder…
- Stack A last-in, first-out (LIFO) structure where items are added (push) and removed (pop) at the top.
- Hash table A structure that stores key and value pairs, using a hash function on the key to find the storage location, so lookups are very…
- Sequential file A file of data stored and read one item or line after another, such as a text or CSV file.
Developing and testing code
- Quality criteria for evaluating code The syllabus tests solutions against four qualities: functionality, performance, readability of code and quality of documentation.
- Syntax error A mistake that breaks the language rules (missing colon, bracket or misspelt keyword), so the program will not run.
- Logic error The program runs but gives the wrong result because the algorithm is wrong, for example using > instead of >=.
- Runtime error An error that appears while the program is running and stops it, such as dividing by zero or an index outside the array.
- Debugging tools Software features that help find and fix errors: breakpoints, single line stepping, watch windows, checking interfaces between…
- Breakpoint A marker on a line of code where execution pauses so you can inspect variable values.
- Single line stepping Running a program one line at a time in the debugger to watch how it flows and how values change.
- Watch window (variable watch) A debugger feature that shows the live value of chosen variables as the program runs.
- Debugging output statements Print statements added to show that a section was reached or the value of a variable.
- Boundary values Test data at and either side of a limit of the valid range.
- Path coverage Choosing test data so every path through the code (each branch and loop) runs at least once.
- Faulty and abnormal data Data that is the wrong type, empty, too large or small or has odd characters, used to check the program rejects it or handles it…
- Code optimisation Improving the speed or memory use of working code (better algorithm, fewer repeated calculations, built-in functions).
Year 11: The Object-Oriented Paradigm (34)
Key OOP features
- Object-oriented programming (OOP) A paradigm that organises a program as objects, created from classes, that hold data (attributes) and behaviour (methods) and…
- Class A blueprint or template that defines the attributes and methods shared by all objects of one kind.
- Object A single instance of a class with its own attribute values and the ability to run the class's methods.
- Attribute A variable that belongs to an object and stores its data or state (name, age, balance).
- Method A subroutine that belongs to a class and defines what its objects can do (deposit, display, calculate).
- Constructor (__init__) Check A special method that runs when an object is created and sets its starting attribute values (in Python it is __init__).
- Encapsulation Bundling an object's data and the methods that use it together in a class and restricting direct access to the data (private…
- Abstraction Hiding unnecessary detail so you focus on what matters, such as calling a subroutine without knowing how it works.
- Inheritance A subclass (child) automatically gets the attributes and methods of a superclass (parent) and can add or change its own, giving…
- Generalisation Moving the features shared by several classes up into a common superclass (Student and Teacher generalised as Person).
- Superclass and subclass A superclass is the parent class that supplies shared features; a subclass is a child class that inherits them and adds its own.
- Polymorphism Different classes provide their own version of the same method name, so one call behaves differently depending on the object.
- Method overriding Check A subclass supplies its own version of a method it inherited, replacing the parent's version; the way polymorphism is coded.
- Message passing Objects communicate by calling each other's methods (sending a message with parameters and receiving a return value).
- Procedural programming v OOP Procedural: a program is a sequence of subroutines working on shared data.
Design process and collaboration
- Task definition The first design step: clearly stating the problem to be solved, its purpose, inputs and outputs, before planning the code.
- Facade pattern A design pattern where a simple class provides one easy interface that hides a complex set of subsystem classes behind it.
- Agility The ability to respond quickly to changing requirements by working in short iterations with frequent feedback (the Agile…
- Consistency (collaboration) Using the same naming, layout and coding standards across the team so everyone can read and change the code.
- Code commenting Short explanations in the code that say what it does and why, so other developers and your future self can understand and…
- Version control A system (such as Git) that records every change to the code with who and when, supports branches and merging and allows…
- Feedback Colleagues or testers review code and comment so errors are found early and quality improves.
Writing and testing OOP code
- Clear and uncluttered mainline A mainline that only calls well-named subroutines or methods in order, so the overall flow is easy to follow.
- One logical task per subroutine Each subroutine does a single clear job, which makes it reusable, testable and easier to fix.
- Stub A simple placeholder subroutine, which usually returns a fixed value, standing in for code not yet written so the rest of the…
- Ease of maintenance How simply code can be corrected or updated later; helped by comments, meaningful names, modular subroutines and version control.
- Regular backup Making frequent copies of code and data (ideally off-site or in the cloud) so work can be restored after loss or corruption.
- Unit testing Testing one subroutine, method or class on its own to check it works as intended.
- Subsystem testing Check Testing a group of modules that work together as a subsystem, checking their interfaces and data passing.
- System testing Testing the complete, integrated system against the requirements.
- Black box testing Testing inputs against expected outputs with no knowledge of the internal code.
- White box testing Check Testing with full knowledge of the internal code, designing tests to run every path, branch and loop.
- Grey box testing Testing with partial knowledge of the internals, a mix of black box and white box.
- Quality assurance Planned processes that check the software meets quality criteria (functionality, performance, readability, documentation) during…
Year 11: Programming Mechatronics (30)
Hardware and parts
- Mechatronic system A system that combines mechanical engineering, electronics and software control, such as a robot arm, automatic door, drone, 3D…
- Microcontroller A small computer on a single chip with a CPU, memory and input/output pins that runs the program controlling a device.
- CPU (central processing unit) The part that fetches, decodes and executes program instructions.
- Instruction set The list of machine instructions a CPU can carry out.
- Opcode The part of a machine instruction that says which operation to perform; the rest of the instruction holds the operands.
- Address register Check A CPU register that holds the memory address of the data or instruction to be accessed.
- Data register A CPU register that holds the data being processed (the operands and results).
- Sensor An input device that detects something in the environment and sends the data to the controller, such as motion, light level,…
- Motion sensor A sensor that detects movement nearby, for example infrared or ultrasonic, used in alarms and automatic doors.
- Light level sensor A sensor that measures brightness, used in line-following robots and automatic lighting.
- Actuator An output device that turns the controller's signal into movement or action, such as a motor, servo or hydraulic cylinder.
- Hydraulic actuator An actuator that uses pressurised fluid to move a piston, giving large force, as in excavators and heavy robot arms.
- End effector (manipulator) The tool at the end of a robotic arm that interacts with the environment, such as a gripper, welder or suction cup.
- Robotic gripper An end effector with fingers or jaws that grasps and releases objects.
Control, data and design
- Diagnostic data Data about the health and operation of a mechatronic system (temperatures, error codes, motor current) used to find faults.
- Optimisation data Data collected so the system's performance can be improved or tuned (cycle times, energy use, error rates).
- Degrees of freedom The number of independent directions or axes in which a part can move (a robot arm with 3 joints has 3).
- Motion constraints Limits on movement such as range, speed, obstacles or joint angles that the control code must respect.
- Subsystem (combination of sensors, actuators and effectors) A group of sensors, actuators and end effectors that work together as one working part of the system (for example the gripper…
- Power, battery and material requirements Choosing power supplies and batteries that match each component's voltage and current, and materials suited to the load, weight…
- Wiring diagram A diagram of the electrical connections between components using standard symbols (resistor, capacitor, diode, LED, switch,…
- Specialist requirements for people with disability Needs that shape design for assistive devices or prosthetics, such as comfort, safety, intuitive control, adjustability and…
- Open-loop control Check A control system that sets its output without checking the result (a timer-based sprinkler).
- Closed-loop control A control system where sensors feed the result back and the algorithm adjusts the output to reach a target (thermostat, cruise…
- Feedback Colleagues or testers review code and comment so errors are found early and quality improves.
- Autonomous control A system that senses, decides and acts without human input, using sensor data and decision algorithms (self-driving car, robot…
- Control algorithm pattern (line follower) Check A closed-loop loop: WHILE the robot is running, read the sensor, IF the sensor sees dark THEN turn one way ELSE turn the other,…
- Simulation and prototype A simulation tests the control code on a software model; a prototype is an early physical build.
- Unit tests for control algorithms Tests that check each component's control algorithm works and gives the same result every time (effectiveness and repeatability).
- User interface for a mechatronic system A screen, panel or app that lets a person control and monitor the system (start, stop, set a target, see status).
Year 12: Secure Software Architecture (57)
Benefits and the development steps
- Secure software Software designed and built to protect data and resist attack, with security considered at every development step; benefits are…
- Data protection Keeping data safe from unauthorised access, change or loss using measures such as encryption, access control and backups.
- Cyber attack A deliberate attempt to steal, damage or disrupt data or systems (for example phishing, malware, SQL injection, denial of…
- Vulnerability A weakness in software, hardware or process that an attacker could exploit.
- Capabilities and experience of end users Users' skills and experience shape secure design: less experienced users need simple, guided and forgiving interfaces (clear…
Security concepts (CIA and more)
- Confidentiality Only authorised people can read the data; achieved with encryption and access controls.
- Integrity Data stays accurate and unchanged unless an authorised change is made; supported by hashes, validation and checksums.
- Availability Authorised users can access the data and system when needed; supported by backups, redundancy and protection against denial of…
- Authentication Proving that a user, device or system is who it claims to be (passwords, multi-factor, certificates).
- Authorisation Deciding what an authenticated user is allowed to access or do (roles and permissions).
- Accountability Being able to trace actions to a user or system through logs and audit trails, so people answer for what they did.
- Privacy The right of people to control how their personal information is collected, used and shared.
- Regulatory compliance Meeting the laws, regulations and industry standards that apply to software and data (for example Privacy Act or GDPR).
Security by design and privacy by design
- Security by design Building security into the software from the start of development rather than adding it at the end.
- Cryptography Converting readable data (plain text) into unreadable cipher text with an algorithm and key so only the holder of the right key…
- Sandboxing Running code in an isolated, restricted environment so that if it is malicious or faulty it cannot affect the rest of the system.
- Privacy by design An approach that builds privacy into software from the start: proactive not reactive, embed privacy into the design, and respect…
- Proactive not reactive A privacy by design principle: anticipate and prevent privacy problems before they happen instead of fixing them after a breach.
- Embed privacy into design A privacy by design principle: privacy is part of the core system design (default settings, data minimisation, encryption), not…
- Respect for user privacy A privacy by design principle: keep the user central with clear consent, easy control of their data and transparency.
Testing security and resilience
- Determining vulnerabilities Finding weaknesses before attackers do, using code review, SAST, DAST, vulnerability assessment and penetration testing.
- Hardening systems Reducing the attack surface by removing unused services and default accounts, applying patches and using strong configuration…
- Handling breaches Responding to a security incident: detect, contain, investigate, notify those affected, fix the cause and review.
- Business continuity Plans that keep critical operations running during and after a disruption (backup systems, alternative procedures).
- Disaster recovery Plans to restore IT systems and data after a major incident, guided by how quickly and how fully they must be recovered.
- Code review Other developers read the source code to find errors, security flaws and poor practice before release.
- Static application security testing (SAST) Analysing the source code without running it to find security flaws early in development; a white box method.
- Dynamic application security testing (DAST) Testing the running application from the outside by sending it unexpected input to find vulnerabilities, without needing the…
- Vulnerability assessment A systematic scan and review that identifies, ranks and reports known weaknesses in a system.
- Penetration testing Authorised, simulated attacks on a system by testers to see whether weaknesses can really be exploited.
Defensive coding
- Defensive data input handling Writing code that assumes input may be wrong or hostile and handles it safely using input validation, sanitisation and error…
- Input validation Checking that input meets rules (type, range, length, format, presence) before it is used.
- Sanitisation Cleaning input by removing or escaping dangerous characters so it cannot be run as code (for example HTML or SQL).
- Error handling Detecting and managing problems (try and except in Python) so the program fails safely, shows a generic message and does not…
- Application programming interface (API) A set of rules that lets one program request services or data from another, often over HTTP using JSON.
- Excessive data exposure An API weakness where more data than intended is returned (the whole database row instead of the needed fields).
- Memory management Allocating and freeing memory efficiently so programs do not leak memory, crash or become slow.
- Session management Creating, tracking and ending a user's session securely (session ID or token, timeouts, logout), which supports both security…
- Exception management Handling runtime exceptions (try and except) so a failure is caught, logged and recovered from instead of crashing the program.
Attacks on user actions, files and hardware
- Broken authentication and session management Weaknesses in login or session handling (weak passwords, guessable or reused session IDs, no timeout) that let attackers act as…
- Cross-site scripting (XSS) An attack that injects malicious script into a web page that other users then run in their browser.
- Cross-site request forgery (CSRF) An attack that tricks a logged-in user's browser into sending an unwanted request to a site that trusts them.
- Invalid forwarding and redirecting An attack that sends users to an untrusted site because the destination in a redirect or forward is taken from unvalidated input.
- Race condition A fault where the outcome depends on the timing of two or more processes using the same data, so results are unpredictable (for…
- File attacks Attacks that abuse file handling, such as malicious uploads, path traversal (../) or tampering with stored files.
- Side channel attack An attack that learns secrets from indirect information such as timing, power use or electromagnetic emissions rather than…
Impact, collaboration and legal issues
- Benefits of collaboration (secure development) Considering various points of view, delegating tasks by expertise and improving the quality of the solution.
- Benefits to an enterprise of secure development Improved products or services, influence on future software development, improved work practices, productivity and business…
- Social, ethical and legal issues The effects of software on people and organisations: employment, data security, privacy, copyright, intellectual property and…
- Employment (impact) How software changes jobs: roles removed or created and new skills needed.
- Copyright The legal right that protects the creator's original work, including code, from being copied or used without permission.
- Intellectual property Creations of the mind (code, designs, brands) that are legally owned and protected by the creator.
- Digital disruption Change caused when new technology transforms how an industry or society works, often overturning existing businesses.
- Programmed backup Automatic scheduled copies of data (ideally off-site or in the cloud) supporting integrity and availability and reducing human…
- Software development steps for secure code (order) Requirements definition, determining specifications, design, development, integration, testing and debugging, installation and…
- SQL injection Check An attack where malicious SQL is inserted through input so it runs on the database; stopped by parameterised queries and…
- General Data Protection Regulation (GDPR) Check The European Union law on collecting and protecting personal data; it applies to any organisation handling EU residents' data.
Year 12: Programming for the Web (60)
Web applications and data transfer
- Interactive website A website that responds to user actions and updates content, using client-side scripting and server-side processing (forms, live…
- E-commerce Buying and selling goods or services online, which needs secure payment, accounts, a product database and a shopping cart.
- Progressive web app (PWA) A web application that works like a native app: installable, works offline and loads quickly using a service worker and cache,…
- Data packet A small chunk of data with a header (source and destination IP address, order number) sent across a network; packets are…
- IP address and IPv4 Check A number that identifies a device on a network.
- Domain name system (DNS) The service that translates a domain name (example.com) into an IP address.
Web protocols and ports
- HTTP and HTTPS HyperText Transfer Protocol: the request and response protocol between browser and web server.
- TCP/IP The core internet protocol suite.
- FTP and SFTP Check File Transfer Protocol: moves files between client and server.
- SSL/TLS certificate A digital certificate issued by a trusted certificate authority that proves a website's identity and contains its public key,…
- IMAP, POP3 and SMTP Internet Message Access Protocol: lets you read and manage email on the server and keeps all your devices in sync.
- Port A number that identifies which service on a device receives incoming data (the IP address finds the device, the port finds the…
Securing the web
- SSL/TLS certificate A digital certificate issued by a trusted certificate authority that proves a website's identity and contains its public key,…
- Encryption algorithm The mathematical method used to scramble plain text into cipher text (for example AES or RSA).
- Encryption key The secret value used with the algorithm to encrypt and decrypt; longer keys are harder to break.
- Plain text and cipher text Plain text is readable data; cipher text is the unreadable, encrypted result.
- Symmetric encryption One shared secret key encrypts and decrypts; fast, but the key must be shared safely.
- Asymmetric encryption A public key encrypts and a different private key decrypts; solves key sharing but is slower.
- Hash value A fixed-length output of a one-way function; the same input always gives the same hash and it cannot be reversed.
- Digital signature A hash of a message encrypted with the sender's private key; the receiver checks it with the public key to confirm who sent it…
- Authentication and authorisation (web) Authentication proves who you are; authorisation decides what you can access.
Big data and web architecture
- Big data Very large, fast-changing and varied sets of data that need special storage and processing, such as streaming or social media…
- Data mining Analysing large data sets to find patterns, trends and relationships (for example recommending shows).
- Metadata Data about data, such as file size, format, bitrate, date, device or location; it describes and organises other data.
- Streaming service management Managing the delivery of live or on-demand media: buffering, adapting quality to bandwidth, servers and caching near users, and…
Designing web applications
- W3C and WAI The international organisation that develops open web standards (HTML, CSS, accessibility, internationalisation, security,…
- Client-side (front-end) programming Check Code that runs in the user's browser (HTML, CSS, JavaScript) and controls what the user sees and how they interact.
- Server-side (back-end) programming Code that runs on the server (Python, PHP, Node) to process requests, access databases, apply business rules and keep data secure.
- SQL and non-SQL databases SQL databases store data in related tables queried with Structured Query Language; non-SQL (NoSQL) databases store data as…
- Web browser and developer (dev) tools A browser renders HTML, CSS and JavaScript.
- Cascading style sheets (CSS) Style rules that control the appearance of web pages, kept separate from HTML.
- CSS selectors (id v class) A class selector (.name) styles many elements; an id selector (#name) styles one unique element.
- CSS maintenance tools Tools that help organise and update CSS, such as preprocessors, linters and frameworks, so styles stay consistent and easy to…
- Code libraries and frameworks (front end) Reusable code: frameworks control complex web applications (React, Angular, Vue), template engines generate HTML from data, and…
- Open-source software Software whose source code is freely available to use, modify and share under a licence, supporting reuse and community…
- Version control A system (such as Git) that records every change to the code with who and when, supports branches and merging and allows…
- Load times How long a page takes to appear.
- Minification Removing unnecessary characters (spaces, comments) from HTML, CSS and JavaScript to shrink the files.
- Lazy loading Loading images or media only when they are about to be seen, so the first page loads faster.
- Caching Storing copies of data or files locally or on a server so they do not have to be fetched again.
- Content delivery network (CDN) A network of servers around the world that stores copies of files so users download from a nearby server.
- Web content management system (CMS) Software that lets people create and manage website content without coding (WordPress, Drupal).
- Contribution of back-end development The back end drives a web app's success through data storage, business logic, security, performance and reliability.
- Back-end process for a web request Browser sends a request; web server software receives it; the web framework routes it to code; libraries and objects process it;…
- Web server software Software that listens for HTTP or HTTPS requests, serves files or passes requests to the application and returns responses with…
- Web framework A toolkit that supplies structure for routing URLs to functions, handling requests, templates and database access (Flask, Django).
- Collaboration of front-end and back-end developers Sharing agreed interfaces (APIs), version control and regular communication so the two parts fit together and the solution is…
Shell scripts, SQL and ORM
- Shell commands (mkdir, cd, touch, cp, rm, cat, grep) Command line tools used in scripts: mkdir makes a directory, cd changes directory, touch creates a file, cp copies, rm removes,…
- SQL SELECT Chooses the fields (columns) to return from a table: SELECT name, mark FROM students; SELECT * returns all columns.
- SQL WHERE Filters rows using conditions (=, <>, >, <, AND, OR).
- SQL ORDER BY Sorts results by a field, ascending (ASC, the default) or descending (DESC).
- SQL GROUP BY Groups rows that share a value so aggregate functions (COUNT, SUM, AVG, MIN, MAX) can be applied to each group.
- SQL aggregate functions (COUNT, SUM, AVG) Functions that calculate one value from many rows: COUNT (number), SUM (total), AVG (mean), MIN and MAX.
- SQL JOIN Combines rows from two or more tables by matching a primary key to a foreign key (INNER JOIN ...
- SQL alias (AS) Check Gives a table or column a temporary name to make queries shorter and clearer: SELECT s.name AS student FROM Student AS s.
- SQL constraints Rules on the data: PRIMARY KEY (unique identifier), FOREIGN KEY (links tables), NOT NULL and UNIQUE; in queries, constraints on…
- Primary key and foreign key A primary key uniquely identifies each record in a table; a foreign key is a field that holds another table's primary key to…
- Object-relational mapping (ORM) A technique that lets you read and write database tables as objects in your programming language instead of writing SQL.
- Service worker A background script in a PWA that caches files and intercepts network requests so the app works offline.
- Web app manifest A JSON file giving a PWA its name, icons and display mode so it can be installed on a device.
- CRUD Check Create, Read, Update, Delete: the four basic database operations (INSERT, SELECT, UPDATE, DELETE).
Year 12: Software Automation (35)
Machine learning and automation
- Machine learning (ML) A branch of AI where a program learns patterns from data to make predictions or decisions without being explicitly programmed…
- Artificial intelligence (AI) The broad field of making computers perform tasks that normally need human intelligence (reasoning, understanding language,…
- Distinguishing AI and ML AI is the goal of intelligent behaviour; ML is the method of learning from data.
- DevOps A way of working that joins development (Dev) and operations (Ops) with automation, continuous integration and delivery,…
- Robotic process automation (RPA) Software 'bots' that copy the actions a person does on a computer (clicking, typing, copying data) to automate repetitive,…
- Business process automation (BPA) Using software to automate a whole business process or workflow (for example approvals, payroll or order processing) to cut cost…
Training models
- Supervised learning Training on labelled data (inputs paired with correct outputs) so the model can predict the label for new data.
- Unsupervised learning Training on unlabelled data so the model finds patterns or groups (clusters) by itself.
- Semi-supervised learning Training with a small amount of labelled data and a large amount of unlabelled data.
- Reinforcement learning The model learns by trial and error, receiving rewards or penalties for its actions in an environment, to maximise reward.
- Training data and test data Check Training data is used to teach the model; separate test data checks how well it works on data it has not seen.
Applications of ML
- Data analysis and forecasting ML finds trends in past data to predict future values (sales, weather, demand).
- Virtual personal assistant Software (Siri, Alexa) that uses ML to understand speech or text and do tasks such as set reminders, improving as it learns.
- Image recognition ML identifying objects, faces or text in images, usually with neural networks trained on many labelled images.
Designing and analysing ML models
- Decision tree A flowchart-like model where each internal node tests a condition, branches are outcomes and leaves are decisions or predictions.
- Neural network A model made of connected layers of nodes (neurons): an input layer, one or more hidden layers and an output layer; connection…
- Linear regression Fits a straight line through data to predict a numeric value from one or more inputs.
- Polynomial regression Fits a curve (a polynomial) to data where the relationship is not a straight line, to predict a numeric value.
- Logistic regression Predicts the probability of a category (yes or no) and so is used for classification, not for predicting a number.
- K-nearest neighbour (KNN) Classifies a new item by looking at the K closest items in the training data and choosing the most common class among them.
- OOP for ML programming ML models are written as classes: attributes hold data and weights, methods train, predict and evaluate.
- Neural network code (predict) Create the model object, train (fit) on training data, then call predict on new data to make predictions.
Significance and impact
- Impact of automation Effects on safety of workers, people with disability, the nature and skills required for employment, production efficiency,…
- Safety of workers Robots take over dangerous tasks (positive) but can cause injury or stress if poorly designed (negative).
- People with disability Automation can improve access (voice control, assistive devices) but can also exclude people if not designed accessibly.
- Nature and skills of employment Jobs change: routine roles shrink; demand grows for design, maintenance and data skills; retraining is needed.
- Production efficiency, waste and the environment Automation can increase output and reduce waste and errors but uses energy and creates electronic waste.
- Economy and distribution of wealth Automation can lift productivity and profit but may concentrate wealth with owners and cut incomes of displaced workers.
- Patterns in human behaviour How people's behaviour affects ML and AI design: psychological responses, patterns related to acute stress response (fight,…
- Bias (human and dataset) Developers' own assumptions or prejudices influence design, data selection or labelling and so the outcomes.
MLOps
- MLOps The automated process of designing, training and deploying ML models, borrowing the principles of DevOps.
- MLOps design stage Define the business problem, refactor it into a machine learning problem, define success metrics and research the available data.
- MLOps model development stage Data wrangling, feature engineering, model training, and model testing and validation.
- MLOps operations stage Model deployment, supporting operations and use, and monitoring model performance.
- Neural network training and execution cycle In the training cycle, weightings and threshold values for each node are set by exposing the network to inputs with known…
Year 12: The Software Engineering Project (52)
Identifying and defining
- Requirements What the solution must do (functionality) and how well (performance), found by analysing the problem.
- Need or opportunity The reason for the project: a problem to fix or a chance to improve something.
- Feasibility Whether the project can realistically be done: scheduling (time) and financial (cost) feasibility.
- Functionality and performance requirements Functionality is what the software does; performance is how fast, how reliable, how much load.
- Boundaries What is included in the solution and what is not (its scope).
- Data structures and data types (defining) Deciding which structures (array, record, list) and types (integer, string, Boolean) the solution will use.
- Brainstorming, mind-mapping and storyboards Idea tools: brainstorming lists ideas freely, a mind map shows how ideas connect, a storyboard shows the screens or steps in…
- Data dictionary A table listing each data item with its name, data type, size or format, description and validation rules.
- Code generation Writing the code from the design, using appropriate language structures.
- Installation Putting the finished system into use in the client's environment (direct, phased, parallel or pilot method) including setup and…
- Maintenance Changes made after release to keep software working and useful: corrective (fix errors), adaptive (new environment) and…
Implementation methods
- Direct implementation The old system stops and the new one starts straight away; cheap and fast but risky.
- Phased implementation The new system is introduced in stages (one module or area at a time).
- Parallel implementation The old and new systems run side by side until the new one is trusted; safe but costly.
- Pilot implementation The new system is trialled by a small group or one location first, then rolled out to everyone.
Development approaches
- Waterfall approach A linear approach where each stage (requirements, design, development, testing, installation, maintenance) is finished before…
- Agile approach An iterative approach that builds the software in short cycles (sprints), delivering working versions often and adapting to…
- WAgile A hybrid of Waterfall and Agile: for example, Waterfall planning and Agile development.
- Iteration workflow The repeated cycle of plan, build, test and review in Agile; each iteration improves the product.
Planning and managing
- Project management Planning, scheduling, tracking and controlling the work, time, people and resources to deliver the project.
- Gantt chart A bar chart showing tasks against time, with start and end dates, duration and dependencies; used to schedule and track a project.
- Collaboration tools Tools that help teams work together, such as messaging, shared documents, task boards and version control.
- Social and ethical issues in project work Issues from working individually, collaboratively and responding to stakeholders: fair workload, respecting people's views,…
- Communication issues Involving and empowering the client, enabling feedback and negotiating.
- Quality assurance Planned processes that check the software meets quality criteria (functionality, performance, readability, documentation) during…
- Modelling tools Diagrams that show structure, data or behaviour of a solution: DFDs, structure charts, class diagrams, ERDs, decision trees,…
- Back-end engineering contribution Back-end engineering helps success and ease of development through the technology used, error handling, interfacing with the…
Producing and implementing
- Resource allocation Assigning people, time, hardware, software and money to the tasks that need them.
- Presenting a solution Using presentation software to show the solution, its features, testing and evaluation to stakeholders.
- Version control A system (such as Git) that records every change to the code with who and when, supports branches and merging and allows…
- Strategies for difficulties Looking for a solution online, collaborating with peers and outsourcing.
- Prototype An early working model of the solution used to test ideas and gather feedback before final development.
- User interface (UI) design Planning the screens and controls users interact with, so they are clear, consistent and accessible.
Testing and evaluating
- Testing methodologies Ways of checking code: unit, integration and system testing, using black box and white box approaches.
- Language-dependent code optimisation Improving code efficiency using features of the chosen language (list comprehensions, built-in functions, efficient data…
- Feedback Colleagues or testers review code and comment so errors are found early and quality improves.
- Test plan A document listing test cases, test data, expected output and results.
- Path and boundary testing Testing every route through the code (path) and values at the edges of valid ranges (boundary: just inside, on and just outside).
- Actual v expected output Comparing the output the program produced with the output expected; a difference shows an error.
- Feedback report A report that synthesises (combines) feedback from users and testing so improvements can be decided.
- Evaluating effectiveness Judging how well the solution meets its requirements using test results, feedback and criteria.
Testing methods and maintenance
- Functional testing Checking that each function of the software does what the requirements say.
- Acceptance testing The client or end users check that the finished system meets their needs before accepting it.
- Live data Real data from the actual working environment used to test the system.
- Simulated data Made-up data that imitates real data, used to test safely without risking real information.
- Beta testing Real users trial a near-final version of the software and report problems before the full release.
- Volume testing Testing the system with large amounts of data to see whether it still performs.
- Corrective maintenance Fixing bugs and errors found after release.
- Adaptive maintenance Changing software so it works in a new or changed environment (a new operating system or law).
- Perfective maintenance Improving performance or adding features after release.
- Functional requirement What the system must do (its functions), as opposed to how well it performs.
- Driver (test driver) Test code that calls the module under test, used with stubs (which stand in for modules the code calls) so a part can be tested…
Diagrams and modelling tools (Years 11 and 12) (24)
Data flow diagrams
- Data flow diagram (DFD) A diagram that shows how data moves through a system between processes, data stores and external entities.
- DFD process (circle) Check A circle is a process: it uses input(s) to generate output(s).
- DFD data store A data store is an electronic file or non-computer storage (a filing cabinet), shown as an open rectangle or two parallel lines.
- DFD external entity A person, organisation or element that provides data to the system or receives data from it (shown as a rectangle).
- DFD data flow (labelled arrow) A labelled, curved arrow shows the flow of data between processes, data stores and external entities.
- Level 0 DFD (context diagram) An overview of the whole system as one process; it does not show data stores or internal processes, only external entities and…
- Level 1 DFD Check Breaks the single process of the Level 0 diagram into its main processes and shows data stores and flows between them.
Structure charts
- Structure chart Shows the separate subroutines that make up a system and their relationship to each other, top-down from the main routine.
- Structure chart data couple (empty circle) An empty circle indicates data movement between subroutines (usually passed as parameters).
- Structure chart flag (filled circle) A filled circle indicates a flag or control variable passed between subroutines.
- Structure chart decision (diamond) A small diamond where lines meet shows optional execution of a subroutine called as the result of a selection.
- Structure chart repetition (curved arrow) A curved arrow shows a subroutine or set of subroutines executed multiple times.
- Refinement Adding successively more detail: a subroutine is expanded into its own algorithm or structure chart, named the same as the…
Other diagrams and tables
- Class diagram A visual representation of an object-oriented system: classes (name, attributes, methods) and the relationships between them.
- Class diagram inheritance and multiplicity Inheritance is shown by an arrow from the subclass to the superclass.
- Entity relationship diagram (ERD) Check Shows the tables (entities) in a database, their attributes and the relationships between them (one-to-one, one-to-many,…
- Storyboard Shows the screens of an interface and the links (navigation) between them.
- Decision tree A flowchart-like model where each internal node tests a condition, branches are outcomes and leaves are decisions or predictions.
- Data dictionary A table listing each data item with its name, data type, size or format, description and validation rules.
- Gantt chart A bar chart showing tasks against time, with start and end dates, duration and dependencies; used to schedule and track a project.
- Process diary (log book) Check Documents progress with regular entries: date, person, progress since last entry, tasks achieved, issues and how managed,…
- Wiring diagram A diagram of the electrical connections between components using standard symbols (resistor, capacitor, diode, LED, switch,…
- Flowchart A diagram of an algorithm drawn with standard symbols (terminator, process, input/output, decision) joined by arrows, read top…
- Mainline and subroutines (algorithms) Start complex algorithms with a clear, uncluttered mainline that calls subroutines; the details of each subroutine are in…
Code patterns: pseudocode, Python, SQL, CSS (Years 11 and 12) (34)
HSC pseudocode
- Pseudocode keywords Keywords are in capitals; structural elements come in pairs (BEGIN/END, IF/ENDIF, WHILE/ENDWHILE); indent to show control…
- Sequence A control structure where statements run one after another in the order written.
- Binary selection (IF THEN ELSE) IF condition THEN process ELSE other process ENDIF: one of two paths is taken.
- Multi-way selection (CASEWHERE) CASEWHERE expression evaluates to choice a: ...
- Nested IF An IF inside the ELSE of another IF to test several conditions where only one process runs.
- WHILE loop (pre-test) WHILE condition is true ...
- REPEAT UNTIL loop (post-test) REPEAT ...
- FOR / NEXT loop (counted) Check FOR variable = start TO finish STEP increment ...
- Subroutine and function (pseudocode) BEGIN name (parameters) ...
- Array sum pattern Check Set total to 0, loop through every item adding it to the total, then display the total (initialise, loop, accumulate, output).
- Linear search pattern Check each item in order until found or the end is reached; set a Found flag, loop through and stop on a match.
Python
- Python input and output input() reads text from the user as a string; print() displays output; convert with int() or float().
- Python selection (if elif else) if condition: ...
- Python for loop and range for i in range(start, stop): repeats; stop is exclusive; also loops over lists and strings.
- Python while loop while condition: ...
- Python strings and slicing Strings are sequences: len(s), s[0], s[-1], s[1:4], s.upper(), s.lower(), s.split(), s.strip(), and ord()/chr() for character…
- Python lists A list stores ordered items: append(), remove(), len(), sorting with sort(), looping, and 2D lists as a list of lists.
- Python 2D list (grid) A list of lists addressed as grid[row][column]; loop with nested for loops.
- Python random numbers Check import random then random.randint(a, b) gives a whole number a to b inclusive; use a set or a check to avoid repeats.
- Python functions def name(parameters): ...
- Global and local variables A local variable exists only inside its function; a global variable is declared outside and can be used throughout (use the…
- Python file handling open(filename, mode) with modes r (read), w (write, overwrites), a (append); use with to close the file automatically; read(),…
- Python modules and libraries import a module to use its functions: import random, import math, from sklearn.linear_model import LinearRegression.
- Python classes and objects class Name: with __init__(self, ...) to set attributes; methods have self; create objects with Name(...); inheritance with class…
- Python validation function pattern Loop until the input is valid, using try/except for the conversion and if for range checks.
- Python try / except try: risky code except ValueError: handle the error; keeps the program running with a helpful message.
- Python sqlite3 parameterised query Check Use ?
- Python file and ML code reading (scikit-learn) Know how to read: import, create the model, fit (train), predict.
SQL and CSS syntax
- SQL statement structure SELECT fields FROM table WHERE criteria GROUP BY field ORDER BY field ASC or DESC; keyword AS renames a field for display.
- SQL relational and logical operators Relational operators: CONTAINS, DOES NOT CONTAIN, EQUALS, NOT EQUAL TO, GREATER THAN (OR EQUAL TO), LESS THAN (OR EQUAL TO).
- SQL calculated aggregate with GROUP BY SELECT Developer, SUM(Cost) AS Totalcost FROM Games GROUP BY Developer ORDER BY Developer DESC.
- CSS rule syntax selector { property: value; } with comments in /* */.
- XSS JavaScript fragment reading Be able to read a short JavaScript fragment and spot where untrusted input is inserted into a page without sanitising.
- Shell script pattern A script is a text file of commands run in order, e.g.
Command words and question-type skills (46)
NESA command words
- Identify Recognise and name.
- Outline Sketch in general terms; indicate the main features of.
- Describe Provide characteristics and features.
- Distinguish Note differences between things.
- Compare Show how things are similar or different.
- Contrast Show how things are different or opposite.
- Explain Relate cause and effect; make the relationship between things evident; provide why and/or how.
- Discuss Identify issues and provide points for and/or against.
- Analyse Identify components and the relationship between them; draw out and relate implications.
- Assess Make a judgement of value, quality, outcomes, results or size.
- Evaluate Make a judgement based on criteria; determine the value of.
- Justify Support an argument or conclusion.
- Define State the meaning and identify the essential qualities.
- Construct Make; build; put together items or arguments.
- Account for State reasons for, report on; give an account of; narrate a series of events or transactions.
- Apply Use, utilise or employ in a particular situation.
- Calculate Ascertain or determine from given facts, figures or information.
- Clarify Make clear or plain.
- Classify Arrange or include in classes or categories.
- Critically analyse or evaluate Add a degree or level of accuracy, depth, knowledge and understanding, logic, questioning, reflection and quality to analysis or…
- Deduce Draw conclusions.
- Demonstrate Show by example.
- Examine Inquire into.
- Extract Choose relevant and/or appropriate details.
- Extrapolate Infer from what is known.
- Interpret Draw meaning from.
- Investigate Plan, inquire into and draw conclusions about.
- Predict Suggest what may happen based on available information.
- Propose Put forward (for example a point of view, idea, argument, suggestion) for consideration or action.
- Recall Present remembered ideas, facts or experiences.
- Recommend Provide reasons in favour.
- Recount Retell a series of events.
- Summarise Express concisely the relevant details.
- Synthesise Putting together various elements to make a whole.
Question-type skills
- Multiple choice (MC) Read all four options, rule out wrong ones, pick one; no penalty for guessing so never leave blank.
- Multi-select Pick ALL correct options; the guideline marks it right only if you tick every correct one (and no wrong one).
- Drag-and-drop ordering Put the steps in the correct order; know the SDLC order and the web request order.
- Fill in the blanks and dropdowns Choose the right word from a list; use exact syllabus terms.
- Matching and tables Tick or match each statement to the right column (for example ORM v SQL, SAST v DAST).
- Drawing questions (online tool) Use the online drawing tool: label every symbol and arrow, use the correct symbols from the specification, and add every…
- Pseudocode questions Write HSC-style pseudocode: capital keywords, paired END words, indentation; initialise variables; output the required result.
- Python questions Write code that runs: indentation, quotes, define functions before calling them, print the required output, meet every listed…
- SQL questions Use SELECT, FROM, WHERE, GROUP BY, ORDER BY in order; put text in quotes; combine conditions with AND or OR; name the right…
- Short-answer questions One clear point per mark, use the stimulus and course terms, and answer the command word.
- Extended response (5 to 6 marks) Plan with the command word, give a judgement or explanation supported by named details from the stimulus, use course terms and…
- Reading time The 2.5-hour exam includes 10 minutes of reading time.