# C06 Resources — Programming Features & Data Types/Structures/Sources **Criterion scope:** Programming language features (instructions, operators, variables, constants, control structures, GUI, functions/methods, OOP), data types (text, numeric, Boolean), data structures (arrays, records), data sources (TXT, CSV, XML), internal documentation of data choices. --- ## C6-1: Programming Language Features ### Existing Materials (CriterionXX/) Criterion06/ has a progressive coding lab, SRS-to-code mapping, and a Family Feud game for programming features. Good structure but **lacks video tutorials and interactive coding practice** for the specific VCAA feature progression (instructions > operators > variables > control structures > GUI > functions > OOP). ### External Resources | Resource | Source | Format | VCAA Mapping | Why It's Useful | |----------|--------|--------|--------------|-----------------| | [Corey Schafer — Python OOP Tutorials (6 videos)](https://www.youtube.com/playlist?list=PL-osiE80TeTsqhIuOqKhwlXsIBIdSeYtc) | YouTube | Video series (~1.5 hrs total) | Classes, objects, inheritance, encapsulation, methods, access modifiers | The best free Python OOP tutorial series. Covers classes/instances, class variables, classmethods/staticmethods, inheritance, special methods, property decorators. Directly maps to the C6-1 top-tier requirement (classes, objects, OOP principles). | | [Bro Code — Python Full Course for Beginners](https://www.youtube.com/watch?v=XKHEtdqhLK8) | YouTube | Video (12 hrs, chapter-indexed) | Instructions, variables, operators, control structures, functions, GUI, OOP | Comprehensive single-video course covering the entire VCAA programming feature progression. Students can jump to specific chapters. Good production quality. | | [W3Schools — Python OOP](https://www.w3schools.com/python/python_oop.asp) | W3Schools | Interactive (try-it-yourself) | Classes, objects, inheritance, encapsulation | Interactive browser-based examples. Students can modify and run code directly. Good for the "try it yourself" learners. | | [Python Official Tutorial](https://docs.python.org/3/tutorial/index.html) | Python.org | Reading | All programming features | The authoritative reference. Dense but comprehensive. Best used as a lookup reference, not a teaching resource. | | [GeeksforGeeks — Python OOP Concepts](https://www.geeksforgeeks.org/python/python-oops-concepts/) | GeeksforGeeks | Reading + code examples | OOP: classes, objects, inheritance, encapsulation, abstraction | Well-structured reference with code examples for each OOP concept. Good supplement to video tutorials. | | [Grok Learning — Intro to Programming (Python)](https://groklearning.com/course/intro-python-1/) | Grok Learning | Interactive (auto-graded) | Variables, control structures, functions — foundational | Australian, curriculum-aligned, auto-graded. Covers Python fundamentals with instant feedback. Good for students who need extra practice on basics before tackling OOP. Requires school subscription for full access. | | [Grok Learning — Python for Beginners](https://groklearning.com/course/python-for-beginners/) | Grok Learning | Interactive (auto-graded) | Basic programming features | Designed for students with no prior text-based programming experience. Scaffolded progression. | | [Isaac Computer Science — Programming Concepts](https://isaaccomputerscience.org/concepts/prog_concepts_sequence) | Isaac Computer Science | Interactive (questions + reading) | Sequence, selection, iteration, variables | Free, structured lessons with self-check questions. UK A-level aligned but concepts map directly to VCE. Covers control structures well. | | [Isaac Computer Science — OOP Fundamentals](https://isaaccomputerscience.org/concepts/prog_oop_fundamentals) | Isaac Computer Science | Interactive (questions + reading) | OOP: classes, objects, methods, attributes, encapsulation, inheritance | Structured OOP content with practice questions. Good for self-assessment. | | [NSCVCE — Software Development Units 3 & 4](https://nscvce.com.au/course/software-development-vce-units-3-4/) | NSCVCE | Structured lessons | All C6 topics — VCE-specific | VCE-specific lesson structure including "Features of a programming language" and "Principles of Object Oriented Programming". Paid resource but directly aligned to study design. | | [VCEData.com — Software Development](https://vcedata.com/indexsd.html) | Mark Kelly (VCEData) | Reading + notes | All C6 topics — VCE-specific | Long-standing VCE Computing resource by Mark Kelly. Free study notes covering all VCE Software Development topics. | ### Gaps — C6-1 - **No VCE-specific video** walking through the VCAA feature progression (instructions > operators > variables > control structures > functions > OOP) with a single project. Generic Python tutorials exist but none map to the VCAA rubric levels. - **GUI development tutorials** (specifically for VCE — likely tkinter or PyQt) that show how to create relevant GUI controls are sparse. Most tutorials focus on either too-basic or too-advanced GUI work. - **Access modifiers in Python** — Python doesn't have true access modifiers like Java/C#. Need a resource explaining Python's convention-based approach (underscore prefix) and how this maps to the VCAA requirement. --- ## C6-2: Data Types, Structures & Sources ### Existing Materials (CriterionXX/) Criterion06/ has a slideshow on data types/structures/sources, a Q&A activity, and a data implementation lab. The gap is in **practical examples of working with CSV, TXT, and XML in Python** and **video content**. ### External Resources | Resource | Source | Format | VCAA Mapping | Why It's Useful | |----------|--------|--------|--------------|-----------------| | [Corey Schafer — Python CSV Module Tutorial](https://www.youtube.com/watch?v=q5uM4VKywbA) | YouTube | Video | Data sources: CSV file handling | Clear, practical tutorial on reading/writing CSV files in Python. Directly maps to the data source requirement. | | [Real Python — Reading and Writing CSV Files](https://realpython.com/python-csv/) | Real Python | Reading + code | Data sources: CSV | Comprehensive guide with examples. Good reference material. | | [W3Schools — Python File Handling](https://www.w3schools.com/python/python_file_handling.asp) | W3Schools | Interactive | Data sources: TXT files | Interactive examples for reading/writing text files. Students can experiment in browser. | | [W3Schools — Python XML Processing](https://www.w3schools.com/python/python_xml.asp) | W3Schools | Interactive | Data sources: XML (prolog, tree, root/parent/child elements) | Interactive XML processing examples. Covers the XML-specific terminology in the VCAA essential terms (prolog, tree, root element, parent/child elements). | | [Ryan's Tutorials — Software Design and Development](https://ryanstutorials.net/software-design-and-development/) | Ryan's Tutorials | Reading | Data structures, general software design | Free, high-quality tutorials aimed at secondary students. Accessible language with visual diagrams. | ### Gaps — C6-2 - **Internal documentation explaining data choices** — no external resource shows students how to write comments explaining *why* they chose specific data types and structures. This is a VCAA-specific requirement that needs custom materials. - **XML in Python for VCE** — most XML tutorials are either too basic or too enterprise-focused. Need a simple "read an XML file, extract data, display it" example scoped to a VCE SAT project. - **Two-dimensional arrays in Python** — Python uses lists-of-lists rather than true 2D arrays. Need a resource bridging the VCAA terminology with Python reality. --- ## Recommended Actions 1. **Corey Schafer's OOP series is the standout resource** for C6-1. Assign the first 4 videos (classes, class variables, classmethods, inheritance) as required viewing. 2. **Create a custom video/resource** mapping the VCAA feature progression to a single Python project — show how each rubric level maps to specific code. 3. **Create a resource on Python access modifiers** — explain the underscore convention and how it satisfies the VCAA requirement. 4. **Create worked examples** of internal documentation explaining data type/structure/source choices — this is critical for C6-2 and nothing external covers it.
