# Computational thinking

## What is it?

Computational thinking describes the processes and approaches we draw on when thinking about how a computer can help us to solve complex problems and create systems. We often draw on logical reasoning, algorithms, decomposition, abstraction, and patterns and generalisation when thinking computationally.

### Australian Curriculum definition

#### Computational thinking

A problem-solving method that involves various techniques and strategies that can be implemented by digital systems. Techniques and strategies may include organising data logically, breaking down problems into parts, defining abstract concepts and designing and using algorithms, patterns and models.

Source:Australian Curriculum: Technologies glossary

How to teach it

## APPLICATIONS & GAMES

For the classroom

## CASE STUDIES

### John Monash Science School

The journey towards an integrated approach to digital technologies

## COMPETITIONS & PROGRAMS

### Level F - 2:

Follow, describe and represent a sequence of steps and decisions (algorithms) needed to solve simple problems (ACTDIP004)

### Level 3 - 4:

Define simple problems, and describe and follow a sequence of steps and decisions (algorithms) needed to solve them (ACTDIP010)

Implement simple digital solutions as visual programs with algorithms involving branching (decisions) and user input (ACTDIP011)

### Level 5 - 6:

Design a user interface for a digital system (ACTDIP018)

Design, modify and follow simple algorithms involving sequences of steps, branching, and iteration (repetition) (ACTDIP019)

Implement digital solutions as simple visual programs involving branching, iteration (repetition), and user input (ACTDIP020)

### Level 7 - 8:

Define and decompose real-world problems taking into account functional requirements and economic, environmental, social, technical and usability constraints (ACTDIP027)

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:

Define and decompose real-world problems precisely, taking into account functional and non-functional requirements and including interviewing stakeholders to identify needs (ACTDIP038)

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)