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.
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
Learn more about it
The CSER digital technologies MOOCs are free online courses, designed to support Australian teachers to implement the Australian Curriculum: Digital Technologies.
This online self-paced module provides an introduction to computer coding and computational thinking.
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 article provides a rationale as to why students should be taught 'computational thinking'.
How to teach it
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).
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.
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.
In this sequence students plan, create and edit a program that will ask maths questions that are harder or easier depending on user performance.
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'.
CS Unplugged is a collection of activities that introduce students to computational thinking through concepts such as binary, algorithms and data compression.
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.
In this sequence students implement a digital solution for a maths quiz. They test and assess how well it works.
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.
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).
For the classroom
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.
Follow, describe and represent a sequence of steps and decisions (algorithms) needed to solve simple problems (ACTDIP004)
Define simple problems, and describe and follow a sequence of steps and decisions (algorithms) needed to solve them (ACTDIP010)
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)
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)
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)