General-purpose programming

Decorative image

What is it?

Programming is the process that makes it possible to create computer software, applications and websites. Currently, computers are unable to think for themselves, therefore they require users to give them sets of ordered instructions to know what to do. This is referred to as 'code'. Most of the resources you use on the computer and internet are made with code. Programming is a core element of the Digital Technologies curriculum because it helps students develop essential skills such as problem-solving, logic and critical thinking.

General-purpose programming, also known as text-based programming, is one of the coding languages prescribed in the Australian Curriculum: Digital Technologies for secondary schools. This type of language is used to create programs by typing letters, numbers and symbols and requires programmers to use formal syntax.

Object-oriented programming is the second coding language prescribed in the Australian Curriculum: Digital Technologies. In this type of language, users define not only the data type within a data structure, but also the types of operations that can be applied to the data structure.

Australian Curriculum definition

General-purpose programming languages

Programming languages in common use designed to solve a wide range of problems. They include procedural, functional and object-oriented programming languages, including scripting and/or dynamically typed languages. Examples of general-purpose programming languages include C#, C++, Java, JavaScript, Python, Ruby and Visual Basic. They do not include declarative programming languages such as Prolog or structured query language (SQL), or languages designed for solving domain-specific problems or for pedagogical reasons.

Object-oriented programming language (OOP)

A programming language that supports the object-oriented programming paradigm. In object-oriented programming, objects represent a combination of data (the attributes of an object) and actions that can be performed on or with those data (the methods of the object). An example might be a declaration of a 'car', which has attributes that describe its physical nature (such as the number of doors, its colour, the size of the engine) and the actions it can perform (such as accelerating, braking and turning).

The valid attributes and methods of an object are defined by its class, and these attributes and methods can be inherited from the definition of another class. Examples of OOP languages include C++, Eiffel, Java, Python and Scala.

Source: Australian Curriculum: Technologies glossary

Decorative image

CS Unplugged: Field guide: Programming languages

This is an online resource for teaching computer science to students. This section focuses on programming languages.

Decorative image

CS Unplugged: Field guide: Complexity and tractability

This section focuses on complexity and tractability.

Decorative image

CS Unplugged: Field guide: Coding – Introduction

This section is an introduction to coding.

Decorative image

CS Unplugged: Field guide: Coding Error control

This section focuses on error control in coding.

Decorative image

CS Unplugged: Field guide: Coding Encryption

This section focuses on encryption in coding.

Decorative image

CS Unplugged: Field guide: Coding Compression

This section focuses on compression in coding.

Decorative image

What is code?

This article is devoted to demystifying code. It explains what coding is, including programming and programming languages. It provides relevant examples.

Decorative image

Code Stars: Short film

This video helps learners and educators to understand the significance of computer programming literacy in a technological world.

Decorative image

BBC secondary computing

Explore a wide range of resources, including videos, interactives, learning guides and lesson plans for secondary computing courses in the UK.

Decorative image

Grok Learning

Grok provides online interactive programming courses for individuals in Python, HTML, CSS and Blockly at all levels.

Decorative image

Quickstart: A CPD toolkit for secondary teachers

Quickstart is a continuing professional development (CPD) resource that provides the essential tools to develop a course. It helps secondary teachers figure out how to teach a creative and innovative computing curriculum underpinned by computational thinking.

Decorative image

Why basic coding should be a mandatory class in junior high

This article argues that teaching basic coding in secondary schools is a must.

Decorative image

A-Z Handbook on Teaching Introductory Programming

This book viewable online using the 'look inside' feature or purchased in hard copy provides a comprehensive guide to programming for all levels. 

Decorative image

coding@home TV

The Queensland Department of Education partnered with Channel 10 to deliver coding@home TV for primary and secondary students. Episodes enable students to engage in real-world coding problems and solutions, and connect with industry partners.

Decorative image

Computer Science For Fun (CS4FN)

Read articles about computational thinking and computing science.

Decorative image

Behaving with real class

This lesson sequence offers approaches to teaching object-oriented principles using text-based programming. It attempts to address the problem that many programming languages are too complex and their environments too confusing for many students.

Decorative image

Getting warmer

This lesson sequence intentionally uses a visual-based programming tool to introduce designing and validating algorithms. Those students who complete this task can move to code the result in any text-based language with which they are familiar.

Decorative image

Breaking up can be good

This sequence provides a gentle introduction to the skill of decomposition by having students develop discrete modules that together serve a single need: a maths teacher asks for a program that can be used to demonstrate aspects of maths. This sequence can be used in conjunction with 'Comparing and selecting appropriate algorithms'.

Decorative image

There can only be one

In this lesson sequence students write a simple suite of programs that can be used to facilitate an SRC election though the collection and processing of data. It assumes that students have been introduced to Python programming language.

Decorative image


In this project, students program the fun and challenging game of Sudoku using Python programming language.

Decorative image

Project Euler

This is a collection of mathematical problems to solve using programmatic techniques.

Decorative image


In this project, students build a battleship-playing program using Python.

Decorative image


Python is a free programming language. This webpage includes resources for learning to program with Python.

Decorative image


Tynker is an online platform designed to teach students how to code using JavaScript or Python by creating games and stories.

Decorative image


This website provides tools and materials for teaching and learning computational thinking, problem-solving, and computer programming across secondary year levels.

Decorative image

Khan Academy: Computer programming

Learn how to program using JavaScript and Processing JS, SQL, or how to create webpages with HTML and CSS.

Decorative image

Code Monkey

Code Monkey is a fun and educational game environment where students learn to code in a real programming language, no previous experience needed.

Decorative image

Python to support the Digital Technologies curriculum

This resource includes a link to download the Python programming software and another link to a free online course by Codecademy to learn how to program in Python.

Decorative image


Greenfoot uses a simple interface to teach object orientation using Java. Students create 'actors' that live in 'worlds' to build games, simulations and other graphical programs.

Decorative image

Coding Bat

This site provides a range of exercises to practise coding and to build coding confidence in Java and Python.

Decorative image

iD Tech

Improve or advance skills with year-round Online Private Lessons, spring and summer Virtual Tech Camps and Academies, and autumn and winter semesters.

Decorative image

Swift Playgrounds

Swift Playgrounds is an app for iPad that helps students learn and explore coding in Swift, the same powerful language used to create professional apps.

Decorative image

Naracoorte High School: Programming interactive music

Teacher Tony Hill explains how he implemented programming interactive music in his Year 8 class.

Decorative image

SPRK Education Program

Using a SPRK Sphero for programming, robotics, and maths for students.

Decorative image

Khan Academy: Khan Academy: Meet the professionals

Short case studies of professionals in computing science who explain how they use their computer science and programming skills in their work.

Decorative image

AISSA Humanoid Robot Research Project

Thomas and Pink are two humanoid robots that are making programming and robotics exciting and intellectually stimulating learning frontiers for students in Independent schools in South Australia.

Level 7 - 8:

Design algorithms represented diagrammatically and in English, and trace algorithms to predict output for a given input and to identify errors (ACTDIP029)

Implement and modify programs with user interfaces involving branching, iteration and functions in a general-purpose programming language (ACTDIP030)

Level 9 - 10:

Design algorithms represented diagrammatically and in structured English and validate algorithms and programs through tracing and test cases (ACTDIP040)

Implement modular programs, applying selected algorithms and data structures including using an object-oriented programming language (ACTDIP041)