AS92004 · Create a computer program — a Python guide
NCEA Level 1 · Digital Technologies 1.1 · AS92004 · 5 credits · Internal

Create a computer
program in Python.

Everything the standard actually asks for, shown in working code — plus the exact difference between an Achieved, Merit and Excellence program.

Curriculum Level 6Text-based languageSubmit: source code + testing evidence
Before you start. The conditions of assessment for this standard say you must not use generative AI, or any tool that automatically writes content, at any stage of developing your program. Use this guide to learn the ideas and practise. The program you hand in, and your testing evidence, has to be entirely your own work.
EN2

Your program must do five things

Explanatory Note 2 is a shopping list. Miss one item and the program can't be marked, no matter how good it is. Tap a requirement to see exactly where a real program satisfies it.

Nothing selected — showing the whole program.

athletics_day.py
EN1

The same program, three grades

Achieved, Merit and Excellence are not "more features" — they're the same job done with more care. Here is one athletics-day program written three ways. Watch what changes.

athletics_day.py
PY

The Python you need — and no more

This standard sits at Curriculum Level 6. You don't need classes, files or libraries. You need these six ideas used well.

Variables & two data types

Store a value under a name. You need at least two types, not just two variables.

Input & output

input() always hands back a string. Convert it before you do maths with it.

Sequence

Lines run top to bottom. Order matters — you can't use a variable before you make it.

Selection

Choose a path. Chain with elif so each time is tested once, not three times.

Iteration

for when you know how many times. while when you're waiting for something to happen.

Collections

A list holds many values under one name. This is the requirement students forget most often.

01

Predict the output

The standard expects you to predict and test outputs. Read each snippet, decide what prints, then check. Getting one wrong is more useful than getting it right.

02

Bug hunt

Every one of these runs without crashing — or crashes for a reason worth knowing. Find the fault, then read the fix.

03

Testing evidence

Half the marks live here and it's the half most people skimp on. A marker needs to see the value you tested, what you expected, what actually happened, and what you changed as a result.

Three kinds of test case

  • Expected — normal input a real user would type. Needed for Achieved.
  • Boundary — the exact edge of a range, and one step either side of it. Boundaries are almost always numbers. Needed for Merit.
  • Invalid — wrong type, empty string, out of range, negative. Needed for Excellence.

Worked example for the athletics program. Every cell is editable — swap in your own program and copy it out.

Case typeInputExpected resultActual resultChange made

Edits here are not saved when you close the page — copy the table out when you're done.

04

Comments and naming

Merit asks for succinct, descriptive names and comments that explain the purpose of a section — not a translation of each line into English. Compare these.

Doesn't earn Merit

The names say nothing, and the comments repeat what the code already says out loud.

Earns Merit

A stranger picking up this code knows what the block is for and why it exists.

05

Before you submit

Work down the list. Everything above your target grade needs to be ticked too — Excellence includes Merit, which includes Achieved.

    Built around AS92004 (Digital Technologies 1.1), Explanatory Notes 1–3 and the Conditions of Assessment published by the Ministry of Education at ncea.education.govt.nz. Always check the current standard and your school's assessment activity — they are the authority, this guide is not.