# Marking Guide and Rubric: Unit 1 Applied Computing Exam 2026
This document provides the official solutions, marking criteria, and exemplar answers for the Unit 1 Applied Computing Examination (**26-U1-Exam.docx**).
> [!IMPORTANT]
> **Exam Structure & Identified Mark Discrepancies:**
> 1. **Section A (Multiple-Choice):** Labeled as **10 Marks** in the header. However, **Question 5 is omitted in the exam paper** (the numbering skips from Question 4 directly to Question 6). There are only **9 actual questions** (9 Marks).
> * *Grading recommendation:* Assess Section A out of 9 marks, adjusting the overall exam total to **59 Marks**, or award 1 free mark to all students for Question 5.
> 2. **Section C, Question 4:** Labeled as **8 Marks** in the header. However, the sub-questions in the paper only add up to **5 Marks** (1 mark for identifying the validation type, 4 marks for the test table).
> * *Grading recommendation:* To preserve the 30-mark weight of Section C and the 8-mark weight of Question 4, this marking guide includes a proposed **Part c (3 Marks)** requiring students to identify, explain, and correct the logic error in the speed check pseudocode. If the exam is graded as written, adjust the Section C total to **27 Marks** and the overall exam total to **56 Marks**.
>
> **Summary of Grading Totals:**
> * **As Written:** Section A (9) + Section B (20) + Section C (27) = **56 Marks**
> * **Adjusted/Corrected:** Section A (10 - with free mark) + Section B (20) + Section C (30 - with Part c added) = **60 Marks**
---
## Section A – Multiple-Choice Questions (9 Marks Actual / 10 Labeled)
| Question | Correct Answer | Topic | VCE Study Design Reference |
| :---: | :---: | :--- | :--- |
| **1** | **C** | Functional Requirements | Solution Requirements (Functional & Non-Functional) |
| **2** | **D** | Problem Solving Methodology Stages | Problem-Solving Methodology (PSM) Stages |
| **3** | **A** | Data Types | Data types (Character, Integer, Boolean) |
| **4** | **A** | Algorithmic Structures | Algorithmic Control Structures |
| **5** | *Omitted* | *Omitted in Exam Paper* | *N/A* |
| **6** | **C** | Solution Design Tools | Object Descriptions (GUI Controls) |
| **7** | **D** *(or Property)* | GUI Programming Concepts | Object attributes, methods, and event triggers |
| **8** | **B** | Logic and Boolean Operators | Algorithm logic tracing & Boolean operators |
| **9** | **A** | Solution Design Tools | Pseudocode & order of execution |
| **10** | **C** | Solution Design Tools | Data dictionaries & variable storage |
### Section A Detailed Explanations
#### Question 1
* **Correct Answer: C** (Calculates the tax payable for the financial year)
* **Explanation:** A functional requirement specifies *what* the software must do—a specific behavior, calculation, or system function. Calculating tax is a distinct processing function.
* **Why others are incorrect:**
* **A, B, and D** are non-functional requirements. They represent quality attributes or constraints of the system: "user friendly" describes usability, "robust" describes reliability/stability, and "easily maintained" describes maintainability.
#### Question 2
* **Correct Answer: D** (Analysis, Design, Development, Evaluation)
* **Explanation:** The standard four stages of the VCAA Problem Solving Methodology (PSM) in chronological order are Analysis, Design, Development, and Evaluation.
* **Why others are incorrect:**
* **A and B** include "Feedback" or "Packaging", which are not stages of the PSM.
* **C** includes "Construction", which is a phase within the Development stage, not a standalone PSM stage.
#### Question 3
* **Correct Answer: A** (A single ASCII character)
* **Explanation:** The Character (Char) data type is specifically designed to store a single typographical character (letter, number, or symbol), commonly encoded via ASCII.
* **Why others are incorrect:**
* **B and C** describe integers. A prime number or positive integer must be stored as an Integer data type.
* **D** describes a Boolean data type (which stores only True or False).
#### Question 4
* **Correct Answer: A** (Manipulation)
* **Explanation:** The three core structures of structured programming and algorithms are **Sequence** (lines executed in order), **Selection** (if-then-else statements), and **Iteration** (loops). "Manipulation" is not a recognized algorithmic control structure.
#### Question 5
* **Omitted:** This question does not exist in the document.
#### Question 6
* **Correct Answer: C** (Object Description)
* **Explanation:** An Object Description is a design tool that lists the Name of a user interface control, its Properties/Attributes (e.g., `btnProcess.Enabled`), and its Methods/Events (e.g., `btnProcess_Click()`).
* **Why others are incorrect:**
* **A** (Context Table) and **B** (Data Flow Diagram) show system data flows and boundaries, not object details.
* **D** (Data Dictionary) defines the characteristics of data variables/database fields (name, type, size, validation) rather than GUI controls and their events.
#### Question 7
* **Correct Answer: D** (or Property)
* **Explanation:** The question contains a technical drafting error. A tooltip text value itself is classified as an **attribute or property** of the GUI object. However, since "property" is not an option in the list, **D (An event)** is the closest intended answer because the hover action ("when the mouse hovers over") is an event trigger.
* *Grading recommendation:* Accept **D** as the correct choice for marking, but award marks to students who challenge the question by identifying that a tooltip is technically a property.
#### Question 8
* **Correct Answer: B** (def functionB())
* **Explanation:**
* Given variables: `a = 5`, `b = 7`, `c = 3`.
* Let's trace the conditional statement for B: `If (c < b) and (a < c)`
* `(c < b)` $\rightarrow$ `3 < 7` which is **True**.
* `(a < c)` $\rightarrow$ `5 < 3` which is **False**.
* `True and False` evaluates to **False**.
* Because the condition is False, the code enters the `Else` block and executes `return False`.
* All other functions (A, C, and D) contain conditions that evaluate to **True**, causing them to return `True`.
#### Question 9
* **Correct Answer: A** (pseudocode)
* **Explanation:** Pseudocode is a text-based design tool that outlines the step-by-step logic, structure, and sequence (order of execution) of an algorithm.
* **Why others are incorrect:**
* **B** (data dictionary) only defines variable characteristics.
* **C** (context diagram) and **D** (use case diagram) model system boundaries, external entities, and user interactions, showing nothing about code-level order of execution.
#### Question 10
* **Correct Answer: C** (data dictionary.)
* **Explanation:** A data dictionary is a design tool used to document metadata about variables, including variable names, data types, sizes, descriptions, and validation rules.
* **Why others are incorrect:**
* **A** (storyboard) shows visual screen layouts and flows.
* **B** (Gantt chart) is a project timeline tool.
* **D** (use case diagram) represents functional requirements and actor relationships.
---
## Section B – Short Answer (20 Marks)
### Question 1 (4 Marks)
**For each group (Presenters and Listeners), list one functional requirement and one non-functional requirement for a podcast app.**
#### Marking Criteria
* **1 Mark** for a valid functional requirement for Presenters.
* **1 Mark** for a valid non-functional requirement for Presenters.
* **1 Mark** for a valid functional requirement for Listeners.
* **1 Mark** for a valid non-functional requirement for Listeners.
#### Exemplar Answers
* **Presenters:**
* *Functional:* The app must allow presenters to upload audio files (MP3/WAV format) to their podcast channel.
* *Non-Functional:* The audio upload process must compress files automatically to ensure uploads complete in under 30 seconds (Performance/Efficiency).
* **Listeners:**
* *Functional:* The app must allow listeners to search for podcasts by title, presenter name, or category.
* *Non-Functional:* The user interface must support screen readers and keyboard navigation to comply with accessibility standards (Usability/Accessibility).
---
### Question 2 (4 Marks)
**Match each error description with its correct type from the provided list.**
#### Marking Criteria
* **1 Mark** per correct error type selected.
#### Completed Grid
| Error Type | Description |
| :--- | :--- |
| **overflow** | There is not enough memory available for the application, leading it to stop working and crash. |
| **type mismatch** | An application attempts to store text-based data within an array of integers. |
| **logic** | When a condition is tested, the user receives unexpected outputs. |
| **index out of range** | A counter used with an array has been erroneously incremented and moved past the last item in the array. |
---
### Question 3 (4 Marks)
**Write the pseudocode for a procedure that looks through the club's members and prints out the first name, surname, gender, and date of birth of members born before 1977.**
#### Marking Criteria
* **1 Mark:** Correctly initializing a loop that iterates from `1` to `numbermembers`.
* **1 Mark:** Correctly referencing array elements using the index variable (e.g., `date_of_birth[i]`).
* **1 Mark:** Using a correct conditional statement to check if the birth year is before 1977 (e.g., `date_of_birth[i] < 1977`).
* **1 Mark:** Printing the exact requested fields (`firstname[i]`, `surname[i]`, `gender[i]`, `date_of_birth[i]`) inside the conditional block.
#### Exemplar Pseudocode
```plaintext
BEGIN
For i From 1 To numbermembers Do
If date_of_birth[i] < 1977 Then
Print firstname[i], surname[i], gender[i], date_of_birth[i]
EndIf
EndFor
END
```
---
### Question 4 (4 Marks)
**Identify two characteristics of internal documentation and explain how each will help Vanessa test the code.**
#### Marking Criteria
* **1 Mark** for identifying Characteristic 1.
* **1 Mark** for explaining how Characteristic 1 assists with testing.
* **1 Mark** for identifying Characteristic 2.
* **1 Mark** for explaining how Characteristic 2 assists with testing.
#### Exemplar Answers
* **Characteristic 1: Meaningful variable and constant naming conventions.**
* *Explanation:* Using descriptive variable names (e.g., `totalPrice` instead of `tp`) allows Vanessa to instantly identify what data is being stored and manipulated. This makes it easier to trace inputs through the code and verify if the correct variables are holding expected values during testing.
* **Characteristic 2: Explanatory code comments for algorithms and logic blocks.**
* *Explanation:* Inline comments explain what a block of code (such as a nested loop or decision branch) is *intended* to do. When Vanessa runs test cases and encounters an unexpected output, these comments help her identify where the actual program execution deviates from the coder's intent, speeding up logic error isolation.
---
### Question 5 (4 Marks)
**Outline a searching technique more efficient than a linear search on 5000 records. Justify why this technique is more efficient.**
#### Marking Criteria
* **1 Mark:** Identifying a valid, more efficient searching technique (e.g., **Binary Search**).
* **1 Mark:** Outlining the key mechanism of the technique (requires sorted data, repeatedly halves the search space).
* **2 Marks:** Justifying the efficiency using comparisons/complexity argument (e.g., maximum comparisons reduced from 5,000 to 13; logarithmic complexity).
#### Exemplar Answer
* **Technique:** Binary Search.
* **Outline:** A binary search requires the dataset to be sorted (e.g., alphabetically by surname). It works by comparing the search target directly to the middle record in the list. If it matches, the search ends. If the target comes before the middle record, the upper half of the list is discarded, and the process is repeated on the lower half. This halving continues until the record is found.
* **Justification:** A linear search has a time complexity of $O(n)$, meaning it searches sequentially. For 5,000 records, a linear search requires an average of 2,500 comparisons and a worst-case of 5,000 comparisons. A binary search has a logarithmic complexity of $O(\log n)$, which halves the search space with every step. This reduces the worst-case scenario for 5,000 records to a maximum of only 13 comparisons ($\log_2(5000) \approx 12.28$), significantly reducing CPU processing cycles and search time.
---
## Section C – Case Study (30 Marks Labeled / 27 Actual)
### Question 1 (2 Marks)
**Identify from the list below which section of the SRS will consider each statement.**
* List: *Scope, constraints, functional requirements, non-functional requirements*
#### Marking Criteria
* **1 Mark** for correctly classifying Statement 1.
* **1 Mark** for correctly classifying Statement 2.
#### Solutions
* **Statement 1:** **Constraints** *(Acceptable: **Scope**)*
* *Reasoning:* A geographical limit (deliveries restricted to 2.5 km) is a boundary or operational limitation placed on what the system can do, which can represent a Constraint or define the project Scope.
* **Statement 2:** **Non-functional requirements** *(Acceptable: **Constraints**)*
* *Reasoning:* Formatting the app to match specific branding and color schemes is an aesthetic/usability requirement (non-functional) or represents a design constraint.
---
### Question 2 (3 Marks)
#### a. Identify how the software in the EasyDel app would differentiate an XML file from other types of text files. (1 Mark)
* **Marking Criteria:** 1 mark for identifying the file extension or XML declaration/structure.
* **Exemplar Answer:** The software checks the file extension (`.xml`) or parses the beginning of the file to locate the XML header declaration (e.g., `<?xml version="1.0"?>`) and the presence of hierarchical tags enclosed in angle brackets.
#### b. Explain how an XML file would be used by the EasyDel app to display data in the correct format on the screen. (2 Marks)
* **Marking Criteria:**
* 1 mark for explaining that XML separates raw data from presentation using custom tags.
* 1 mark for explaining that the app parses these tags and dynamically maps the data to the layout fields on the screen.
* **Exemplar Answer:** XML stores raw product data wrapped in custom descriptive tags (e.g., `<item><price>12.50</price></item>`). The EasyDel app reads this structured file, parses the values between the tags, and maps them to pre-defined graphical elements (like text boxes or price labels) on the UI. This allows stores to update stock figures and text without changing the layout template or programming code of the screen.
---
### Question 3 (4 Marks)
**Identify three external entities that interact with the RoboDel system, and describe one data flow originating from each entity into the system.**
#### Marking Criteria
* **1 Mark** for identifying three correct external entities (Customer, Store, Technician).
* **3 Marks** (1 mark per entity) for describing a valid data flow originating from that entity and entering the system.
#### Solutions
1. **Entity: Customer**
* *Data Flow into System:* Customer registration details (username, address) OR order checkout details (items selected, credit card payment details).
2. **Entity: Store (or individual stores)**
* *Data Flow into System:* Store inventory uploads (stock lists, item names, and current prices).
3. **Entity: Technician (or Operator)**
* *Data Flow into System:* Override signals, navigation assistance commands, or physical intervention indicators.
---
### Question 4 (8 Marks Labeled - 5 Marks in Paper / 3 Marks Proposed Part c)
#### a. What is this input testing called? (1 Mark)
* **Solution:** **Validation** *(specifically **Range Check** / **Range Validation**)*.
#### b. Complete the test table to test the speed checking pseudocode. (4 Marks)
* **Marking Criteria:** 1 mark per correct row (Tests 2, 3, 4, 5). Test data must include boundary and invalid values.
* **Exemplar Test Table:**
| Test No. | Test Data | Expected results | Actual results |
| :---: | :---: | :--- | :--- |
| **1** | `20` | `ValidSpeed = False` | `ValidSpeed = False` |
| **2** *(Normal)* | `3.5` | `ValidSpeed = True` | `ValidSpeed = True` |
| **3** *(Boundary)* | `0` | `ValidSpeed = False` *(Requirements state greater than 0)* | **`ValidSpeed = True`** *(Pseudocode checks `>= 0`)* |
| **4** *(Boundary)* | `6` | `ValidSpeed = False` *(Requirements state less than 6)* | **`ValidSpeed = True`** *(Pseudocode checks `<= 6`)* |
| **5** *(Invalid)* | `-2` *(or `7.5`)* | `ValidSpeed = False` | `ValidSpeed = False` |
> [!NOTE]
> **Logic Error Highlighted by Testing:**
> Tests 3 and 4 reveal a discrepancy between the expected results (based on safety requirements: `0 < speed < 6`) and the actual pseudocode results (which allow `0` and `6` because of `>=` and `<=`).
#### [PROPOSED] c. Identify the logic error in the developer's pseudocode, explain its impact, and write the corrected condition. (3 Marks)
* **Marking Criteria:**
* **1 Mark:** Identifying that the pseudocode uses inclusive operators (`>=` and `<=`) instead of exclusive operators (`>` and `<`).
* **1 Mark:** Explaining that this allows unsafe boundary speeds (0 km/h and 6 km/h) to be flagged as valid, violating safety rules.
* **1 Mark:** Providing the corrected line of pseudocode: `If Speed > 0 And Speed < 6 Then`.
* **Exemplar Answer:**
* *Error:* The pseudocode uses `>=` (greater than or equal to) and `<=` (less than or equal to) comparisons.
* *Impact:* It incorrectly accepts a speed of exactly 0 km/h (stationary/inactive) or exactly 6 km/h (speeding limit) as valid, violating the requirement that speeds must be strictly greater than 0 and less than 6.
* *Correction:* Change line 3 of the pseudocode to: `If Speed > 0 And Speed < 6 Then`
---
### Question 5 (6 Marks)
#### a. Why should RoboDel use this third-party software instead of developing it in house? (2 Marks)
* **Marking Criteria:** 1 mark per valid reason (saving time, lower cost, proven reliability, vendor expertise).
* **Exemplar Answer:** Purchasing third-party software saves RoboDel substantial time and development costs, as they do not have to write and debug complex data-mining algorithms from scratch. It also provides immediate access to a product that is already tested, stable, and maintained by a specialized vendor.
#### b. Discuss two technical issues the development team should investigate before integrating this software. (4 Marks)
* **Marking Criteria:** 2 marks per technical issue discussed (1 mark for identifying the issue, 1 mark for discussing its impact/investigation details).
* **Exemplar Answers:**
* **Issue 1: Performance and Resource Load on the Central Server.**
* *Discussion:* The developers must evaluate how the real-time extraction of heavy historical route and telemetry logs will affect the CPU and RAM capacity of the central server. If the third-party software consumes excessive processing power, it could slow down the EasyDel app's database queries, resulting in poor response times for customers ordering items.
* **Issue 2: Data Security and Privacy Exposures.**
* *Discussion:* The developers need to investigate the security permissions required by the third-party agent. Since the database houses sensitive client data (e.g., credit card information, customer addresses), direct integration raises security concerns. The team must verify how the agent accesses data (e.g., via restricted API calls rather than full read access) to prevent potential data leaks and ensure compliance with the *Privacy Act 1988*.
---
### Question 6 (2 Marks)
**Choose the best data structure from the list to store these related, but varying data types for a single robot's trip summary: one-dimensional array, file, record. Justify your selection.**
#### Marking Criteria
* **1 Mark:** Correctly selecting **record**.
* **1 Mark:** Justifying that it allows variables of *different* data types (e.g., String, Integer, Real) to be stored together under a single entity.
#### Solution
* **Data Structure:** record
* **Justification:** A record is designed to group related attributes of different data types (such as `RobotID` as text, `BatteryLevel` as integer, and `DistanceTraveled` as real/float) into named fields under a single variable. An array cannot be used because it only allows elements of the same data type.
---
### Question 7 (5 Marks)
*(Based on the Gantt chart in image3.png)*
#### a. Complete the Gantt chart using the information provided. (3 Marks)
* **Marking Criteria:** 1 mark for shading each task correctly.
* **Shading Rules:**
1. **Task 4 (Confirm SRS with Peter):** Shade **Week 7** only. (1 week duration, dependent on Task 3 which ends in week 6).
2. **Task 7 (Confirm designs with Peter and Jessica):** Shade **Weeks 13 and 14**. (2 weeks duration, dependent on Task 5 which ends in week 12).
3. **Task 8 (Refine designs):** Shade **Week 15** only. (1 week duration, dependent on Task 7 which ends in week 14).
#### b. i. Using the diamond symbol (♦), indicate an additional milestone on the Gantt chart. (1 Mark)
* **Solution:** Place a diamond (♦) on the vertical line separating **Week 15 and Week 16** (at the completion of Task 8).
* *Alternative Solution:* Place a diamond (♦) at the end of **Week 24** (at the completion of Task 9).
#### b. ii. Provide a justification for the placement of this milestone. (1 Mark)
* **Exemplar Justification (for Week 15 milestone):**
* The milestone is placed at the end of Week 15 because it represents the completion of the design phase (all designs finalized, reviewed, and refined), which acts as a gateway review point before the expensive coding and development phase (Task 9) begins.
* **Exemplar Justification (for Week 24 milestone):**
* The milestone is placed at the end of Week 24 because it marks the final completion and testing of the mobile application, representing the delivery of the completed project.