# 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.

Computational thinking in practice F-2 (parent and teacher activity cards)

A set of printable cards that give simple activity ideas for parents and teachers on each of the six aspects of computational thinking.

Computational thinking in the Australian Curriculum: Digital Technologies

This YouTube video provides examples of computational thinking related to relevant contexts for a range of year bands.

Computational thinking cut out cards

A set of printable cards that gives definitions of the six aspects of computational thinking.

Wolfram Computational Knowledge Engine

Compute expert-level answers using Wolfram’s algorithms, knowledge base and AI technology. Select a category to show how computational thinking helps decompose information to find the solutions to problems.

How to develop computational thinkers

Computational thinking for a computational world

As computational technology advances, it is imperative that we educate young people and working adults to thrive in a computational world. In a computational world, what is important to know and know how to do?

Pencil code program: chaos game

The ‘chaos game’ is a way to see how patterns can result from certain random events. Use this program to run the ‘chaos game’, randomly moving the turtle to create a pattern (for more information, search 'chaos game’). Have students analyze or fill in or change parts of the pencil code program. Based on the original lessons developed by the Exploring Computational Thinking team at Google.

Computational thinking concepts guide

In this guide you will find 11 terms and definitions for Computational Thinking (CT) concepts. These concepts can be incorporated into existing lesson plans, projects and demonstrations in order to infuse CT into any disciplinary subject.

Water water everywhere!

In this lesson, students are presented with the challenging problem of measuring a volume of water using containers that are not the exact measurement size. Students will decompose a complex problem into discrete steps, design an algorithm for solving the problem, and evaluate solution efficiencies and optimisation in a simulation.

Pencil code program: Lady Macbeth chatbot

Use this program to create an interactive chatbot who answers questions as if she is Lady Macbeth. Have students analyse, fill in or change parts of, or use the program to create their own variation and rendition of a character. This program could be used to further your understanding of how you could use Pencil Code in the classroom, as a demonstration or discussion with your students, or as a way to introduce various CT concepts, such as pattern recognition or abstraction, to your students by inviting them to extend the existing functionality of the program.

Finding the shortest path

There are multiple factors to consider when travelling from one place to another. Unless the intent is to see specific points and landmarks, people are often interested in the most efficient way to get somewhere. In this lesson, students will experiment with different ways of creating a path between two points with algorithm design and generalising patterns. From the patterns, they will be able to generate an algorithm for efficiently travelling through cities in a region.

Describing an everyday object

Language is one way to clearly and thoroughly describe the attributes and functions of ordinary everyday objects. In this lesson, students act like the inventor of an everyday object that does not yet exist. Students abstract the essential details, and describe what need would be fulfilled by the new object and how, specifically, it functions. They will then translate the description into a format appropriate for modelling the object in a computer by representing the data in an organised visual format. Pattern recognition will enable them to organise and generalise the description. Based on the original lessons developed by the Exploring Computational Thinking team at Google.

Data compression

In many parts of the world, downloading images from the web can result in expensive data charges and greatly lengthen the time to load a webpage. Software engineers develop algorithms to reduce the size of images and text by looking at patterns in the data. Students will learn how the information in a pixel can be manipulated to change the image, and apply a bitmask filter to an image to remove some information and reduce the memory size of the file. Finally, students will modify the filter to find a balance between quality and small file size. Based on the original lessons developed by the Exploring Computational Thinking team at Google.

Ciphering a sentence

A cipher is a message that has been written in such a way (encoded) that it is unreadable by others. In this lesson, students will use mapping to encode a sentence. Students will work with a partner to create an algorithm that describes the encryption process. They will also examine encoded and decoded messages to recognise patterns to help decode messages and develop strategies to decompose the problem. Based on the original lessons developed by the Exploring Computational Thinking team at Google.

Computational thinking for educators

This interactive course covers the components of computational thinking (CT) using example simulations, programs and exercises that explain CT, and showcase the integration of CT into many subject areas.

This webinar explores how Google Apps for Education resources and initiatives can be used to support the implementation of coding and computational thinking in the classroom.

Kids should code: why 'computational thinking' needs to be taught in schools

This article provides a rationale as to why students should be taught computational thinking.

We can code it!

This compelling article argues that computational thinking should be the new mass literacy.

CAS barefoot computational thinking

BBC computational thinking

Explore this collection of guides and videos about computational thinking.

CSER digital technologies MOOCs

The CSER digital technologies MOOCs are free online courses, designed to support Australian teachers to implement the Australian Curriculum: Digital Technologies.

Computational thinking poster

A poster/infographic that gives a brief overview of the concepts related to computational thinking.

Research notebook: computational thinking - what and why?

This article helps us better understand what computational thinking is, how it relates to other subject areas as well as benefits for students.

Computational thinking

This lesson gives students the opportunity to practise the four arts of computational thinking (decomposition, pattern matching, abstraction and algorithms) in one cohesive activity.

Using the ‘odds and evens’ problem as a springboard, students construct interactive spreadsheets designed to address particular needs. This lesson also demonstrates an approach to programming known as rapid application development (RAD).

Introducing algorithms

Students design a sequence of steps for others to follow. They convey their instructions to peers and evaluate the work of others to determine if the outcome was successful.

Fibonacci served three ways

Students learn to code separate modules that perform discrete functions but collectively meet the needs of the solution. They select the most appropriate algorithm based on the type of problem.

Eco-calculator

Students make a paper prototype of an eco-calculator to demonstrate human impact on the environment and suggest changes in behaviour. This is an unplugged learning sequence with opportunities to extend learning through the development of a Scratch quiz.

There can only be one

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.

Making maths quizzes 1: plan and test our programs

In this sequence students plan, create and edit a program that will ask maths questions that are harder or easier depending on user performance.

Making maths quizzes 2: implementing a digital solution

In this sequence students implement a digital solution for a maths quiz. They test and assess how well it works.

CS Unplugged

CS Unplugged is a collection of activities that introduce students to computational thinking through concepts such as binary, algorithms and data compression.

Behaving with real class

One challenge in teaching object-oriented principles is finding a suitable programming language. Many of these languages are too complex and their environments too confusing. This lesson sequence offers a choice of one of two approaches in an attempt to address this problem.

Who wants to be a millionaire?

Drawing on the well-known wheat/rice and chessboard problem, students use spreadsheets to simulate iteration and to solve problems.

Planting fruit and vegetables

This sequence integrates science as students grow a plant from seed, capture each step and decision as an algorithmic process and record data for future learning.

Seven seasons

Leveraging the Year 10 Geography curriculum, this sequence works with the CSIRO Indigenous seasons calendars. Students produce a searchable database that captures data using the two data sources.

Buzzing with Bee-Bots

Students follow and describe a series of steps to program a floor robot. Plan a route to program a robot to follow a path and write a sequence of steps (algorithm).

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.

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'.

Blockly Games

This series of self-paced interactive games progressively introduces programming concepts, and challenges students to apply these to solve problems.

Code Monster

Code Monster is an interactive JavaScript editor and tutorial for students to learn basic coding concepts.

Cargo-Bot

This webpage is about Cargo-Bot, a game created using Codea, an app for making games.

Hopscotch

Hopscotch is an app for iOS devices that allows students to create their own applications using a visual block-based programming environment.

Move the Turtle

Move the Turtle is a purchasable app for iOS devices designed to teach primary students the basic concepts of programming.

Tynker

Tynker is an online platform designed to teach students how to code using games and stories. Students can learn the fundamentals of programming and design using Tynker's inbuilt visual programming language.

Tickle

This website provides a link to Tickle, a free app that enables you to program various robots and air drones. There are also supporting resources.

OzoBlockly

OzoBlockly gives you the power to fully control Ozobot Bit's movement and behaviour.

John Monash Science School

The journey towards an integrated approach to digital technologies.

myfuture

This website helps users identify a range of careers related to computational thinking and coding.

Bebras

This is an annual international student computational thinking challenge held each September.

Computational and algorithmic thinking (CAT)

This is a one-hour competition where you’ll have to use your problem-solving skills to perform procedures and answer questions.