# C07 Resources — Naming Conventions, Internal Documentation & Validation

**Criterion scope:** Naming conventions (camelCase, snake_case, Hungarian notation), internal documentation (header comments, inline comments), validation techniques (existence check, range check, type check).

---

## C7-1: Naming Conventions

### Existing Materials (CriterionXX/)

Criterion07/ has a professional naming conventions guide and "The Year That Wouldn't Change" activity on hardcoded values/magic numbers. The gap is in **interactive practice** and **video content**.

### External Resources

| Resource | Source | Format | VCAA Mapping | Why It's Useful |
|----------|--------|--------|--------------|-----------------|
| [PEP 8 — Style Guide for Python Code](https://peps.python.org/pep-0008/) | Python.org | Reading (official) | Naming conventions: snake_case for variables/functions, CamelCase for classes | The official Python style guide. Students should know this exists. Directly relevant to snake_case conventions used in Python. |
| [Real Python — How to Write Beautiful Python Code With PEP 8](https://realpython.com/python-pep8/) | Real Python | Reading + code examples | Naming conventions, code readability | Friendlier walkthrough of PEP 8 than the official document. Includes visual examples of good vs bad naming. |
| [freeCodeCamp — Programming Naming Conventions Explained](https://www.freecodecamp.org/news/programming-naming-conventions-explained/) | freeCodeCamp | Reading | camelCase, snake_case, PascalCase — comparison across languages | Explains all major naming conventions side-by-side with examples. Good for understanding why different conventions exist and when to use each. Maps directly to VCAA terms. |
| [Programming Naming Conventions: camelCase, snake_case, PascalCase & More](https://caesarcipher.org/learn/programming-naming-conventions-camelcase-snake-case-guide) | Caesar Cipher | Reading | camelCase, snake_case, Hungarian notation | Covers all three VCAA-required naming conventions with clear examples and comparison. |
| [VCEData.com — Software Development](https://vcedata.com/indexsd.html) | Mark Kelly (VCEData) | Reading | Naming conventions — VCE-specific context | VCE-specific notes on naming conventions in the context of the study design. |

### Gaps — C7-1

- **No video tutorial** specifically on naming conventions for VCE Software Development. This is a simple topic but students benefit from seeing before/after examples in a video format.
- **Hungarian notation in Python** is unusual — Python community doesn't use Hungarian notation, but VCAA requires students to know it. No good resource bridges this gap (most Hungarian notation examples use VB.NET or C#).
- **Applying naming conventions to interface controls** (a specific VCAA requirement) — needs VCE-specific examples showing how to name GUI elements with conventions.

---

## C7-2: Internal Documentation

### Existing Materials (CriterionXX/)

Criterion07/ has good coverage: professional internal documentation guide, modern coding practices, turning comments into useful docs, and the "Programmer's Nightmare" activity. The gap is in **video content** and **examples of excellent vs poor documentation**.

### External Resources

| Resource | Source | Format | VCAA Mapping | Why It's Useful |
|----------|--------|--------|--------------|-----------------|
| [Real Python — Documenting Python Code](https://realpython.com/documenting-python-code/) | Real Python | Reading + code examples | Header comments, inline comments, docstrings | Comprehensive guide on Python documentation practices. Covers docstrings, inline comments, and project documentation. Maps to VCAA "internal documentation" requirements. |
| [CSE Buffalo — General Style and Coding Standards](https://cse.buffalo.edu/~rapaport/code.documentation.Excerpts.pdf) | University resource | Reading (PDF) | Internal documentation best practices | Academic perspective on code documentation. Good for understanding the "why" behind documentation practices. |
| [Coding Standards and Best Practices (DevCom)](https://devcom.com/tech-blog/coding-standards-and-best-practices-guide-implementation-tips/) | DevCom | Reading | Naming conventions + internal documentation | Professional perspective linking naming conventions and documentation. Shows real-world practice. |

### Gaps — C7-2

- **No video** showing good vs bad internal documentation for a Python project. This would be extremely valuable — students could see the same code with poor comments vs excellent comments.
- **Header comment templates** for Python files — no good external resource provides a VCE-appropriate header comment template. The Criterion07/ materials are the best source.
- **Documentation that explains functionality AND use of data AND use of code structures** (the top VCAA tier) — no external resource demonstrates this comprehensively for a VCE project.

---

## C7-3: Validation Techniques

### Existing Materials (CriterionXX/)

Criterion07/ has a validation detective activity and a real-life validation detective (GitHub) exercise. Good conceptual coverage but the gap is in **code examples** and **video tutorials** showing Python validation implementation.

### External Resources

| Resource | Source | Format | VCAA Mapping | Why It's Useful |
|----------|--------|--------|--------------|-----------------|
| [Data Validation in Python: Range, Type, Presence and Format Check](https://medium.com/@icodewithben/data-validation-in-python-range-type-presence-and-form-aaefe8835a86) | Medium (icodewithben) | Reading + code | Existence check, range check, type check — all three VCAA types | Covers all three VCAA validation types with Python code examples. Directly maps to the study design terminology. The best single-resource match for C7-3. |
| [GeeksforGeeks — Input Validation in Python](https://www.geeksforgeeks.org/python/input-validation-in-python/) | GeeksforGeeks | Reading + code | Validation techniques — practical implementation | Practical Python examples of input validation. Good code snippets students can adapt for their SAT projects. |
| [Automate the Boring Stuff — Chapter 8: Input Validation](https://automatetheboringstuff.com/2e/chapter8/) | Al Sweigart | Reading (free online) | Validation techniques, input handling | Free, well-written chapter on input validation in Python. Accessible language for high school students. The pyinputplus module examples show professional validation patterns. |
| [VCEData.com — Validation](https://vcedata.com/p/validation.html) | Mark Kelly (VCEData) | Reading | Validation — VCE-specific context | VCE-specific notes on validation including the exact types required by the study design. |
| [Isaac Computer Science — Validation and Verification](https://isaaccomputerscience.org/concepts/soft_design_validation_verification) | Isaac Computer Science | Interactive (questions + reading) | Validation concepts, verification vs validation | Structured content with self-check questions distinguishing validation from verification. Good for conceptual understanding. |
| [PC-Python — Validation](https://pc-python.readthedocs.io/en/latest/python_advanced/validation.html) | PC-Python (ReadTheDocs) | Reading + code | Existence, range, type checks in Python | Python-specific validation guide with clear code examples for each check type. Well-structured for learning. |
| [Code ABC's — Input Validation (Python)](https://www.codeabcs.com/python/validation.php) | Code ABC's | Reading + code | Validation — practical Python examples | Simple, focused examples of Python input validation. Good for students who want quick, copy-and-adapt patterns. |

### Gaps — C7-3

- **No VCE-specific video** demonstrating all three validation types (existence, range, type) in a single Python project context. Generic Python validation tutorials exist but none use VCE terminology.
- **Reasonableness and completeness checks** (top VCAA tier) — most resources cover the three basic check types but don't address checking "reasonableness and completeness of all input data".
- **Validation in GUI context** — most validation tutorials show console-based validation. Students doing GUI projects need to see how validation works with GUI controls (entry widgets, error labels).

---

## Recommended Actions

1. **The Medium article by icodewithben** is the single best external resource for C7-3 — it maps perfectly to VCAA terminology. Assign as required reading.
2. **Create a video** (10-15 min) demonstrating naming conventions + internal documentation + validation in a single Python file, showing how all three work together. This integrated view is what students need and no external resource provides it.
3. **Create a Hungarian notation reference card** for Python — mapping common VCAA GUI controls (textbox, button, label, etc.) to Hungarian notation prefixes, since Python tutorials don't cover this.
4. **Create validation examples in a GUI context** — show existence/range/type checks in a tkinter application, not just console input.
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