Navigation Menu

Stage 1 | Subject outline | Version control

Digital Technologies Stage 1
Subject outline

Version 4.0 - For teaching in 2024.
Accredited in November 2016 for teaching at Stage 1 from 2018.

Stage 1 | Subject outline | Content | Focus area 2: Advanced programming

Focus area 2: Advanced programming

This focus area builds on the knowledge, skills, and understanding developed in Focus area 1: Programming or previous learning.

Students extend their computational thinking skills and strategies to understand a range of problems, and explore and code possible solutions. These strategies include abstract and diagrammatic reasoning (to deconstruct a problem and focus on core concepts and ideas including simulation), data manipulation (moving from simple to more complex structures), and basic optimisation.

Students investigate problems that are of interest to them, and develop their solutions iteratively. They identify patterns in algorithms, and develop, test, and code their own algorithms. A solution may take the form of a product, prototype, and/or proof of concept.

In Focus area 2 students extend their programming knowledge and coding skills. This may include moving from a simple visual programming language to a text programming language; or extending the practice of the first programming language with more sophisticated programming, such as modularisation, code reuse, and the use of data structures such as arrays.

Students identify and select strategies to solve problems and generate programming solutions. This provides opportunities for students to work collaboratively and to apply project design skills and innovation. Students test and evaluate their programs, and research and discuss ethical considerations.

Self‑assessment tools or skills frameworks may be used to support the development and application of students’ skills in working collaboratively.

The following framework provides a set of possible techniques and strategies that can be used for learning.

Key learning elaboration
Possible techniques and strategies 
Problem‑solving

Students learn and apply problem‑solving strategies.






Students develop solutions for a range of numerical and text manipulation problems.



Students consider problem-solving strategies such as mathematical equations, simulation, and greedy or brute‑force algorithms.

Students interpret problem descriptions and identify the connection between input data and desired outputs.

Students use diagrams or logic to reason about the problem, identify constraints, and refine solutions.

Students work collaboratively.

Students reflect on the problem‑solving process. 

Students use abstraction to generalise solutions.

Design thinking

Students use computational thinking skills to identify and define problems.

Students develop solutions.


Students design and implement complex algorithms.



Students identify, investigate, and define problems, questions, or hypotheses. 

Students develop solutions iteratively and incrementally, identifying scope for innovation.

Students outline solutions and develop algorithms.

Students test algorithms.

Students code algorithms.

Students present the solution, including documentation such as appropriate use of comments. 

Students present a simulation of the solution.

Programming

Students code a range of algorithms using a general‑purpose programming language (GPL).


Students read, store, and manipulate input data from text files.


Students master conditional statements, iteration, and vector operations through repeated practice.



Students code small programs and functions to implement well‑defined tasks, such as finding if a number is a prime or if two words are anagrams.

Students accept simple formatted files as inputs and store the input in appropriate data structures such as arrays or lists.

Students write small programs to confidently use the syntax and semantics of basic commands.

Students improve the code through optimisation.

Testing and evaluating

Students learn to methodically test their programs.





Students use a range of techniques to debug their code.



Students practise program testing with a range of provided values.

Students write own test values and identify value range and border cases. 

Students use print statements, paper tracing, module testing, and debugger tools to identify bugs and correct code. 

Students test each function or code section separately.

Ethical considerations

Students research ethical implications.



Students research and discuss the ethical considerations in digital solutions for individuals, groups, societies, and/or the environment.