1/44
Looks like no tags are added yet.
Name | Mastery | Learn | Test | Matching | Spaced | Call with Kai | Chat |
|---|
No analytics yet
Send a link to your students to track their progress
What does a functional requirement describe?
What the solution must do
Functional requirements state required inputs, processing, validation, behaviours and outputs — what the solution must DO.
What does a non-functional requirement describe?
A quality attribute (e.g. usability, reliability)
Non-functional requirements describe quality attributes — usability, reliability, portability, robustness, maintainability — not a specific function.
What is a constraint?
An external factor that limits or restricts the solution
Constraints limit/restrict the solution: economic (time, cost), technical (hardware, storage, speed, security), social/legal/usability (expertise, privacy, IP, accessibility).
What does 'scope' define?
The solution boundary — what it will and will not do
Scope explicitly states what the solution will do and will not do, preventing scope creep and later disagreement.

What information does a data dictionary typically record for each element?
Name, data type/structure, format, purpose, source, size, validation
A data dictionary defines elements like variables, arrays, records — NOT screen layout (that's a mock-up) or algorithm sequence (that's an IPO chart/pseudocode).

An IPO chart separates a process into which three parts?
Input, Process, Output
Input = data entering the system; Process = the transformation/algorithm; Output = the resulting information.
Which data type suits a Victorian postcode, and why?
Text, because it's an identifier not used in calculations and preserves leading zeroes
A postcode is an identifier, not a quantity for arithmetic. Text storage preserves leading zeroes and fixed-length formatting.
What can integer overflow cause?
Invalid/wrapped results, crashes, or security exploits
Integer overflow happens when a value exceeds the type's representable range — this can wrap the result, crash the program, or be exploited.
How is a one-dimensional array different from a two-dimensional array?
1D uses one index (linear list); 2D uses two indices (row/column grid)
1D array = linear collection, one index. 2D array = rows and columns, two indices [row][column] — suited to grids, seats, boards.
Why is a record suitable for storing one student's ID, name, average score and active status?
It describes one entity with varying data types, accessed via named fields
A record groups related fields describing ONE entity, and fields may have different data types (text, integer, Boolean), accessed as record.field.
What is a XML file and CSV file?
A CSV file is a plain text file that stores simple table data using rows and columns separated by commas, while an XML file is a text file that organizes complex, nested data in a tree-like hierarchy using descriptive tags.
What is CSV best suited for, and what is a key limitation?
Best for simple flat, tabular row/column data; poor for complex hierarchical data
CSV (comma-delimited) suits simple tabular data and spreadsheet exchange, but is inefficient for large/complex hierarchical data.
Why would XML be recommended over CSV for exchanging bookings with nested passengers, flights and meal preferences?
XML's hierarchical parent-child structure represents nested/repeated data; self-descriptive tags aid cross-system interpretation
XML handles nested/hierarchical structures naturally, unlike flat CSV which would need duplication or multiple linked files.
What does an XML document require exactly one of?
Root element
XML has exactly one root element, which may contain many parent and child elements beneath it.
What is camelCase, e.g. totalOrderCost?
Words joined with no spaces, each word after the first capitalised
camelCase joins words without spaces, capitalising each word after the first (contrast with snake_case: total_order_cost).
What does Hungarian notation add compared to camelCase, e.g. arrEmployees?
A prefix indicating the element's data type, structure or purpose
Hungarian notation prefixes a name to show type/structure (e.g. i for integer, arr for array, str for string).
What is internal documentation, and how does it affect program execution?
Notes/comments in source code; ignored by the compiler, doesn't change execution
Internal documentation (comments) is ignored by the compiler/interpreter — it explains code but doesn't affect execution or speed.
Why is the comment '# increase count by one' above 'count ← count + 1' considered poor documentation?
It merely restates the obvious code and adds no purpose/reasoning
Good comments explain WHY, not restate obvious operations. Trivial comments create clutter without adding understanding.
Why doesn't internal documentation replace version control?
Version control tracks changes over time, supports collaboration, and allows restoring earlier versions — comments can't reliably do this
Comments may note some revisions, but version control systematically tracks every change, enables collaboration, and allows restoring past versions.
What are the three main components of an object description?
Properties/attributes, methods/behaviours, events
Properties = stored characteristics/state; methods = operations/behaviours; events = occurrences the object responds to (e.g. a click).
Why convert CSV data to integer/float before doing calculations?
CSV data is always stored/read as text/character values
Values in a CSV are text as read from the file, so numeric fields must be parsed/converted before arithmetic.
Chapter 2
…
What does AI-assisted programming primarily support?
Prompt-driven code generation, debugging, testing and optimisation
AI tools can generate code from prompts, help debug, generate/run tests and suggest optimisations — but the output still needs human review against requirements.
A class is best described as...
A programmer-defined template of attributes and methods
A class is the template; an object is an instantiated instance of that class that exists in memory.
Abstraction in OOP means...
Exposing essential features while hiding implementation detail
Abstraction manages complexity by exposing a simple interface (e.g. play(), pause()) while hiding the complex implementation.
Encapsulation protects an object mainly by...
Bundling data with methods and controlling access (e.g. private data, public methods)
Private data can only be changed via controlled public methods, protecting data integrity.
Generalisation is...
The process of identifying shared features and creating a superclass
Generalisation extracts common features into a superclass; inheritance is then the mechanism a subclass uses to receive and specialise them.
A local variable...
Exists only within its declaring function/block, normally only while it executes
Limited scope isolates the variable and its temporary lifetime frees memory after execution.
A constant...
Is assigned once and cannot be altered during execution
Constants prevent accidental change and centralise fixed values, improving readability and maintainability.
The three fundamental control structures are...
Sequence, selection, iteration
Sequence, selection and iteration are the three fundamental control structures.
A WHILE loop compared to a REPEAT/UNTIL loop...
Tests before the body, so may run zero times
WHILE is pre-test (may execute zero times); REPEAT/UNTIL is post-test (executes at least once).
Parameter vs argument:
Parameter = named placeholder in the function definition; argument = actual value passed at the call
A parameter is declared in the function; an argument is the actual value supplied when calling it.
Selection sort works by...
Repeatedly finding the smallest remaining value and swapping it into position
It scans the unsorted portion for the smallest element and swaps it into the next sorted position, repeating until sorted.
Quick sort's average-case time complexity is...
O(n log n)
Average case is O(n log₂n); worst case (highly unbalanced partitions) degrades to O(n²).
Binary search requires...
A sorted list
Binary search relies on ordering to safely discard half the remaining search space each step.
Linear search vs binary search efficiency:
Linear search is O(n); binary search is O(log₂n)
Binary search's O(log n) growth outperforms linear search's O(n) for large, frequently-searched sorted lists.
A range check validates that...
A value falls within acceptable limits or values
A range check confirms the value lies within acceptable limits (e.g. 12–17 inclusive).
A required field left blank needs which validation technique?
Existence check
An existence check confirms that a required value has been entered.
Boundary testing should include values...
Immediately below, at, and immediately above each boundary
Systematic boundary testing checks below/at/above each limit using the smallest meaningful increment.
A syntax error...
Violates the language's grammar and normally prevents the code running
A syntax error is a mistake in the grammar, structure, or punctuation of code that prevents a computer program from running at all
A logic error is best identified by...
Comparing expected vs actual results and tracing execution
Logic errors run without crashing, so the compiler gives no location — tracing/trace tables are needed.
Which runtime errors match: dividing by zero, exceeding a type's storage capacity, and accessing outside array bounds?
divide by zero, overflow, index out of range
Divide by zero, overflow and index out of range are three key runtime errors (along with type mismatch).
A breakpoint is used to...
Pause execution at a line so variables/state can be inspected
A breakpoint pauses execution so the developer can inspect variables and step through subsequent instructions.
Test data vs test case:
Test data = selected input; test case = full procedure with input, expected and actual result
Test data is just the input; a test case is the complete documented procedure used to decide pass/fail.
A trace table is used to...
Desk-check an algorithm by recording each executed statement and changing variable values
Comparing traced actual results with expected results helps reveal logic errors.