<!-- Generated from applied-computing-au vic/unit3-4/sat/C06-2026/C06-Reference-Godot by port-reference-godot-to-wiki.py — do not hand-edit; re-run the port. -->
# C06 — Skills in Using the Features of the Programming Language

The Hamilton and Alexandra College · Year 12 · 2026

Study material and grading standard for **VCE Software Development, Unit 4 Outcome 1, Criterion 6** — *Skills in using the features of the programming language* — for students building their SAT in **Godot / GDScript**.

Each page covers one topic: the VCE definition, the GDScript syntax, a minimal worked example in the shared **Myki fare app** domain, and the **evidence standard** — what earns each skill-code tick and what does not. Your checkpoint and validation feedback — from your teacher or an AI reviewer — is graded against these pages, so what they say *is* the standard.

## Foundations

- [Essential Terms](/sd/C06/Essential%20Terms) — the C06 glossary; click a term to expand its definition

## Using these pages for your checkpoint

1. Pick a nominated feature you have built.

2. Walk the lookup table below: for each code, open its page and compare your code against the **Earns the tick** line.

3. Label the exact line (`# C626a — selection: …`), and write the *why* comment wherever the code asks for reasoning.

4. Anything you cannot label yet is your to-do list — each page shows the smallest pattern that earns the tick, and the codes climb from very low (C611) to very high (C65x).

## How the codes work

- **34 skill codes** (C611–C658) across two indicators.

- **Checkpoint sheet:** three boxes per code — label your code `C611a`, `C611b`, `C611c` for your first, second and third nominated feature (102 marks).

- **Validation sheet:** one box per code, ticked only for skills demonstrated **live** during the Live Coding Validation (34 marks) — in the Prove-It's-Yours re-label, the data-layer extension, or a mini-challenge. Practise finding and re-labelling your own code without notes.

- **Label as you code.** A skill the marker cannot find earns nothing — put the code in a comment on the line (or block) that shows it. Every example on these pages carries its own label to model exactly this.

**Levels of performance:** Not shown (0) · 1–2 very low · 3–4 low · 5–6 medium · 7–8 high · 9–10 very high.

## Reasoning-verb ladder (internal documentation codes)

The four "why" codes are the same skill at rising depth. The verb is the standard:

| Code | Level | Verb | Looks like |
|---|---|---|---|
| C629 | 3–4 | **outlines** why data types | `# C629 — float: money needs decimal places` |
| C638 | 5–6 | **identifies** why types *and structures* | a one-line reason on each structure |
| C645 | 7–8 | **describes** why data sources | a sentence or two per source |
| C658 | 9–10 | **explains** why all of them | reasons that weigh alternatives ("CSV over XML because …") |

## Code → page lookup

| Code | Level | Skill | Page |
|---|---|---|---|
| C611 | 1–2 | instructions | [Instructions and Operators](/sd/C06/Instructions%20and%20Operators) |
| C612 | 1–2 | arithmetic operators | [Instructions and Operators](/sd/C06/Instructions%20and%20Operators) |
| C613 | 1–2 | text data | [Data Types](/sd/C06/Data%20Types) |
| C614 | 1–2 | numeric data | [Data Types](/sd/C06/Data%20Types) |
| C615 | 1–2 | Boolean data | [Data Types](/sd/C06/Data%20Types) |
| C621 | 3–4 | local variables | [Local and Global Variables](/sd/C06/Local%20and%20Global%20Variables) |
| C622 | 3–4 | constants | [Local and Global Variables](/sd/C06/Local%20and%20Global%20Variables) |
| C623 | 3–4 | logical operators | [Instructions and Operators](/sd/C06/Instructions%20and%20Operators) |
| C624 | 3–4 | conditional operators | [Instructions and Operators](/sd/C06/Instructions%20and%20Operators) |
| C625 | 3–4 | sequence | [Control Structures](/sd/C06/Control%20Structures) |
| C626 | 3–4 | selection | [Control Structures](/sd/C06/Control%20Structures) |
| C627 | 3–4 | GUIs | [GUI](/sd/C06/GUI%20and%20Controls) |
| C628 | 3–4 | data types for local variables | [Local and Global Variables](/sd/C06/Local%20and%20Global%20Variables) |
| C629 | 3–4 | reasoning — why these data types | [Data Types](/sd/C06/Data%20Types) |
| C631 | 5–6 | global variables | [Local and Global Variables](/sd/C06/Local%20and%20Global%20Variables) |
| C632 | 5–6 | iteration / repetition | [Control Structures](/sd/C06/Control%20Structures) |
| C633 | 5–6 | relevant GUI controls | [GUI](/sd/C06/GUI%20and%20Controls) |
| C634 | 5–6 | data types for global variables | [Local and Global Variables](/sd/C06/Local%20and%20Global%20Variables) |
| C635 | 5–6 | arrays | [Data Structures](/sd/C06/Data%20Structures) |
| C636 | 5–6 | records | [Data Structures](/sd/C06/Data%20Structures) |
| C638 | 5–6 | reasoning — why these types and structures | [Data Structures](/sd/C06/Data%20Structures) |
| C641 | 7–8 | functions | [Functions and Methods](/sd/C06/Functions%20and%20Methods) |
| C642 | 7–8 | methods | [Functions and Methods](/sd/C06/Functions%20and%20Methods) |
| C643 | 7–8 | access modifiers | [OOP Concepts](/sd/C06/OOP%20Concepts) |
| C644 | 7–8 | data types, structures and sources | [Data Sources](/sd/C06/Data%20Sources) |
| C645 | 7–8 | reasoning — why these data sources | [Data Sources](/sd/C06/Data%20Sources) |
| C651 | 9–10 | classes | [OOP Concepts](/sd/C06/OOP%20Concepts) |
| C652 | 9–10 | objects | [OOP Concepts](/sd/C06/OOP%20Concepts) |
| C653 | 9–10 | abstraction | [OOP Concepts](/sd/C06/OOP%20Concepts) |
| C654 | 9–10 | encapsulation | [OOP Concepts](/sd/C06/OOP%20Concepts) |
| C655 | 9–10 | generalisation | [OOP Concepts](/sd/C06/OOP%20Concepts) |
| C656 | 9–10 | inheritance | [OOP Concepts](/sd/C06/OOP%20Concepts) |
| C657 | 9–10 | range of types, structures and sources | [Data Sources](/sd/C06/Data%20Sources) |
| C658 | 9–10 | reasoning — why all of them | [Data Sources](/sd/C06/Data%20Sources) |

Reference-only pages with no codes of their own: [Data Type Characteristics](/sd/C06/Data%20Type%20Characteristics) — the input/storage/output table the reasoning codes draw their "why" from.

## Example code

Snippets use two sources, and the pages keep both:

- The **Myki fare app** domain (balance, fares, zones, concession, journeys) — minimal made-for-purpose examples.

- **Real code from the projects studied in class**, attributed in the snippet's first comment line (e.g. `# connect-go-dots — grid.gd`). So far: `connect-go-dots` (instructions, sequence, iteration, GUI and controls, autoload global), `tile-matching-game` (operators, selection, a real `while`, data types, typed arrays, records, CSV source, full functions and methods, classes and objects) and `club-ladder` (`match`, class-as-record, direct `.new()`, XML read *and* write, `res://` vs `user://`, model design reasoning) — plus *non-examples* for engine methods and engine inheritance. Also worth reading: `dodge-the-creeps` (GUI, signals).
0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9