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.
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.
Learn more about it
This is an online resource for teaching computer science to students. This chapter focuses on programming languages.
This chapter focuses on complexity and tractability.
This article is devoted to demystifying code. It explains what coding is, including programming and programming languages. It provides relevant examples.
Explore a wide range of resources, including videos, interactives, learning guides and lesson plans for secondary computing courses in the UK.
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.
This book viewable online using the 'look inside' feature or purchased in hard copy provides a comprehensive guide to programming for all levels.
How to teach it
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.
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.
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'.
In this assignment, students design a program that asks the user to guess ten numbers that were generated pseudo-randomly.
For the classroom
Python is a free programming language. This webpage includes resources for learning to program with Python.
This website provides tools and materials for teaching and learning computational thinking, problem-solving, and computer programming across secondary year levels.
Code Monkey is a fun and educational game environment where students learn to code in a real programming language, no previous experience needed.
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.
Learn coding languages. A free account allows access to 13 courses. There are more available if you subscribe. Explore Python, Java, C++, iOS and more. (Purchase required to access all courses.)
What other schools are doing
Programming interactive music
Teacher Tony Hill explains how he implemented programming interactive music in his Year 8 class
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.
Students share and extend learning
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)
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)