TK Study

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)

Flashcards for this category

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)

Flashcards for this category

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)

Flashcards for this category

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)

Flashcards for this category

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)

Flashcards for this category

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)

Flashcards for this category

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)

Flashcards for this category

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)

Flashcards for this category

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

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)

Flashcards for this category

HSC pseudocode

Python

SQL and CSS syntax

Command words and question-type skills (46)

Flashcards for this category

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.