Unit 3 Outcome 1 - Key Knowledge
Full study-design reference
Use the Software Tools and Outcome-Specific Requirements page for the full VCAA reference, including language options, programming requirements across interface / logic / data source, AI trends, analytical tools and legislation links.
3.1.1 emerging trends in programming using artificial intelligence, including:
- Using prompts to generate code
- benefits include productivity, lower development cost, documentation support and innovation support
- risks include bugs, vulnerabilities, copyright concerns, limited context and dependence on human oversight
- Automated debugging and testing of modules
- benefits include real-time issue detection, suggested fixes, rapid feedback and improved code quality
- examples named in the study-design document include Pytest, TestProject, Live Unit Testing, IntelliTest, Codeception and Selenium
- Code optimisation
- includes resource optimisation, algorithm optimisation, code simplification, security optimisation and automated comment generation
- Responsible and ethical use of artificial intelligence tools
- includes transparency, code review, bias awareness, avoiding over-reliance, considering environmental impact and respecting licensing and copyright
3.1.2 characteristics of functional and non-functional requirements, constraints and scope
- Characteristics of functional and non-functional requirements, constraints, and scope
3.1.3 design tools for representing modules, including:
- Data dictionaries
- minimum fields: name and data type
- Mock-ups
- annotations can explain appearance, structure, user experience and design choices
- Object descriptions
- should identify the object, its attributes / properties and its methods / behaviours
- Input-process-output (IPO) charts
- separate IPO charts should be used when multiple tasks are represented
- Pseudocode
- conventions include
BEGIN/END, structured indentation, reserved words, selection blocks and repetition blocks
3.1.4 characteristics of data types, including:
- Text (character, string)
- Numeric (integer, floating point, date/time)
- Boolean
3.1.5 characteristics of data structures, including:
- One-dimensional arrays
- Two-dimensional arrays
- Records (varying data types, field index)
3.1.6 characteristics of data sources (plain text (TXT), delimited (CSV) and XML files), including:
- Plain text (TXT), delimited (CSV) and XML files
- Structure
- Reasons for use
3.1.7 principles of OOP, including:
- Abstraction
- focuses attention on the essential parts of a class or object
- Encapsulation
- bundles data and methods together and protects data with controlled access
- Generalisation
- extracts shared features into a more general superclass
- Inheritance
- allows subclasses to reuse and extend the features of a superclass
3.1.8 features of a programming language, including:
- Support for the three conceptual layers: interface, logic and data source
- Local and global variables, and constants
- Data types
- Instructions and control structures (sequence, selection, iteration/repetition)
- Arithmetic, logical and conditional operators
- Graphical user interfaces (GUIs)
- through IDE drag-and-drop tools, code in the same language, or code in a supporting language
- Functions and methods
- Classes and objects
- External data access for files and databases, including TXT, CSV and XML file formats
3.1.9 purposes and features of naming conventions for solution elements (variables, interface controls, code structures), including:
- Purposes and features of naming conventions for solution elements (variables, interface controls, code structures)
- Hungarian notation
- Camel casing
- Snake casing
3.1.10 validation techniques for data, including:
- Existence checking
- Type checking
- Range checking
3.1.11 purposes of internal documentation, including:
- Explaining and justifying data and code structures
- Code maintenance
- Placeholder comments for future development (stubs)
3.1.12 algorithms for sorting and searching, including:
- Selection sort
- Quick sort
- Binary search
- Linear search
3.1.13 types of errors, including:
- Syntax
- Logic
- Runtime (overflow, index out of range, type mismatch, divide by zero)
3.1.14 debugging and testing techniques for checking modules function correctly, including:
- Use of breakpoints
- Use of debugging statements
- Construction of relevant test data
- Test cases comparing expected and actual output in testing tables