Select a topic across a two year cycle

Recommended any combination of three topics per year.
Choose a combination of units that suits your students and context.

JAN DEC

Cycle two (Year 10)

Cycle one (Year 9)

Jan Jun Dec

Cycle two (Year 10)

Jan Jun Dec

Overview

This unit builds on the algorithm design and general-purpose programming skills developed in years 7–8, continuing in the use of Python or JavaScript.

Students practise using logical operators such as OR, NOT and AND in their algorithms. They employ formal validation in their code and use test cases for testing it. They are introduced to data structures like lists in their code implementation, and practise using debugging tools to step through and analyse their code.

Finally, they explore the object-oriented paradigm for organising code.

By the end of Year 10 students design and validate algorithms and implement them, including in an object-oriented programming language.

  • use flowcharts and pseudocode to follow and design algorithms
  • code and test programs in a general-purpose programming language capable of object-oriented programming (OOP), such as Python or JavaScript
  • utilise data structures such as lists
  • understand the purpose and foundational concepts of OOP.

This unit focuses on building specific skills through concept exploration and exercises in pure code implementation without the use of robots or electronics (though these can also be valid contexts for developing these skills).

The final topic Object-oriented programming provides a limited number of resources for exploring the object-oriented paradigm with students of both Python and JavaScript.

ProgrammingImage

Assessment

Use this work sample WS01 - Digital project: Python game development as a guide for how you can assess student’s understanding, skills and process related to programming.

Use this rubric as a starting point for assessment of object-oriented programming (OOP).

1 (limited) 2 (basic) 3 (proficient) 4 (advanced)
Knowledge of OOP principles with guidance can identify basic elements of OOP describes the basic concepts of OOP, including the purpose of classes and objects describes the concept of OOP, including the purpose of classes and objects providing relevant examples describes the concept of OOP in detail, including the purpose of classes and objects providing relevant examples and explains the benefits
Programming a digital solution using OOP principles with guidance is able to build some classes for the design builds correct classes for the design builds relevant classes for the design, organising code effectively, and integrating classes into a single correct working program creates a well-structured program that integrates classes including at least one correctly working feature to their program

Unit sequence

This topic offers 3 pathways

Designing algorithms

What is this about?

Students build and consolidate their knowledge and skills in the design of algorithms represented as flowcharts and as pseudocode. They practise using logical operators such as OR, NOT and AND. They employ formal validation such as existence, range and type checks, and use test cases to systematically test their algorithms against design criteria.

As a specific area of algorithm design, students compare sorting algorithms; that is, different procedures for working through an unsorted set of values to arrive at a sorted set.

Content description

Design algorithms involving logical operators and represent them as flowcharts and pseudocode AC9TDI10P05

Validate algorithms and programs by comparing their output against a range of test cases AC9TDI10P06

This sequence enables students to:

  • design algorithms as flowcharts and pseudocode
  • understand and use logical operators such as OR, NOT and AND
  • understand and use formal validation such as existence, range and type checks
  • write and apply test cases.

Supplementary information

While this topic appears before the implementation topics in this unit, students in years 9 and 10 may benefit from performing algorithm design and testing in tandem with code implementation, rather than as a completely separate activity.

Resources to include

Resources to introduce

Resources to develop and consolidate learning

Resources to extend and integrate learning

Further reading and professional learning

Programming in Python

What is this about?

Students continue to build their skills in Python, a popular general-purpose programming language for secondary years that emphasises readability of code. Using Python, students can implement algorithms as programs organised with functions. Python also gives the programmer a range of data structures to use, from the basic list to tuples and dictionaries.

Most development environments for Python provide debugging tools, allowing students to step through their programs line by line as they run, and query the values of variables.

Content description

Design algorithms involving logical operators and represent them as flowcharts and pseudocode AC9TDI10P05 

Validate algorithms and programs by comparing their output against a range of test cases AC9TDI10P06

Implement, modify and debug modular programs, applying selected algorithms and data structures, including in an object-oriented programming language AC9TDI10P09

This sequence enables students to:

  • write and test code in Python, organising their code with functions
  • understand and use data structures such as lists and dictionaries
  • use debugging tools in their Python development environment
  • optionally, explore how to create a graphical user interface (GUI) for their Python applications.

 

Resources to include

Resources to introduce

Resources to develop and consolidate learning

Resources to extend and integrate learning

Further reading and professional learning

Programming in JavaScript

What is this about?

Students continue to build their skills in JavaScript, a general-purpose programming language. Using JavaScript, students can implement algorithms as programs organised with functions, and can use data structures such as arrays (also called lists).

Many development environments for JavaScript provide debugging tools, allowing students to step through their programs line by line as they run, and query the values of variables.

Content description

Design algorithms involving logical operators and represent them as flowcharts and pseudocode AC9TDI10P05 

Validate algorithms and programs by comparing their output against a range of test cases AC9TDI10P06

Implement, modify and debug modular programs, applying selected algorithms and data structures, including in an object-oriented programming language AC9TDI10P09

This sequence enables students to:

  • write and test code in JavaScript, organising their code with functions
  • understand and use data structures such as arrays
  • (if possible) use debugging tools in their JavaScript development environment.

Supplementary information

A common application of JavaScript is in web development, where webpage elements (images, text and links) can serve as a graphical user interface (GUI) for JavaScript. This particular application is explored in the final topic of the Webpage design unit.

Resources to include

Resources to introduce

Resources to develop and consolidate learning

Resources to extend and integrate learning

Further reading and professional learning

Object-oriented programming

What is this about?

Whether using Python, JavaScript or another suitable language, the object-oriented paradigm is a way of organising code that is often considered more natural and effective than simply using isolated functions. This is particularly the case as programs become longer and more complex.

Object-oriented programming (OOP) means defining and using objects that collect together the data and functionality for something in a program, such as a sprite in a video game, or a pet in a veterinary database interface system. An object is defined by writing a class, a section of code that comprises the relevant variables and functions (methods) for that object. Then, instances of an object can be made and used by calling on its class code.

Content description

Design algorithms involving logical operators and represent them as flowcharts and pseudocode AC9TDI10P05 

Validate algorithms and programs by comparing their output against a range of test cases AC9TDI10P06

Implement, modify and debug modular programs, applying selected algorithms and data structures, including in an object-oriented programming language AC9TDI10P09

 

This sequence enables students to:

  • explore foundational concepts of object-oriented programming
  • write and use their own object definitions (classes) in Python or JavaScript.

Supplementary information

Both Python and JavaScript provide the ability to write object definitions (classes), so both languages are OOP languages. Other such languages include C++, C#, Java, Ruby, Swift and Perl.

Resources to include

Resources to introduce

Resources to develop and consolidate learning

Resources to extend and integrate learning

Further reading and professional learning