Te Kete Ipurangi Navigation:

Te Kete Ipurangi

Te Kete Ipurangi user options:

Senior Secondary navigation


Section menu


Curriculum strands

Specialist strands

AOs/LOs by level

Technological practice (TP)

6-1 | 6-2 | 6-3

7-1 | 7-2 | 7-3

8-1 | 8-2 | 8-3

Technological knowledge (TK)

6-1 | 6-2 | 6-3

7-1 | 7-2 | 7-3

8-1 | 8-2 | 8-3

Nature of technology (NT)

6-1 | 6-2

7-1 | 7-2

8-1 | 8-2

Design in technology (DET)

6-1 | 6-2

7-1 | 7-2


Manufacturing (MFG)

6-1 | 6-2

7-1 | 7-2


Technical areas (TCA)


Construction and mechanical technologies (CMT)

6-1 | 6-2 | 6-3 | 6-4

6-5 | 6-6 | 6-7

7-1 |  7-2 |  7-3 |  7-4

7-5 |  7-6 |  7-7

8-1 | 8-2 | 8-3 | 8-4

8-5 | 8-6 | 8-7

Design and visual communication (DVC)

6-1 | 6-2 | 6-3

7-1 | 7-2 | 7-3

8-1 | 8-2 | 8-3

Digital technologies (DTG)

6-1 | 6-2 | 6-3 | 6-4

6-5 | 6-6 | 6-7 | 6-8

6-9 | 6-10 | 6-11 | 6-12

7-1 |  7-2 |  7-3 |  7-4

7-5 |  7-6 |  7-7 |  7-8

7-9 |  7-10 |  7-11 |  7-12

8-1 | 8-2 | 8-3 | 8-4

8-5 |  8-6/7 | 8-8 | 8-9

8-10 |  8-11 | 8-12

Processing technologies (PRT)

6-1 | 6-2 | 6-3

7-1 | 7-2 | 7-3

8-1/2 | 8-3

Construct a software program DTG 7-7

Achievement standard 2.46 AS91373

Construct a software program focuses on constructing a computer program for a specified task, including testing and debugging the program to ensure the program works correctly.

Learning objective: DTG 7-7

Students will:

  • demonstrate ability to construct an advanced software program.


Students can:

  • independently implement a plan for an advanced program in a suitable programming language (preferably a text-based programming language)
  • construct an advanced program where the modules (including their procedural structures) constitute a well-structured logical decomposition of the task
  • use variables, constants, and derived values effectively so as to increase the flexibility and robustness of the program
  • set out the program code clearly and concisely, and document the program with comments that explain and justify decisions
  • comprehensively test and debug the program in an organised and time effective way to ensure the program is correct on expected, boundary, and invalid inputs.


At level 6, students will have learned to construct basic computer programs in a chosen programming language (drag-and-drop language, specialised programming language, or a general purpose programming language) that include: variables, assignment, predefined actions, expressions, and sequence, selection, and iteration control structures; and obtains and uses input from a user, sensors, or other external source.

At level 7, students progress to constructing advanced computer programs (preferably using a text-based programming language) where the program has a modular structure (depending on the language, modules might be called functions, procedures, methods or subroutines), an indexed data structure (typically arrays or lists), input and output, and procedural structures that combine sequential, conditional, and iterative structures.

Teacher guidance

To support students to develop an ability to construct an advanced software program at level 7, teachers could guide students on how to:

  • independently implement a plan to construct advanced programs, in suitable programming language, where the modules (including their procedural structures) constitute a well-structured logical decomposition of the tasks
  • use variables, constants, and derived values effectively to increase the flexibility and robustness of programs
  • set out program code clearly and document programs with variables and module names, and include comments that explain and justify code functions and behaviours
  • comprehensively test and debug programs in organised and time effective ways to ensure that programs are correct on expected, boundary, and invalid inputs.

Contexts for teaching and learning

The learning associated with DTG 7-6 Design a software program structure (AS91372 Digital Technologies 2.45) and DTG7-7 Construct a software program (AS91372 Digital Technologies 2.46) are strongly interlinked, and normally both should be taught at the same time. Refer to the discussion in section DTG7-6 of this guide.

This learning objective "Demonstrate ability to construct an advanced software program" is often done in conjunction with the learning objective DTG 7-6 Demonstrate ability to design the structure of an advanced software program. However, it is not an absolute requirement for this objective that students must code a program that they have previously designed themselves. They can be provided with a plan and asked to code from that.

Teachers are referred to the Support for Schools website prepared by staff from the Computer Science Department at The University of Otago. This resource has numerous ideas for teaching and assessing this topic.

The most popular languages for use at level 7 are Python and JavaScript, but any general purpose programming languages is suitable. Some visual languages (including AppInventor and Scratch 2) cover the requirements for level 7, but aren’t recommended as students will have a much bigger step up to level 8, which requires a text-based language. Suitable programming languages for use at level 7 include the following:

  • Python
  • Javascript
  • Java
  • Visual Basic
  • C#
  • PHP
  • Pascal
  • Ruby

Literacy considerations

Teachers need to ensure students understand the specialist language related to computer programming such as "parameters" or "debugging". In addition, students must be able to document their program with clear concise comments that explain and justify decisions. Students will need guidance on what level of documentation is necessary in the comments to adequately explain and justify their decisions.

Resources to support teaching and learning

Assessment for qualifications

The following achievement standard(s) could assess learning outcomes from this learning objective:

  • AS91373 Digital technologies 2.46: Construct an advanced computer program for a specified task

Key messages from the standard

  • Explanatory note 3 states it is preferable for the programming language to be text-based. However, any language that supports indexed data structures, modules with parameters, global and local scope of variables, and good comment/documentation facilities can be used. Teachers need to be aware that at level 8 a text-based programming language must be used so a decision needs to be made as to when it is most advantageous to students to introduce a text-based programming language.
  • The teacher needs to ensure a plan is available to the student as the starting point for this standard. This can either be provided by the teacher or, preferably, developed by the student (and verified as suitable by the teacher) as part of 2.45, with the 2.46 implementation being done in conjunction with the planning (see the comments on this in the section of the guide related to 2.45).
  • If this standard is being assessed in conjunction with 91372 (2.45), teachers need to ensure any students who did not achieve 91372 are provided with a suitable plan so they have the opportunity to succeed in 91373 (2.46)
  • There must be a specified task that requires the development of an advanced computer program in order to resolve it. The task may be teacher given or developed in negotiation with the student. It is expected that most students constructing a program for this standard will have already developed a plan for an advanced program for this task (probably as part of 2.45 (91372)). If this is not the case, then the teacher should provide students with an abstract plan to guide their program development. This plan should not be one that can be directly transcribed to the programming language. Refer to explanatory note 6.
  • At level 7, students must construct an advanced computer program. An advanced computer program is defined in explanatory note 4. The essential step up from level one is that it must have a modular structure and an indexed data structure such as an array or list (in addition to the other requirements expected at level one and set out in explanatory note 4).
  • Explanatory note 5 gives details about the requirements for the modular structure. The program with a modular structure contains a collection of named modules where each module implements a procedural structure for a sub-task (depending on the language, a module might be called a function, procedure, class or subroutine). At least the top-level module must contain calls to other modules. The modules should include parameters as necessary, but the wording "as necessary" means that parameters are not a requirement of the standard.
  • The program should be documented with comments. At achieved, the criteria just asks for comments. At merit, the comments must include variable and module names, and comments that accurately describe code function and behaviour. At excellence, the comments must explain and justify decisions.
  • The merit criteria requires implementing the plan for an advanced program that uses well-chosen scope for the variables (see explanatory note 7) and well-chosen parameters for the modules (see explanatory note 8).
  • As part of the task, students need to test and debug the program to ensure it works on a sample of input cases. Testing of expected, boundary and invalid inputs should be clearly displayed or recorded in writing as part of the student evidence. Students need to understand expected input cases, boundary cases, and invalid inputs. Refer to the table below:

    Achieved Merit Excellence
    Expected input cases Expected and boundary cases Comprehensive set of expected, boundary, and invalid inputs
    Expected – input that is expected, that is, if a number between 1 and 10 is expected then you would test the program for input of say 2 or 5 or 9. Boundary – input values that are right at the limit of being too large, too small, too long, or too short, or too... they are valid, but because they are right at the end of the range, programmers may have got their conditions just a little bit wrong. Boundary testing when iterating through a list or array is particularly relevant to this standard. What happens when the length of the list or array is reached? Invalid inputs – input values that are invalid for some other reason than being out of range, for example, using invalid characters, inconsistent sets of values, unexpected key sequences, or text input when numeric is expected.
  • Part of the step-up to merit is that students need to construct the plan independently. To make a judgment for independence, the following guidelines might be helpful. The student:
    • takes responsibility for achieving a quality outcome
    • plans effectively, thinks ahead, is well organised, self-starting, self managing
    • makes their own decisions
    • stores their work carefully
    • carries out appropriate checking and testing and takes corrective action as necessary
    • recognises and deals with issues promptly
    • is always able to describe what they are doing and why and where their project is heading.

      It does NOT mean that the student:

    • is unable to ask for help with technical (for example, faulty equipment) or safety issues
    • is responsible for the consequences of inadequate project storage facilities.

      Of course, initially during the learning process, students can expect considerable guidance, but the assessment will test if they are then able to work independently.

  • The step-up to excellence is about the efficiency of the program. In the context of this standard, this involves implementing the program so that it does not have to be redesigned substantially if it needs to be extended or modified, and that the implementation can be understood easily and quickly by a later programmer. This involves a well-structured logical decomposition of the task (see explanatory note 10), using variables, constants and derived values (see explanatory note 9) to increase the flexibility and robustness of the program, and setting out the program code concisely with appropriate documentation. In addition, there needs to be evidence of comprehensive testing and debugging carried out in an organised and time effective way.
  • The student needs to submit a working computer program that correctly solves the problem (the program should be submitted in both printed and electronic form), along with evidence of appropriate testing (refer to the above table about required test cases).

Resources to support student achievement

Last updated June 8, 2018