A Guide to Coding and Computational Thinking Across the Curriculum
- Curriculum structure K–12
- Developing coding and computational thinking skills
- Computational thinking in the K–10 curriculum
Computational thinking is the thought processes involved in formulating a problem and expressing its solution(s) in such a way that a computer – human or machine – can effectively carry out.
Informally, computational thinking describes the mental activity in formulating a problem to admit a computational solution. The solution can be carried out by a human or machine. This latter point is important. First, humans compute. Second, people can learn computational thinking without a machine. Also, computational thinking is not just about problem solving, but also about problem formulation.1
The Digital Careers organisation says that students need experience and skills in computational thinking and computer programming (coding) to be successful in their future careers.2 The NSW syllabuses provide a range of opportunities to develop students’ understanding of computational thinking and coding.
This guide draws out the areas where computational thinking can be applied within the existing NSW K–8 syllabuses. Like the syllabuses, it is organised into stages of learning and subdivided into learning areas, with suggested activities and links to online resources.
Not all resources and activities listed in this guide refer to coding explicitly, but they do aim to develop algorithmic and computational thinking skills to better enable students and teachers to reach a coding goal.
Curriculum structure K–12
NESA mandatory curriculum requirements provide all NSW students with the same guarantee in terms of access to learning opportunities.
Early Stage 1 | Stage 1 | Stage 2 | Stage 3 | Stage 4
All primary students engage in the K–6 key learning areas (KLAs):
- Science and Technology
- Creative Arts
- Physical Development, Health and Physical Education (PDHPE)
- Human Society and Its Environment (HSIE), including History and Geography.
This continues as students engage in learning from Years 7 to 12. Study in each of the 7–10 KLAs is mandatory for the award of the Record of School Achievement:
- Human Society and Its Environment
- Languages other than English
- Creative Arts
- Personal Development, Health and Physical Education.
For the purposes of this guide, ‘coding’ refers to computer programming, where a ‘high level’ programming language is used to instruct a computer device to perform certain functions. High level languages are similar to spoken languages but have special commands that are understood by an interpreter (coder) to enable a computer’s central processor to understand them.
The term ‘computational thinking’ comes predominantly from the work of Jeannette Wing in recent years but stems from the early work of Seymour Papert, who himself was a student of Jean Piaget. Jeannette Wing defines computational thinking as ‘the thought processes involved in formulating problems and their solutions so that the solutions are represented in a form that can be effectively carried out by an information-processing agent’. She uses the term ‘computational thinking’ to describe ‘the mental activity in formulating a problem to admit a computational solution. The solution can be carried out by a human or machine, or more generally, by combinations of humans and machines’.3
The Centre for Computational Thinking at Carnegie Mellon University in Pittsburgh in the United States uses the following definitions:
- Computational thinking is a way of solving problems, designing systems, and understanding human behavior that draws on concepts fundamental to computer science …
- Computational thinking means creating and making use of different levels of abstraction, to understand and solve problems more effectively.
- Computational thinking means thinking algorithmically and with the ability to apply mathematical concepts such as induction to develop more efficient, fair, and secure solutions.
- Computational thinking means understanding the consequences of scale, not only for reasons of efficiency but also for economic and social reasons.4
An algorithm is a set of rules that tells you what to do in a given set of circumstances, for instance ‘If the traffic light is red, I stop’. Creating an algorithm simplifies decision-making and increases the efficiency of a procedure. ‘Algorithmic thinking’ is the ability to think in terms of algorithms as a way of creating solutions.
Developing coding and computational thinking skills
Computing is ubiquitous, with application areas in virtually any field imaginable – from developing gene-sequencing algorithms, to designing methods for high frequency trading, creating computer-generated graphics and special effects, analyzing social data from internet communications, and creating embedded real-time systems for medical devices. In fact, according to the [US] National Science Foundation, ‘[K]nowledge of computer science and computer programming is becoming a necessary skill … in marketing, advertising, journalism, and the creative arts.’ 5
Current approaches to the use of information and communication technology (ICT) and computing applications revolve around the concepts of CS + X: computing science plus whatever it is that you are passionate about or engaged with. IT systems are becoming more commonplace and all-pervasive, and the development of the Internet of Things and machine-to-machine communication standards will further our reliance on them.
In response to the need for a higher level of literacy around computer programming (coding) that this will create, the Federal Government has initiated an increased focus on science, technology, engineering and mathematics (STEM) and on innovation in Australian schools. This will aim to provide students with the coding and computational thinking skills that will be essential for their future careers.
The 2015 report by Deloitte Access Economics for the Australian Computer Society makes clear the future need for STEM-capable workers: ‘Demand for ICT workers in Australia is forecast to increase by 100,000 workers over six years, from around 600,000 workers in 2014 to more than 700,000 workers in 2020.’ 6
Academic work supports the inclusion of algorithmic and computational thinking in schooling. It is becoming more common in world curricula to teach coding, with examples in the United States, the United Kingdom and Finland. The recently developed National Curriculum in England includes Computing, which includes coding. This supports STEM initiatives currently emerging in developed nations where the manufacturing economy is being elevated to that of the service economy and ICT is being used and embedded in all careers and in all aspects of life.
Where reference is made to ‘visual programming’ this is to mean that the programming interface used by students is of a visual or graphical rather than textual nature. Updated lists can be found at Wikipedia and a summary is provided here:
- App Inventor for Android
- GameMaker: Studio
- Kodu Game Lab
- Scratch and ScratchJr
- Visual Logic
Where reference is made to a ‘non-visual programming language’ this refers to the interface being text based. This is generally considered more difficult, as the level of abstraction is higher than for visual languages. There are many languages that are used in education. A list is available at Wikipedia and a summary is provided here:
- BASIC including QuiteBASIC, Small Basic, FreeBASIC, QB64
- NetBeans (Java)
Software that enables students to interface with the outside world via the Internet of Things includes:
Additionally, hardware devices include; Intel Edison, Intel Galileo, Raspberry Pi, Orange Pi, BeagleBone, Makey Makey, littleBits, Arduino, Micromite, Intellecta and a growing list of other providers.
Online professional development opportunities for teachers can be found at the following:
- Code Avengers
- Girl Develop It
- Grok Learning
- Khan Academy
- MIT Open Courseware
- University of Adelaide
This coding across the curriculum document is provided to assist teachers to engage with computational thinking at a level comfortable for them and in their own context.
All links were active in October 2015.
The NSW Technology curriculum has a long history of embedding design thinking into syllabuses, giving students opportunities to ‘think outside the box’, be innovative, learn to fail in a process leading to success, and develop the skill to forestall final answers and solutions so that better solutions may be found. These are fundamental concepts in technology and engineering education, design and technology education, and STEM education, and they underpin the skills necessary for computational thinking.
This guide shows how the existing NSW syllabuses can be used to develop computational thinking across the curriculum.
Computational thinking in the K–10 curriculum
The K–10 curriculum documents refer to Working Mathematically, Working Scientifically, Working Technologically, historical inquiry, geographical inquiry skills, problem-solving, critical thinking and design processes. These thinking processes are analogous to computational thinking and develop students’ abilities to think abstractly – a key aspect of computational thinking.
The English syllabus allows teachers to develop integrated units of work that may emphasise areas of focus, such as computational thinking, and its application in the real world. The support document Suggested texts for the English K–10 Syllabus provides examples of texts that require computational thinking, for example encouraging analysis of the content and layout of a text, and providing opportunities for problem-solving and abstraction from a given situation.
The Mathematics K–10 Syllabus includes many opportunities for applying mathematical concepts in computational thinking. Applied mathematics problems are the best way to integrate computational thinking as they enable students to experience and visualise mathematical concepts and see a practical application. Examples include:
- Stage 2: Two-Dimensional Space 1 and Position 1
Using coding software, manipulate and draw 2D shapes including special quadrilaterals. When programming the movement of the cursor using programs such as Pencil Code, this exercise includes elements of Position 1 for directions and distance between points.
- Stage 1: Multiplication and Division 2
Explore the use of repeated addition to count in practical situations, eg create an algorithm (procedure) to count the number of people in a room using simple algebra. See the YouTube clip What's an algorithm? by David J Malan, which uses this example to demonstrate the nature of algorithms, explaining that ‘Algorithms are a set of instructions to solve a problem’.
Science and Technology
Computational thinking is a major part of the Science K–10 (incorporating Science and Technology K–6) Syllabus and is seen in the use of applied problem-solving and construction. Designing, making, data collection and analysis are incorporated into the skills categories Working Scientifically and Working Technologically. After researching a problem, students should be given an opportunity to explore concepts by applying knowledge in experiments and designing models through personal and collaborative inquiry.
Computer coding can be used in the creative arts to design and develop artworks and program devices to create artistic works.
Physical Development, Health and Physical Education (PDHPE)
Computer applications are now commonplace in health, sport and physical development. Tracking physical activity and health status is a growing field.
Human Society and Its Environment (HSIE), including History and Geography
The ability to ‘step back in time’ with virtual or augmented reality combined with GPS tracking is available to those with a smart device.
GPS, mapping technologies and the interconnectedness of devices make geographical study more engaging for students.
The collection and analysis of data in historical and geographical contexts provides opportunities for students to engage in digital technologies.
Solving problems, understanding and reproducing language systems, and understanding human behaviour in a global context are essential elements of language programs. In Language classrooms students learn to decode and code language systems. Research suggests that even a brief exposure to a languages program fosters flexible cognitive processing, divergent thinking and intercultural awareness. The use of translation software can illustrate algorithmic thinking, as can the development of speech to speech translation systems.
Activities, projects, lesson plans, tutorials
- Alice Keeler (US) (blog on computing in the classroom)
- BBC Bitesize (UK) (free activities across the curriculum)
- Edutopia.org (free activities across the curriculum)
- Google CS First (US) (free guided group activities and games)
- Google Earth Tutorials
- Hands On Science (Aus) (free science projects)
- Keith’s Think Zone (US) (free activities across the curriculum)
- Khan Academy (US) (free activities across the secondary curriculum)
- Make (US) (free projects and kits to purchase)
- Math at Home (US) (free mathematics activities)
- Math Is Fun (US) (free mathematics activities)
- MathsLinks (Aus) (free mathematics activities)
- NCES Kids’ Zone (US) (free mathematics, statistics and graphing tools and activities)
- Read Write Think (US) (free resources for reading and writing)
- Reading Rockets (free literacy resources)
- Science Buddies US (free projects and kits to purchase)
- Scootle (Aus) (resource database)
- The Tinkering Studio (US) (creative projects)
- Topmarks (UK) (free activities)
- W3Schools (free tutorials on programming languages)
- BASIC Stamp
- Google CS First - Music & Sound
- Little Bird Electronics
- MaKey MaKey
- Raspberry Pi
- Makedo (projects created from recycled materials)
- MaKey MaKey (use domestic objects as programming tools)
Create games, stories, illustrations, music
- Alice (create narratives, cartoons, videos)
- ArtRage (paint digitally)
- Audacity (compose music with Windows or Mac)
- Book Creator for Android
- Book Creator for Apple
- Educreations (free)
- Gamestar Mechanic (free introduction)
- GarageBand (compose music on Mac)
- iBooks Author (create books on Mac or iPad)
- Inkscape (artistic and mathematical drawing)
- Kodu (free download for Windows)
- Make Pixel Art (free)
- Pixton (make comics/cartoons)
- SketchUp (draw in 3D)
- Sploder (free website)
- StoryBuddy 2
- Unity (game development platform)
- Blockly (free app)
- Brackets (free web development tool)
- Cargo-Bot (free)
- Dash & Dot
- Frozen programming game (free first hour)
- Google CS First
- Google Web Designer (free web development tool)
- Lightbot (free)
- Pencil Code (free)
- Scratch (free website)
- ScratchJr (free app)
- Turtle Academy (free website to create shapes and patterns)
Programming without a computer
- Autodesk (free design and animation software)
- AutoDesk 123 (free 3D modelling apps)
- Autodesk 123D Circuits (free online circuit simulator)
- Circuit Scribe (pens and kits to create circuits)
- eSafety (Australian government site outlining online safety)
- Gapminder (online data warehouse)
- Google Analytics
- Google Docs (create, edit and share documents)
- Google Drive (store and share files)
- Google Earth (free website – satellite images)
- Google Forms (create forms and surveys)
- Google Maps (free website)
- Google Spreadsheets (create spreadsheets and analyse data)
- iTunes (eg apps for authoring)
- Knight Lab Timeline (free online timeline creator)
- littleBits (purchase electronic components and view student projects)
- MIT app inventor (free software to create apps)
- Modern Teaching Aids (robotics resources)
- NCES Kids’ Zone (US) (free mathematics, statistics, graphing tools and activities)
- Online Charts (free online graphing tools)
- Pencil Code
- Pencil Code Online Guide
- Pi Day (piday.org)
- PTC Creo Academic CAD software
- Siemens Solid Edge Acadmic CAD Software
- Teach Pi (teachpi.org)
- VidCode (Creative coding using video)
- Weebly (free website builder)
- Wix (free website builder)
- Wolfram|Alpha (free analytic and calculating tool across a wide range of information)
- What's an algorithm? (YouTube clip by David J Malan)
 JM Wing, ‘Computational thinking benefits society’, Social issues in computing, blog entry, http://socialissues.cs.toronto.edu/2014/01/computational-thinking/,10 January 2014.
 See the Digital Careers website at http://digitalcareers.edu.au/parents/.
 JM Wing, ‘Computational Thinking: What and Why?’, Carnegie Mellon University, School of Computer Science, https://www.cs.cmu.edu/~CompThink/resources/TheLinkWing.pdf, 17 November 2010.
 Center for Computational Thinking, Carnegie Mellon University, ‘What is computational thinking?’, www.cs.cmu.edu/~CompThink/.
 Department of Computer Science, University of Illinois, ‘CS + X’ http://cs.illinois.edu/prospective-students
 Australian Computer Society, Australia’s Digital Pulse, prepared by Deloitte Access Economics, https://www.acs.org.au/content/dam/acs/acs-documents/PJ52569-Australias-Digital-Pulse-2016_LAYOUT_Final_Web.pdf , 2016.