Blame

0648ae lisa 2026-06-08 09:18:19
Add C05 student wiki pages: design tools, annotation, traceability Six DRAFT pages under /sd/C05 targeting common rubric-boundary errors: - Sketch vs Mock-up (C5-1) — embeds two videos - Data Dictionary — Format is not Type (C5-1) - IPO Charts — Process Means Steps (C5-1) - VCAA Pseudocode — Not Python (C5-1) - The Annotation Verb Ladder (C5-2) - Connect the Dots — design traceability (C5-3) Pages 2-6 have video slots pending teacher selection. Home index reorganised by indicator. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
1
> **DRAFT** — under teacher review.
2
3
# Data Dictionary — "Format" Is Not "Type"
4
5
The Hamilton and Alexandra College · Year 12 · 2026
6
7
The single most common data-dictionary error is writing a data **type** in the **Format** column. They are not the same thing. This page explains the difference, shows you what correct entries look like, and maps to the VCAA band descriptors.
8
9
---
10
11
## The core distinction
12
13
**Type** is the *kind* of data — what category it belongs to.
14
15
**Format** is the *storage or display pattern* — the exact shape the value takes.
16
17
These are different answers to different questions:
18
19
| Question | Column | Example answer |
20
|---|---|---|
21
| What kind of data is this? | **Type** | `Integer` |
22
| What does a valid value look like? | **Format** | `999999` (fixed 6 digits) |
23
24
If you write `Integer` in the Format column, you have answered the wrong question. A marker sees that and knows you have conflated two concepts.
25
26
---
27
28
## Format notation key
29
30
The format strings use a small set of symbols — memorise these:
31
32
| Symbol | Meaning |
33
|---|---|
34
| `9` or `N` | One digit (0–9) |
35
| `X` | One uppercase letter |
36
| `x` | One lowercase letter |
37
| `YYYY` | Four-digit year |
38
| `MM` | Two-digit month |
39
| `DD` | Two-digit day |
40
| Separator (`,` `.` `-`) | Literal separator character |
41
42
So `999999` means "exactly six digits". `Xxxxxxxxxxxxxxx` means "one uppercase letter followed by lowercase letters — the number of `x` characters shows the maximum length".
43
44
---
45
46
## Worked example — a complete data dictionary
47
48
These rows come from a client-management system. Read across each row and notice that Type and Format sit in separate columns and say different things.
49
50
| Field | Type | Size | Format | Example |
51
|---|---|---|---|---|
52
| `id` | Integer | 6 | `999999` | 201940 |
53
| `firstName` | Text | 50 | `Xxxxxxxxxxxxxxx` | Jane |
54
| `lastName` | Text | 50 | `Xxxxxxxxxxxxxxx` | Smith |
55
| `DOB` | Date/time | 8 | `YYYY-MM-DD` | 2001-07-19 |
56
| `clubMember` | Boolean | 1 | `true/false` | true |
57
| `memberYears` | Integer | 2 | `NN` | 6 |
58
| `sales` | FloatingPoint | 8 | `NN,NNN.NN` | 12,543.76 |
59
60
Notice what each Format entry tells you that the Type alone does not:
61
62
- `id` is an Integer — but the Format `999999` tells you it is always **6 digits**, not 1 or 2.
63
- `firstName` is Text — but `Xxxxxxxxxxxxxxx` tells you it starts with a **capital** and the rest are lowercase.
64
- `DOB` is Date/time — but `YYYY-MM-DD` fixes it to **ISO format**, not DD/MM/YYYY or MM-DD-YYYY.
65
- `sales` is FloatingPoint — but `NN,NNN.NN` specifies a **thousands separator** and exactly **2 decimal places**.
66
67
---
68
69
## Why Format matters
70
71
Format entries do three jobs in your design documentation:
72
73
- **Data consistency** — every value entered follows the same shape, so comparisons and sorting work correctly.
74
- **Validation** — your software can reject an entry that does not match the pattern (e.g., a date typed as `19-07-01` instead of `2001-07-19`).
75
- **Readability** — another developer reading your data dictionary can reproduce the exact storage structure without guessing.
76
77
A Format column filled with type names (`Integer`, `String`, `Boolean`) gives you none of these benefits — it duplicates the Type column and adds no information.
78
79
---
80
81
## VCAA band levels — what's required at each step
82
83
VCAA defines a data dictionary as specifying variables, arrays, and GUI objects with reference to data types, data structures, and data sources. The level descriptors build upward:
84
85
| Level | What you must include |
86
|---|---|
87
| **Level 3** | Reference to **data types** (Integer, Text, Boolean, Date/time, FloatingPoint) |
88
| **Level 5** | Data types **and data structures** (arrays, records — not just scalar variables) |
89
| **Level 7** | Data types, data structures **and data sources** (where does each value come from — user input, database, calculation?) |
90
91
You cannot skip levels. If your dictionary has no data structures, you cannot claim Level 5 or above.
92
93
---
94
95
## Common mistakes
96
97
### Mistake 1: Format = Type
98
99
> ~~`Format: Integer`~~
100
101
Write the pattern instead: `999999`, `NN`, etc. If you cannot write a pattern, leave a note and revisit — but do not copy the Type column.
102
103
### Mistake 2: Missing data sources at Level 7
104
105
> ~~(no Source column, or Source column left blank for half the rows)~~
106
107
Every field at Level 7 needs a source. "User input", "calculated from `sales` total", "retrieved from customer database" — these are all valid. Blank is not.
108
109
### Mistake 3: Vague sizes
110
111
> ~~`Size: large`~~
112
113
Size must be a number — the number of characters, bytes, or digits the field can hold. If you do not know, look at your data (the longest plausible value) and choose a round number that covers it.
114
115
### Mistake 4: Only scalar variables
116
117
A dictionary that lists only individual variables but no arrays or records cannot score Level 5 or above. If your design uses a list of items or a record structure, include it.
118
119
---
120
121
## 🎬 Watch
122
123
> [!NOTE]
124
> Video coming soon.
125
126
**🎯 Watch for:** how an experienced developer reads a Format string and immediately knows the exact shape of valid data — something the Type alone can never tell you.
127
128
---
129
130
## Check Your Understanding
131
132
1. A student writes `Text` in the Format column for a `lastName` field. What is the mistake, and what should they write instead?
133
134
>| ### Answer
135
>| `Text` is a **type**, not a format. It duplicates the Type column and adds nothing. The correct Format entry is `Xxxxxxxxxxxxxxx` — one uppercase letter followed by lowercase letters, with the number of `x` characters indicating maximum length (e.g. 15 for a 15-character maximum).
136
137
2. Your data dictionary has variables and arrays but no data sources. Which VCAA level can you reach, and which is out of reach?
138
139
>| ### Answer
140
>| You can reach **Level 5** (data types and data structures). **Level 7** is out of reach because it requires data sources as well. Add a Source column and fill it in for every row to unlock Level 7.
141
142
3. What does the Format string `NN,NNN.NN` tell you that the Type `FloatingPoint` does not?
143
144
>| ### Answer
145
>| It tells you the value uses a **thousands separator** (`,`) and is stored to exactly **two decimal places**. `FloatingPoint` alone does not specify either of these — you could have `12543.7` or `12,543.759` and both would be valid floats, but only `12,543.76` matches the format.
146
147
---
148
149
## See also
150
151
- [IPO Charts — Process Means Steps](/sd/C05/IPO%20Charts%20-%20Process%20Means%20Steps)
152
- [Sketch vs Mock-up](/sd/C05/Sketch%20vs%20Mock-up)
153
- [Ryan's Tutorials — Data Dictionary](https://ryanstutorials.net/software-design-and-development/data-dictionary.php) — AU secondary-pitched; shows a "Format for Display" column with N/X notation
154
- [C05 Resources](/sd/Resources/C05-Resources)
155
156
← Back to [C05 Home](/sd/C05/C05-home) · [VCE Software Development Hub](/sd/VCE%20Software%20Development%20Hub)