Learning Mind

How to Use Computational Thinking to Solve Problems Like a Pro

  • Post author: Janey Davies, B.A. (Hons)
  • Post published: August 16, 2020
  • Reading time: 6 mins read
  • Post category: Brain Power / Self-Improvement

Can thinking like a computer help us solve our most difficult problems? You might wonder ‘ what is the point of computational thinking? ’ After all, we invented computers to help solve our most difficult problems. Why would we now want to think like them?

Well, there are a few reasons. The first reason is practical. It is not realistic to expect computers to solve every problem. After all, they don’t take into account human emotions or local knowledge.

The second reason is a moral one. Perhaps we shouldn’t rely on computers to solve everyday problems. I mean, who hasn’t seen sci-fi films like Terminator or the Matrix? We can’t allow them to have too much power over us.

But this is not the point of my article. My point is how to use computational thinking to help with everyday problems.

What exactly is computational thinking?

You might think that computational thinking is a very longwinded way of solving problems, but actually, we do it every day. Just think about it.

Computational thinking

Computational thinking is exactly what you imagine it to be. It is a way of thinking like a computer . In fact, we already use it in our everyday lives. When we cook a meal or get ready for work. When we budget for the weekly shop or plan a trip to the coast.

Computational thinking just means using a set process in which to break down a complex problem . By using this set process, you follow the set technique and find a solution.

For example, if you were to cook a meal, you wouldn’t just blindly throw lots of ingredients into a pan and hope for the best. You would consult a recipe book, go out and buy the correct ingredients, weigh them and then, following the instructions – cook them in the correct order.

Or say you were planning a holiday abroad. You would research suitable resorts and hotels. If you have children, you may look at child-friendly locations. You will look at the cost of flights and the times of departure and arrival. You’ll budget your expenditure and arrange for pickups to and from the airport. After carrying out all of the above, you’ll make a decision and book your holiday.

These are both examples of computational thinking. There are four steps in computational thinking:

Four steps in computational thinking

Decomposition.

Taking the problem and breaking it down into smaller components.

Pattern recognition

Looking for patterns within these smaller components.

Abstraction

Focusing on the important details and leaving out irrelevant distractions.

Finding steps to solve the smaller problems which will then lead to a solution for the main problem.

You can use computational thinking in many aspects of your life. However, it is particularly helpful when it comes to solving everyday problems . That’s because it breaks down a complex problem into manageable parts.

For example:

You get in your car one morning and the engine doesn’t start. Obviously, you don’t give up, instead, you try and sort out the problem. So where do you start?

By breaking down the components.

Is it cold outside? Do you need to give the engine some gas? Did you remember to put in the anti-freeze? Is the car in gear? If so put the gear in neutral and try again. Have you run out of petrol? Does the car have oil and water?

Now you can see that beforehand we had one main problem – the broken-down car. Now, we are dividing the car into different sections which are easily managed.

We can examine each section without getting overwhelmed at the scale of the problem. By doing this, we can also look for patterns in each section. Have we experienced this before? For instance, did our car fail to start on a previous occasion because we had left it in gear?

When you have one main problem, it is easy to get distracted by all the tiny little irrelevant details. By breaking it down into bitesize manageable portions, you can keep what is important in mind and discard what is not.

So with our car break-down, we won’t be concerned with things like the condition of the tyres or whether the windscreen wash is topped up. We are solely focused on what is causing the car not to work.

Now that we have broken our major problem into more manageable ones, it has become easier to identify what is wrong. We can now address the problem and find a solution.

So with our broken down car, once we have identified what is wrong we can fix the problem.

Why is computational thinking important?

Being able to think in this way is important for a variety of reasons.

We retain control

First of all, solving problems in a logical and measured way allows a person to remain in control of a situation. When we can analyse and predict what is going to happen, we are likely to learn from our experiences.

We become confident

By solving problems we become confident and learn to challenge ourselves. We acquire skills that boost our self-esteem . Every stage of computational thinking is an opportunity for learning, and, as a result, self-improvement.

We are not overwhelmed

By breaking down a complex problem we learn not to be overwhelmed by a seemingly insurmountable task. Then we start to recognise patterns once we have broken the task down. This comes with experience. Experience also teaches us what to discard and what is important in solving this problem.

All of these steps are vital life lessons that are useful in our everyday lives.

Final thoughts

Computational thinking isn’t really about programming people to think like a computer. It is about teaching people the four fundamental steps to solve our everyday problems . Why not try it next time you are faced with a complex problem and let me know how you get on?

References :

  • royalsocietypublishing.org
  • www.researchgate.net

power of misfits book banner desktop

Like what you are reading? Subscribe to our newsletter to make sure you don’t miss new thought-provoking articles!

Share this story share this content.

  • Opens in a new window Facebook
  • Opens in a new window X
  • Opens in a new window LinkedIn
  • Opens in a new window Reddit
  • Opens in a new window Tumblr

This Post Has 2 Comments

problem solving steps using computational thinking

Janey, Thank you for another great article. I recently came to the realization I can’t just say I’m gonna clear out the back bedroom, currently collecting all kind of stacks of everything. The reason I can not start this much long overdue and very needed project is I have not a clue as to where to start. Now I am entertaining a plan, I’ll need a hand at least to get started. You inspire me. Carol

problem solving steps using computational thinking

Thank you Carol, I think we have the same back bedroom! Let me know how you get on! Thank you for your continued reading and support. It is always appreciated. Janey.

Leave a Reply Cancel reply

Save my name, email, and website in this browser for the next time I comment.

the power of misfits black friday

  • Lesson 1: What is computational thinking?
  • Edit on GitHub

Lesson 1: What is computational thinking? 

Being able to think is one of the hallmarks of being a human being - especially meta thinking which involves thinking about your own thoughts. We often overlook the complexity of thinking because it comes so naturally to us. It seems so easy because we do it everyday with little to no thought about how the process works. It only becomes apparent that it is complex when something or someone interrupts our thought process e.g. try explaining a specific idea you have to someone in one or two sentences; or try follow a lecture in a topic you don’t know anything about. These tasks become difficult because in our daily life we strip away what we can safely assume to make communication easier and more effective. This stripping away of “unnecessary” information becomes a problem when we need it. This is most prominent when working with computer programming because a computer cannot assume any information, so you have to provide commands without exception. This means that you have to adjust your thinking slightly to work through problems in the same way a computer program would. This isn’t as daunting as it sounds because it is quite straightforward and it can also help with the way in which you solve problems outside of programming too.

The main purpose of computational thinking is to identify problems and solve them. This seems simple, but problems themselves can be quite complex and made up of different parts, each of which forms its own separate problem. The complex nature of problems can make them seem to be overwhelming, but when you follow a few simple steps, you are able to break them down into manageable pieces. This is very effective because not only does it work for computational problems, but it also works for most problems you will face in life. There are four key steps in this process:

Decomposition

Pattern recognition

Abstraction

Algorithmic thinking

Using these four components, you will be able to successfully solve problems by “dividing and conquering” them. There are also some additional factors that need to be considered that are not directly related to the core way of solving the problem - constraints. There could be several constraints that you are facing which were unforeseeable, imposed upon your project or factors that weren’t considered when starting. In this course, you will learn to use these four components as well as how to deal with constraints and what you can do to mitigate the effects of them.

Another point that is important to understand involves the following three words: what , why and how . It is always important to understand what you are doing because if you don’t understand that then you cannot reorientate yourself when you face problems in your project. In the same way, you need to understand why you are doing something. Keeping a goal in mind when you break down a problem into smaller pieces will keep you focused on the big picture even when you are working on the smaller issues. This is vital for not losing sight of what your final goal is. Lastly, having a clear understanding of how you are going to do something will put an element of realism to a project and reveal any potential unrealistic expectations right in the beginning. These are three important components to keep in mind when you are working on any step of the computational thinking process. They are supplementary because even though they help keep you on track, you still need the plan and the action to achieve the goal.

This course will teach you how to effectively use these concepts to become a self-sufficient learner and problem-solver. Not only in the computational world, but also in the real world where you are faced with problems that are much less logical and solutions that are suboptimal at best. The principles behind both real world and computational problems are essentially the same, so these lessons are applicable in most - if not all - domains of study and life. The main point you need to keep in mind is that the purpose of the exercises isn’t necessarily to achieve that specific goal, but it’s rather to go through the process so that you learn the formula to achieve any goal.

The four components of computational thinking 

1. decomposition .

In simple terms, decomposition is the process of breaking down a large problem into smaller problems. There are a few reasons why this is helpful in the bigger picture. It gives you insight into the practicalities associated with solving the problem. You can view the smaller tasks with more understanding of what needs to be done because the goal is clearer. This can help you develop actionable steps and get started on solving them. Image for a moment you moved to a new house and there is nothing in it yet, but you want to make a cup of coffee after a day of moving. This seems like a simple enough problem to solve - except that it isn’t. You are actually dealing with a complex problem because it’s made up of several problems disguised as one, so the problem actually seems to be impossible. You cannot make coffee because you don’t have any of the ingredients in your house. So there are two main tasks to solve: buy ingredients and make the coffee.

There two tasks can be further broken down into even simpler tasks. When you buy ingredients, you need to do three things:

Make of list of ingredients you need. Decide where you are going to buy them. Cecide how you are going to get there.

Instructor note

This can further be divided into separate tasks for each item that you need to buy.

coffee powder

You can buy all of those items at the supermarket, so you decide to go there.

The fastest why to the supermarket is by bus, so you decide to take the bus.

You also need to make the same trip home after you are done at the supermarket.

2. Pattern recognition 

When you have broken the problem down into smaller tasks, you can look for patterns. The first step (the list of ingredients) is made up of several smaller steps even though it looks like one step.

Take the bus to the supermarket

Purchase the milk

Take the bus back home

Repeat the process for all the items

This isn’t an efficient way of doing this, so we can look for patterns in the tasks. The glaringly obvious pattern is that if we buy all the items at once then we only have to make one trip to the supermarket and one trip back home. This is the process of pattern recognition which is very useful in using previous knowledge to apply to new problems. For example, perhaps you are going to a new supermarket because your regular supermarket is closed for the day. You don’t need to go through the entire process of planning everything out because you can use the same pattern as usual, but adjusting a few key points. You would have to take a different bus and walk an extra few meters to get to the new supermarket, but buying the ticket, purchasing the items inside the supermarket and returning home is still the same process. You have recognized a pattern that you can use for other problems which have similar characteristics.

3. Abstraction 

The process of abstraction is to discard unnecessary details that are not relevant to solving the problem. You cannot take everything into account when making a decision, so you filter out any unnecessary details and focus on what is relevant to the problem you are solving. In the above example, you take the bus to get to the supermarket. Is it important that you know every stop on the way to the bus stop? No. Is it important that you know the model of the bus you are taking? No. Is it important that you know the bus drivers name? No. These are all factors that could be relevant to someone else if they have a task that involves those details. For example, if you are a bus driver and you need to change shifts with a bus driver named John then it’s important to know the name of the bus driver. So, it’s not necessarily the case that the details are not important, but rather that there are details that are not important to your own task.

4. Algorithmic thinking 

When you have decomposed the problem, identified any patterns and filtered out the unnecessary details, you are ready to create a step-by-step guide on how to solve the actual problems. At this point you need to make detailed plans for each step. You have to specify actions in the right order and with sufficient detail, so you can’t just say “take the bus to the supermarket and come back when you’re done”. You need to specify the smaller details such as the time you need to catch the bus, where you need to catch the bus and which number bus you need to catch. Then you need to specify where to get off, which direction to take towards the supermarket and how to long walk from the bus stop. Once you’re in the supermarket, you need to find all the items, collect them in a basket and pay for them. Then you repeat the bus process in reverse order making sure to take the bus from the opposite side of the street.

The relevance of the four components 

The importance of the four components is to focus your thinking on the details of the problem, remove any inferences you might have and realistically show what kind of problem you are dealing with. This may seem a bit strange with the first example about coffee. What is important, however, isn’t the example itself, but rather the way in which it was broken down and solved. This forms a blueprint for solving problems and you can use this blueprint to solve other problems. After doing a simple example, you can scale up the complexity of the problems until you are able to this for any problem you face. However, there are other factors to take into account because after all, the world we live in isn’t a static place, so things often change.

A note on the difference between decomposition and algorithmic thinking 

While creating a step-by-step plan can be seen as a form of decomposition, it’s important to note that decomposition is a broader concept that encompasses the identification of major components or subproblems. Algorithmic thinking is a more detailed and specific step that involves designing the precise instructions or actions to solve those subproblems. Both steps are crucial in computational thinking as they contribute to breaking down complex problems and devising effective solutions.

You can think of this using the following analogy: if you were to organize a trip overseas then you would break the problem down into a few smaller parts i.e. travel to destination, book into accomodation, organize a few external trips, finish trip and book out, travel back home. This is a broad overview of the solution which is how the decomposition step works. When you are on the algorithmic thinking step, you take each of those smaller parts and create a plan to solve them. Take for example the first part “travel to destination”: decide which mode of transport (boat, car, train or air travel), then decide on the dates and time of departure, etc. At this stage, you should be breaking each part down into very specific and actionable solutions.

Constraints 

There are often things that change along the way, so it’s important to understand that most of the time you will have to work within some constraints because you hardly ever have the ideal conditions for carrying out your plan. For example if the supermarket doesn’t have any coffee in stock then what is the solution for that? You could buy tea instead or buy some takeout coffee from the restaurant next door. These aren’t optimal solutions, but they are alternatives due to the constraints that you may face in the real world. What if you find out that the busses have changed their payment systems and now you need to pay with a transit card. The only problem is that you’ve never used a transit card before, so you need to figure out how that works. In this case, the decomposition of your plan is still valid, but you need to adjust the algorithmic thinking portion of the four components. You would need to prioritize getting a bus transit card and loading it with money before going to the bus stop. This would form a new tasks which takes a higher priority to the other tasks since you cannot complete any of the other tasks without first getting the bus transit card.

Something to think about

In your own life think back to a time when you had a problem that seemed overwhelming. How did you manage to solve it at the end of the day?

Using the four components of computational thinking described above, could you have created a better plan to solve that problem that seemed so overwhelming before?

Your browser is ancient! Upgrade to a different browser to experience this site.

Problem Solving Using Computational Thinking

Description.

Have you ever heard that computers "think"? Believe it or not, computers really do not think. Instead, they do exactly what we tell them to do. Programming is, "telling the computer what to do and how to do it."

Before you can think about programming a computer, you need to work out exactly what it is you want to tell the computer to do. Thinking through problems this way is Computational Thinking. Computational Thinking allows us to take complex problems, understand what the problem is, and develop solutions. We can present these solutions in a way that both computers and people can understand.

The course includes an introduction to computational thinking and a broad definition of each concept, a series of real-world cases that illustrate how computational thinking can be used to solve complex problems, and a student project that asks you to apply what they are learning about Computational Thinking in a real-world situation. This project will be completed in stages (and milestones) and will also include a final disaster response plan you'll share with other learners like you.

This course is designed for anyone who is just beginning programming, is thinking about programming or simply wants to understand a new way of thinking about problems critically. No prior programming is needed. The examples in this course may feel particularly relevant to a High School audience and were designed to be understandable by anyone.

You will learn: -To define Computational Thinking components including abstraction, problem identification, decomposition, pattern recognition, algorithms, and evaluating solutions -To recognize Computational Thinking concepts in practice through a series of real-world case examples -To develop solutions through the application of Computational Thinking concepts to real world problems

based on 988 ratings

problem solving steps using computational thinking

U-M Credit Eligible

problem solving steps using computational thinking

Chris Quintana

Associate Professor, School of Education

Know someone who would like this course? Share it with them!

Share on Facebook

Share on Twitter

Share on LinkedIn

mySmowltech

problem solving steps using computational thinking

Exploring Computational Thinking: definition, phases, and key traits

Phases of Computational Thinking

Discover our proctoring plans

Receive an ebook on proctoring solutions. SMOWL is the most complete and customizable proctoring software.

Recent posts

9 benefits of inclusive education

Inclusive education: definition, principles and benefits

The Role of Employers in Facilitating Remote Work

Technology and Workplace: The Triumph of Remote Work

Quick list of impacts of cyberthreat

Cyberthreat: definition, types and impact

What is training?

Training vs teaching: differences and similarities

In the current digital age, computational thinking stands as a vital cognitive skill.

It refers to the ability to solve problems and tackle challenges using approaches similar to those applied in programming and computing.

In this article, we’ll delve into the intricacies of computational thinking, the phases that comprise it, the defining traits that characterize it, and we’ll provide illustrative examples of its application.

What is Computational Thinking?

Computational thinking involves breaking down complex problems into smaller, more manageable parts .

Think of it as disassembling a puzzle to understand how the pieces fit together. This skill enables you to address any problem, not just tech-related ones, in a structured and logical manner.

Computational thinking promotes step-by-step problem-solving and identifying patterns to arrive at efficient solutions.

While the definition might make it seem recent, it’s not a new concept. Its roots can be traced back to the beginnings of computing and programming.

Exploring Computational Thinking: definition, phases, and key traits

As technology advanced, the foundations of computational thinking were laid, although it wasn’t referred to as such at the time. Computing pioneers like Alan Turing, Claude Shannon, and Grace Hopper established the groundwork for logical and algorithmic approaches to problem-solving.

Over time, computational thinking expanded beyond programming boundaries and began to be applied across various disciplines.

As computers became more accessible, people started adopting computational approaches to address everyday life, science, engineering, and more.

Phases of Computational Thinking

Computational thinking is broken down into several phases that facilitate problem-solving:

1. Problem Identification

The first phase involves clearly defining the problem that needs to be solved. This includes understanding the requirements, limitations, and goals of the problem at hand.

2. Decomposition

In this stage, the problem is broken down into smaller, more manageable subproblems. Each subproblem is addressed separately to avoid feeling overwhelmed by the complexity of the main problem.

3. Pattern Recognition

Pattern recognition involves identifying similarities or regularities within the subproblems. This phase allows for discovering general approaches that can be applied to various aspects of the problem.

Subscribe today to SMOWL’s weekly newsletter!

Discover the latest trends in eLearning, technology, and innovation, alongside experts in assessment and talent management. Stay informed about industry updates and get the information you need.

Simply fill out the form and stay up-to-date with everything relevant in our field.

4. Abstraction

Abstraction entails removing unnecessary details and focusing on the fundamental aspects of the problem. This helps simplify the resolution process by highlighting what truly matters.

5. Algorithms

During this phase, algorithms or organized sets of logical steps that lead to the solution of each subproblem are developed. Algorithms are like recipes that guide you through the resolution process.

6. Evaluation and Refinement

After applying the algorithms, the obtained solutions are evaluated and refined if necessary. This phase ensures that the solutions are effective and efficient.

Examples of Computational Thinking in Action

Key Traits of Computational Thinking

The following factors characterize computational thinking :

  • Systematic Approach: It adopts a step-by-step and organized approach to address problems, facilitating the effective resolution of complex tasks.
  • Pattern Utilization: Identifying patterns in problems and solutions enables the application of proven solutions to similar situations.
  • Detail Abstraction: The ability to abstract unnecessary details allows focusing on the essential aspects of a problem, simplifying its resolution.
  • Algorithmic Thinking: Computational thinking involves designing algorithms, which are ordered sequences of logical steps, to solve problems.
  • Structured Creativity: While rooted in logic and structure, computational thinking allows for creative problem-solving, finding unique solutions to diverse challenges.

Examples of Computational Thinking in Action

Computational thinking is applied in various scenarios, many of which are unrelated to technology or computing:

  • Mathematical Problem Solving: When facing complex mathematical problems, computational thinking helps break them down into logical steps and use patterns to find solutions.
  • Algorithm Design: Programmers use computational thinking to create efficient algorithms that solve specific tasks, such as sorting data lists or searching databases.
  • Task Automation: In process automation , computational thinking is employed to design automated workflows that save time and reduce errors.
  • Everyday Problem Solving: Even in daily life, computational thinking can help address complex problems, such as planning optimized travel routes or efficiently managing household tasks.
  • Business Optimization: Entrepreneurs and business analysts leverage computational thinking to optimize operations, streamline processes, and make informed decisions based on data analysis.
  • Medical Diagnosis: Medical professionals utilize computational thinking to analyze complex medical data, identify patterns, and aid in diagnosing diseases or conditions.
  • Environmental Modeling: Environmental scientists employ computational thinking to develop models that simulate ecological systems, helping predict the impact of various factors on the environment.
  • Artificial Intelligence (AI): AI specialists utilize computational thinking to create algorithms that enable machines to learn from data, recognize patterns, and make intelligent decisions.
  • Cybersecurity: Cybersecurity experts employ computational thinking to detect anomalies in network traffic, identify potential threats, and develop strategies to safeguard digital assets.
  • Digital Art: Digital artists apply computational thinking to create intricate visual designs, simulations, and animations, often requiring the manipulation of complex algorithms.
  • Language Processing: Linguists and developers use computational thinking to design natural language processing algorithms that enable machines to understand and generate human language.
  • Financial Analysis: Analysts use computational thinking to model complex financial scenarios, perform risk assessments, and make informed investment decisions.
  • Genomic Sequencing: Geneticists harness computational thinking to analyze vast amounts of genetic data, identify genetic variations, and uncover insights into diseases and inheritance.
  • Transportation Planning: Urban planners use computational thinking to optimize transportation routes, manage traffic flow, and design efficient public transportation systems.

These examples underscore the pervasive influence of computational thinking across a broad spectrum of industries and applications, showcasing its ability to enhance problem-solving and innovation.

What is Computational Thinking?

Computational Thinking in Education

Computational thinking has become crucial in modern education . As technology becomes increasingly integrated into classrooms, the importance of teaching students skills that go beyond rote memorization is recognized.

It’s a valuable tool that promotes critical thinking, problem-solving, and structured creativity—essential skills in a constantly evolving world. 

Schools and educators are incorporating computational thinking into curricula to prepare students for 21st-century challenges. Teaching decomposition, pattern recognition, and abstraction fosters an analytical mindset that can be applied in various situations.

While it extends beyond the technological realm, computational thinking is frequently seen in the edtech sector. At Smowltech, we firmly believe that technology enhances people’s lives through education.

That’s why we develop proctoring plans that help create reliable environments for the increasingly common digital educational and corporate ecosystems .

If you want to experience the benefits that proctoring technology can bring to your institution, we invite you to request a free demo of our tool.

Download now!

8 interesting

about proctoring

Discover everything you need about online proctoring in this book to know how to choose the best software.

Fill out the form and download the guide now.

And subscribe to the weekly SMOWL newsletter to get exclusive offers and promotions .

You will discover all the trends in eLearning, technology, innovation, and proctoring at the hands of evaluation and talent management experts .

Discover how SMOWL works

  • Register in mySmowltech indicating your LMS.
  • Check your email and follow the steps to integrate the tool.
  • Enjoy your free trial of 25 licenses.

Request a free demo with one of our experts

In addition to showing you how SMOWL works, we will guide and advise you at all times so that you can choose the plan that best suits your company or institution.

  • Copyright © 2024 all rights reserved SMOWLTECH

Write below what you are looking for

breadcrumb

  • Exploring Computational Thinking

As part of our ongoing partnership with the broader educational community, we are releasing the Google Exploring Computational Thinking resources (including the Computational Thinking for Educators online course) to several practitioner organizations working to support CT teaching and learning globally. The resources, including the curated collection of lesson plans, videos, and other resources were created to provide a better understanding of CT for educators and administrators, and to support those who want to integrate CT into their own classroom content, teaching practice, and learning. We encourage you to access all these resources at:

International Society for Technology in Education (ISTE)

  • ISTE U – Introduction to Computational Thinking for Every Educator
  • Exploring Computational Thinking resource repository

Australian Digital Technologies Hub

  • Lesson ideas mapped to the Australian Digital Technologies curriculum, based on the original resources developed as Exploring Computational at Google.

CT Overview

Computational Thinking (CT) is a problem solving process that includes a number of characteristics and dispositions. CT is essential to the development of computer applications, but it can also be used to support problem solving across all disciplines, including math, science, and the humanities. Students who learn CT across the curriculum can begin to see a relationship between subjects as well as between school and life outside of the classroom.

CT involves a number of skills, including:

  • Formulating problems in a way that enables us to use a computer and other tools to help solve them
  • Logically organizing and analyzing data
  • Representing data through abstractions such as models and simulations
  • Automating solutions through algorithmic thinking (a series of ordered steps)
  • Identifying, analyzing, and implementing possible solutions with the goal of achieving the most efficient and effective combination of steps and resources
  • Generalizing and transferring this problem solving process to a wide variety of problems

These skills are supported and enhanced by a number of dispositions or attitudes that include:

  • Confidence in dealing with complexity
  • Persistence in working with difficult problems
  • Tolerance for ambiguity
  • The ability to deal with open ended problems
  • The ability to communicate and work with others to achieve a common goal or solution

CT concepts are the mental processes (e.g. abstraction, algorithm design, decomposition, pattern recognition, etc) and tangible outcomes (e.g. automation, data representation, pattern generalization, etc) associated with solving problems in computing. These include and are defined as follows:

  • Abstraction: Identifying and extracting relevant information to define main idea(s)
  • Algorithm Design: Creating an ordered series of instructions for solving similar problems or for doing a task
  • Automation: Having computers or machines do repetitive tasks
  • Data Analysis: Making sense of data by finding patterns or developing insights
  • Data Collection: Gathering information
  • Data Representation: Depicting and organizing data in appropriate graphs, charts, words, or images
  • Decomposition: Breaking down data, processes, or problems into smaller, manageable parts
  • Parallelization: Simultaneous processing of smaller tasks from a larger task to more efficiently reach a common goal
  • Pattern Generalization: Creating models, rules, principles, or theories of observed patterns to test predicted outcomes
  • Pattern Recognition: Observing patterns, trends, and regularities in data
  • Simulation: Developing a model to imitate real-world processes

See our Computational Thinking Concepts Guide for a printable version of this list, along with teaching tips for each concept.

CT Materials

Incorporate computational thinking (CT) into your curriculum with these classroom-ready lesson plans, demonstrations, and programs (available in Python and Pencil Code ). All materials in this collection have been aligned to both core subject* and CS** education standards. For more information on the connections between the CS education standards, see our International CS Education Standards crosswalk .

* See Common Core State Standards and Next Generation Science Standards ** See CSTA K–12 Computer Science Standards (United States), CAS: Primary School and Secondary School (United Kingdom), Australia , New Zealand , and Israel

Core Subject: All

Subject: All

Suggested Age: 8-18

Type: Reference

Computational Thinking Concepts Guide

This guide explores eleven terms and definitions for Computational Thinking (CT) concepts, enabling you to incorporate them into existing lesson plans, projects, and demonstrations. Teaching tips are included for each concept.

Differentiation Strategies Guide

This guide contains codes for seven differentiation strategies and their meanings. Differentiation strategies are practices for modifying content or instructional practices for a specific group of students.

Student Engagement Strategies Guide

This guide describes ten strategies for capturing and maintaining student attention during classroom lessons. These student engagement strategies can be interspersed throughout existing lesson plans, projects and activities to increase student interest in any topic.

Pseudocode Guide

This guide explores the benefits of using pseudocode, an informal, high-level description of the operating procedure of a computer program or other algorithm. With pseudocode, students can learn how plan out their programs even if they do not have access to a computer.

Introduction to Python

This guide to the Python programming languages helps you explore sample topics including mathematical notation, testing for equality, writing Python programs, and conditional logic.

Python Basics Quick Reference

This handy reference to programming in Python contains the most frequently used functions and syntax from the Exploring Computational Thinking lesson plans.

Core Subject: Computer Science

Subject: Algorithms and Complexity

Suggested Age: 14-18

Type: Lesson

Measuring the Complexity of a Function or Algorithm

This lesson plan explores problems that are easy for the computer to solve and problems that are difficult for the computer to solve. Students will learn how to measure the complexity of a function/algorithm and how this applies to real world situations.

Suggested Age: 8-12

Ciphering a Sentence

This lesson plan enables student to develop a cipher, encode a sentence, and then develop an algorithm for encoding and decoding.

Suggested Age: 11-18

Algorithmic Thinking

This lesson plan demonstrates that an algorithm is a precise, step-by-step set of instructions. Students will be asked to create oral algorithms to solve problems that other students can then use effectively.

Suggested Age: 11-14

Divide and Conquer

This lesson plan requires students to use a ‘divide-and-conquer’ strategy to solve the mystery of the “stolen crystals”. Students will use decomposition to break the problem into smaller problems and algorithmic design to plan a solution strategy.

Water Water Everywhere!

This lesson plan presents students with the challenging problem of measuring a volume of water using containers of the wrong measurement size. Students will decompose a complex problem into discrete steps, design an algorithm for solving the problem, and evaluate the solution efficiencies and optimization in a simulation.

Data Compression

This lesson introduces students to the need for data compression and methods for reducing the amount of data in both text and images by applying a filter. By looking for patterns and adjusting the algorithm based on the results, students will learn to reduce the memory size with minimal impact on the quality.

Subject: Data Analysis

Suggested Age: 8-15

Describing an Everyday Object

This lesson plan explores the difficulty of providing detailed descriptions of objects without using their names. The CT concepts covered include abstraction, data representation and pattern recognition.

Exploring Your Environment

This lesson plan enables students to gather data about a place or environment, organize that data in a table, and look for patterns. The CT concepts covered include data collection, data representation, data analysis, and decomposition.

Subject: Logic

Suggested Age: 9-12

Machine Testing

This lesson plan presents students with a mysterious new machine and requires them to develop testing strategies to determine its functionality.

Solving a Guessing Game with Data

This lesson plan requires students to develop two guessing games. The CT concepts covered include data collection, data representation, data analysis, and algorithm design.

Subject: Software Development

Suggested Age: 13-18

Functions and Algorithms

This lesson plan enables students to identify, evaluate, follow, and create functions, including functions that loop, functions that include decisions, and functions that include both. The activities increase in difficulty and students should continue as far as they are able to.

Core Subject: English-Language Arts

Subject: Language

Indefinite Articles

This lesson plan explores the usage of ‘a’ and ‘an’. Students will use pattern recognition and pattern generalization to determine when to use these indefintite articles and then develop a written algorithm that enables them to refine basic algorithms to handle exceptions to a generalized rule.

Suggested Age: 8-10

Mystery Word X

This lesson plan enables students to analyze the classification of nouns and verbs. They begin by considering nouns as “a person, place, or thing” and verbs as “action words. They then run a group of words through a series of "tests" and identify instances in which this standard notion might lead to errors.

Present Participle

This lesson plan enables students to investigate how the ending letters of a verb affect its spelling as tense changes. Students begin by simply adding ‘ing’ to the end of verbs. By identifying patterns in the spelling of verbs for which this works and those for which it does not, students build a stronger algorithm for conjugating verbs.

Finding Patterns in Spelling Errors and History

This lesson plan helps students learn how to analyze spelling errors and large data sets to find patterns, develop abstractions, and discover how large amounts of data can reveal much about our society.

Suggested Age: 10-14

Writing a Story

This lesson plan enables student to collaborate with others to build a story, identify any "bugs" in the story, and fix those bugs to give the story a more logical flow.

Type: Program

Interactive Fiction

This Pencil Code program enables students to create a simple piece of interactive fiction with three "pages", with one function representing each page, and buttons to select the next action. Students can analyze, fill in, or change parts of the program.

Interactive Mad Libs

This Pencil Code program creates an interactive Mad Libs game, prompting the user to enter several words matching requested parts of speech and then stitching them together in humorous sentences. Students can analyze, fill in, or change parts of the program.

Interactive Mad Libs (Variation)

This Pencil Code program is a variation on the interactive Mad Libs program that automatically generates sentences by randomly choosing words. Students can analyze, fill in, or change parts of the program.

Lady Macbeth Chat Bot

This Pencil Code program enables students to create an interactive chat bot that answers questions as if it were Lady Macbeth. Students can students analyze, fill in, or change parts of the program.

Stroke Order of a Chinese Character

This Pencil Code program enables students to illustrate the stroke order of a chinese character by creating their own rendering of a Chinese character and drawing the strokes in the right order. Students can analyze, fill in, or change parts of the program.

Type: Exploration

This exploration gives students algorithms they can modify to improve the virtual Countess Ada Lovelace's ability to respond to questions.

Core Subject: History Social Science

Subject: US History

Map Visualization

This Pencil Code program provides a simple way to illustrate statistics geographically by drawing bubbles on a map. Students can analyze, fill in, or change parts of the program.

Population Statistics

This Pencil Code program enables student to create a population graph from data in a spreadsheet. Students can analyze, fill in, or change parts of the program.

Core Subject: Mathematics

Subject: Algebra

Suggested Age: 12-15

Linear Association

This lesson plan uses CT concepts to explore the linear association between variables using two sets of data. Students will read data in a spreadsheet and in a graph and identify positive and negative linear association based on the shape of the graph.

Degrees and Radians

This lesson plan uses basic patterns to label key points on the unit circle in terms of degrees, and then follows a similar process to relabel these points in terms of radians. Students can then develop an algorith to convert between degrees and radians based on the patterns they used to count their way around the unit circle.

Slope and Y-Intercept

This lesson plan uses CT to explain the properties of slope and y-intercept. Students will learn how to calculate the slope and y-intercepts of a line that passes through a given set of points, and then use Python to solve various challenging slope and y-intercept exercises.

Suggested Age: 13-16

Two Workers

This Python program helps students solve word problems with two people working together at different rates. Students can analyze, fill in parts of, or enhance the program to solve more sophisticated work problems.

Three Workers

This Python program helps students solve word problems with three people working together at different rates. Students can analyze, fill in parts of, or enhance the program to solve more sophisticated problems.

Savings and Interest

This Python program helps students understand how to calculate interest based on the savings amount, interest rate, and number of years of investing. Students can analyze, fill in parts of, or use the program to check results to exercises on which they are already working.

This Python program helps students conceptualize the following word problem: Charisse is buying two different types of cereals from the bulk bins at the store. Granola costs $2.29 per pound, and muesli costs $3.75 per pound. She has $7.00. Use x as the amount of granola and y as the amount of muesli. How many pounds of granola can she buy if she buys 1.5 pounds of muesli?

DVD Rentals

This Python program helps students conceptualize the following word problem: Shanti has just joined a DVD rental club. She pays a monthly membership fee of $4.95, and each DVD rental is $1.95. If Shanti’s budget for DVD rentals in a month is $42, how many DVDs can Shanti rent in her first month if she doesn’t want to go over her budget?

Theme Park Ride

This Python program helps students conceptualize the following word problem: There are 90 people in line at a theme park ride. Every 5 minutes, 40 people get on the ride and 63 join the line. Estimate how long it would take for 600 people to be in line.

T Tables for Simple Functions

This Python program helps students compute the T table for a given function. Students can analyze, fill in parts of, or use the program to check solutions to exercises on which they are already working.

Suggested Age: 12-16

This Python program helps students understand ratios by solving for x in the equation a/b = c/d, where x can be in any location in the two fractions. Students can analyze, fill in parts of, or use the program to check solutions to exercises on which they are already working.

Quadratic Formula

This Python program helps students automatically compute the quadratic formula given the values of a, b and c. Students can analyze, fill in parts of, or use the program to check solutions to exercises on which they are already working.

This Python program helps students use their knowledge of FOIL on zero-variable or one-variable expressions to automatically solve various expressions. Students can analyze, fill in parts of, or use the program to check solutions to exercises on which they are already working.

Factoring Perfect Square Binomial Expressions

This Python program helps students factor binomial expressions into the form (x+c)^2 if the expression fits the pattern. Students can analyze, fill in parts of, or use the program to check solutions to exercises on which they are already working.

Distance, Rate, Time

This Python program helps students automatically compute distance, rate, or time, given two of the three variables. Students can analyze, fill in parts of, or use the program to check solutions to exercises on which they are already working.

Binomial Products

This Python program helps students automatically calculate the binomial product, that is, (ax + b)(cx + d) = acx^2 + adx + bcx + bd. Students can analyze, fill in parts of, or use the program to check solutions to exercises on which they are already working.

This Python program helps students see the connection between a mathematical function and a programmatic function by defining a function in Python and seeing what it means to pass a value to that function.

Properties of Quadratic Equations

This Python program helps students apply their knowledge of quadratic equations to automatically complete the square of a quadratic equation and find the location of the vertex. Students can analyze, fill in parts of, or use the program to check solutions to exercises on which they are already working.

Substitution with Two Equations

This Python program enables students to substitute and solve for variables using two equations. The first equation can be any equation; the second must be of the form variable = ... where variable appears in the first equation. Students can analyze the program or predict the substitution given the two equations.

Pascal’s Triangle

This Python program illustrates how Pascal’s Triangle is computed. Students can trace through the program and learn more about nested for-loops and why they are needed in certain applications. This program may require additional guidance from the educator.

Vertex of a Quadratic

This Python program anables students to calculate the vertex for any given quadratic and automatically calculate the vertex (h, k) for a given quadratic in the form of y = ax^2 + bx + c. Students can analyze or fill in parts of the program to reinforce their understanding.

Roots of an Equation

This Python program enables students to solve for the roots of an equation. Students can analyze or fill in parts of the program to reinforce their knowledge.

Conic Sections

This Python program illustrates how the coefficients of functions representing conic sections can be used to determine the type of conic section (circle, ellipse, hyperbola) and display results based on that conic section. Students can analyze, fill in parts of, or use the program to check results to exercises on which they are already working.

Combinations: n choose k

This Python program enables students to check solutions to combinations (n choose k) exercises. Students can analyze, fill in parts of, or use the program to check results to exercises on which they are already working.

Matrix Multiplication

This Python program helps students develop their understandings of matrix multiplication by performing it on two randomly generated matrices. Students can analyze or fill in parts of the program to reinforce their understanding. This program is fairly sophisticated and may only work for students with prior Python experience.

Logarithm Notation

This Python program helps students develop their understanding of logarithm notation by automatically computing the result of a given base and exponent and displaying it in log notation. Students can analyze or fill in parts of the program to reinforce their knowledge.

Determinant of a 3x3 Matrix

This Python program enables students to find the determinant of a 3x3 matrix. Students can analyze or fill in parts of the program to reinforce their knowledge.

Determinant of a 2x2 Matrix

This Python program enables students to find the determinant of a 2x2 matrix. Students can analyze or fill in parts of the program to reinforce their knowledge.

Subject: Arithmetic

This Pencil Code program enables student to play the "chaos game" by randomly moving the turtle to create a pattern. Students can analyze, fill in, or change parts of the program.

Graphing Sums of Dice Rolls

This Pencil Code program illustrates randomness by rolling two dice 100 times and graphing the results in two different ways.

Random Number Illustrator

This Pencil Code program can be used to generate and then illustrate a random number. Students can analyze, fill in, or change parts of the program.

Sum of Two Dice

This Pencil Code program can be used to roll two dice a number of times and then print the sum. Students can analyze, fill in, or change parts of the program.

Subject: Calculus

Suggested Age: 16-18

Instantaneous Rate of Change

This Python program enables students to determine the instantaneous rate of change for a given function and then automatically calculate it for a given function. Students can analyze, fill in parts of, or use the program to check results to exercises on which they are already working.

Calculating Definite Integrals

This Python program enables students to calculate the definite integral for a given function and then automatically calculate it for a specified function. Students can analyze, fill in parts of, or use the program to check results to exercises on which they are already working.

Fundamental Theorem of Calculus

This Python program enables students to use the Fundamental Theorem of Calculus for a given function and automatically calculate it for a specified function. Students can analyze, fill in parts of, or use the program to check results to exercises on which they are already working.

Mean and Standard Deviation

This lesson plan demonstrates how to use standard deviation to better understand a set of data. Students will use standard deviation to determine the general pattern/shape of a given set of data to draw more reliable conclusions.

Application and Modeling of Standard Deviation

This lesson plan explores using the central tendency to discover patterns in data. Students will simulate a dice-throwing game and alter the algorithm design to reflect changes to the game. The CT concepts covered include data collection, decomposition, abstraction, and data analysis.

Using Data from Sensors - Introduction

In this lesson plan, students identify and describe various sensors. Students will use sensors to collect data and use Computational Thinking to decompose one large problem into multiple smaller problems.

Using Data from Sensors - Filters and Functions

In this lesson plan, student explore the use of filters to isolate and analyze data generated by various types of sensors. Students use computational thinking to identify patterns generated by a potential agent during a specific activity (such as a human falling to the ground).

Continuous vs Discrete Data - Introduction

This lesson plan illustrates how data can be continuous or discrete. Students will collect data from classmates and then use data analysis and data representation to label the data as continuous or discrete. They will also learn to recognize different graphical and tabular representations of data as discrete and continuous.

Continuous vs Discrete Data - Modeling Continuous Functions

This lesson plan requires students to apply their knowledge about continuous and discrete data to categorize data from historical calculations of the speed of light and to examine the effects of modeling a continuous curved shape with an increasing number of discrete points and segments.

Subject: Geometry

Turtle Geometry

This exploration provides students an opportunity to understand the relationship between the number of sides in a regular polygon and its angles. Students will draw shapes using simple commands like 'turn right 90 degrees' and 'move forward 100 steps' and use the patterns they find to write an algorithm for drawing any regular polygon.

Suggested Age: 13-17

Area of a Circle

This lesson plan uses CT to explain the derivation of the formula A = pi*r^2. Students will complete Python programs that calculate the area of a circle as well as individual sectors.

Finding the Shortest Path

This lesson invites students to develop a process for traveling across the country in the most efficient way possible. Students will refine their process after experimenting with smaller networks of points as well as a varient of the Traveling Salesperson problem.

Suggested Age: 11-16

Pythagorean Theorem - Pencil Code

This Pencil Code program enables students to use the Pythagorean Theorem to calculate a third side of a right triangle given the other two sides. Students can analyze, fill in parts of, or use the program to check results to exercises on which they are already working.

Acute, Obtuse, and Right Triangles

This Python program helps students precisely define the relationships between the angles for different types of triangles (acute, obtuse, or right). Students can analyze, fill in parts of, or use the program to check results to exercises on which they are already working.

Calculating Surface Area

This Python program helps students use surface area formulas to automatically to calculate the surface areas of several geometric objects (cube, rectangular prism, cylinder, sphere). Students can analyze, fill in parts of, or use the program to check results to exercises on which they are already working.

Pythagorean Theorem - Python

This Python program helps students use the Pythagorean Theorem to calculate a third side of a right triangle given the other two sides. Students can analyze, fill in parts of, or use the program to check results to exercises on which they are already working.

Polygonal Formulas

This Python program helps students use formulas related to polygons to display several results based on the number of sides of a polygon. Students can analyze, fill in parts of, or use the program to check results to exercises on which they are already working.

Distance Between Two Points

This Python program helps students use the distance formula to automatically calculate the distance between two points (x1, y1) and (x2, y2). Students can analyze or fill in parts of the program to reinforce their understanding.

Area Calculations

This Python program demonstrates how area formulas can be used to automatically compute the area of various geometric objects. Students can analyze, fill in parts of, or use the program to check results to exercises on which they are already working.

Suggested Age: 12-14

This lesson plan requires students to apply logical reasoning to deduce information from rules in a game scenario. The CT concepts covered include data representation, data analysis, and decomposition.

Pattern Machine

This lesson plan requires students to play a triplet game in which a set of three numbers can be described according to a specific rule. Students use data analysis to recognize and generalize patterns from which they derive the rule and solve the puzzle.

This lesson plan requires student to use logical reasoning to deduce information about the labels on fruit boxes based upon rules. The CT concepts covered include data analysis and simmulation.

Suggested Age: 10-12

Logic Party

This lesson plan requires students to solve a numerical problem using constraints to graphically eliminate possibilities and arrive at the correct answer. The CT concepts covered include data representation, data analysis, and decomposition.

Subject: Pre-Algebra

Fraction Addition and Common Denominators

This lesson plan explores how to find a common denominator between two fractions and add or subtract the fractions. It covers a variety of CT concepts, including decomposition, abstraction, pattern recognition, pattern generalization and algorithm design.

Multiplication with Fractions

This lesson plan explores how to visualize the multiplication of fractions and identify patterns between the multiplicands and their product. Upon completion of this lesson, students will be able to multiply simple fractions using a visual model and a computational algorithm.

Suggested Age: 11-13

Ratios and Proportions

This lesslon plan uses CT concepts and the Python programming language to develop an algorithm for answering questions involving ratios and proportions. It coveres a variety of CT concepts including problem decompostion, abstraction, pattern identification, pattern generalization and algorithm design.

Multiplying by Numbers Between Zero and One

This lesson plan uses CT concepts to to demonstrate that when multiplying a positive number by a decimal between 0 and 1, the product is always less than the original number.

Dividing by Numbers Between Zero and One

This lesson plan uses CT concepts to demonstrate that when dividing a positive number by a decimal between 0 and 1, the quotient is always greater than the original number.

Common Fractions and Equivalent Percentages

This lesson plan uses CT concepts to demonstrate the conversion of common fractions into their equivalent percentages. Students identify patterns between fractions, decimals, and percents, and generalize these patterns.

Percent Change

This lesson plan uses CT concepts to demonstrate how to calculate the percent change between any two numbers. Students identify patterns in percent change and decompose an algorithm to help strengthen their understanding.

Scientific Notation

This lesson plan uses CT concepts to identify patterns between the exponent, the number of places the decimal point moves, and the direction the decimal point moves when multiplying by powers of ten.

Percentages

This lesson plan uses CT concepts to demonstrate how to develop an algorithm for calculating percentages using mental math.

Long Multiplication on Two-Digit Numbers - Pencil Code

This Pencil Code program enables student to perform long multiplication on two-digit numbers, for example, 42 x 31. Students can analyze, fill in parts of, or use the program to check results to exercises on which they are already working.

Long Multiplication on Two-Digit Numbers - Python

This Python program enables students to perform long multiplication on two-digit numbers, for example, 23 x 46. Students can analyze, fill in parts of, or use the program to check results to exercises on which they are already working.

Fractions and Proportions

This Python program enables students to check whether two fractions are proportional. Students can analyze, fill in parts of, or use the program to check results to exercises on which they are already working.

Lemonade and Glasses

This Python program helps students conceptualize word problems, specifically: Sam has a jar with 5 cups of fresh lemonade. Jack has some glasses which hold 1.5 cups each of liquid. How many glasses of lemonade can Jack serve of Sam’s lemonade?

Evaluating Expressions

This Python program llustrates how a basic calculator functions. It introduces Python’s eval function as a way of computing expressions containing variables a, b, and c when given values for each of these variables. Students can analyze, fill in parts of, or use the program to check results to exercises on which they are already working.

Midpoint Between Two Points

This Python program helps students apply their knowledge of the midpoint formula to automatically calculate the midpoint between two points (x1, y1) and (x2, y2). Students can analyze or fill in parts of the program to help reinforce their understanding.

Complementary and Supplementary Angles

This Python program helps students apply their knowledge of complements and supplements to automatically compute the complement and supplement of a given angle. Students can analyze or fill in parts of the program to help reinforce their understanding.

Populations

This Python program helps students determine how long it will take to reach a certain target population, given a starting population, birthrate, and death rate. Students can analyze, fill in parts of, or use the program to check results to exercises on which they are already working.

Rock Climber, Cliff, and Shadows

This Python program helps students conceptualize the following word problems: A rock climber wants to know the height of a cliff. She measures the shadow of her friend, who is 5 feet tall and standing beside the cliff and measures the shadow of the cliff. If the friends shadow is 4 feet long and the cliffs shadow is 60 feet long, how tall is the cliff?

Basketball Hoops and Buildings

This Python program helps students conceptualize the following word problem: A basketball rim 10 ft high casts a shadow 15 ft long. At the same time, a nearby building casts a shadow that is 54 ft long. How tall is the building?

Fractional Exponents

This Python program demonstrates fractional exponents by automatically computing one based on a given base and fractional exponent. Students can analyze or fill in parts of the program to reinforce their knowledge.

Subject: Statistics and Probability

Combinations with Repeats

This lesson plan uses CT concepts to illustrate how to compute the number of possible arrangements for a given number of digits in a given number of spaces. Students will identify patterns in relatively easy cases that can lead them to an algorithm which applies to all cases.

Factorials with Names

This lesson plan uses CT concepts to investigate the number of possible arrangements of the letters in a given name. Students will identify patterns in the number of possible arrangements given an increasing number of letters, and then decompose the results to arrive at the factorial function.

Sorting Data

This lesson plan illustrates how to sort data using spreadsheet functions and/or Python. Students compare the algorithms used by both tools and then write their own algorithms for analyzing data with the mean, median, and mode.

Surveys and Estimating Large Quantities

This lesson plan shows students how to estimate the approximate size of data and determine the extent to which that data is realiable. Students will observe smaller data sets and identify patterns that enable them to make general predictions and to create algorithms capable of making approximations.

Randomness in Stochastic Models

This lesson plan explores random variables and probability. In this lesson, students will be introduced to methods to create random numbers as well as ways in which randomization can be used in scientific experiments.

Stochastic and Deterministic Modeling

This lesson plan explores deterministic models (the output is always the same) and stochastic models (the output is based on random sampling and can vary) and how, by modeling real phenomena using simulations, it is possible to improve a model and make better predictions.

Analyzing Discrete and Continuous Data in a Spreadsheet

In this lesson plan, students will collect data in a spreadsheet and learn to use various functions and analysis tools to better see patterns in their eating habits.

Analyzing Discrete and Continuous Data in a Map

This lesson plan illustrates how data is more than just numbers and that a map can also be a source of both discrete and continuous data. Using various tools, students will analyze and calculate the amount of urban open space available in their city.

Correlation vs Causation

In this lesson, plan, students will test the strength of a correlation and discern whether or not a law or conclusion can be made based on that correlation. Students will see the threshold commonly accepted for correlating data and test their own assumptions about causation.

Data Aggregation and Decomposition (Advanced Python)

This lesson plan explores how to use/analyze data to draw conclusions about the world around us. Students will improve their computational thinking by collecting/aggregating data onto a spreadsheet, identifying patterns in their data, decomposing the data into specified groups for analysis and further pattern recognition, and modifying an algorithm written in Python to facilitate data analysis.

Data Aggregation and Decomposition (Google Sheets)

This lesson plan uses CT to help students decompose and re-aggregate small sets of data using Google Sheets. Students use decomposition to break down long lists of information and write basic algorithms to use for the data analysis process.

The Law of Large Numbers and Probability

This lesson plan uses CT to help students use large amounts of data to explore the Law of Large Numbers and the Birthday Paradox to see how closely projected calculations match outcomes in the real world.

Generating Complex Behavior with Algorithms

This lesson plan provides examples of complex behavior that students can explore such as flipping a coin and cellular automata. Students can modify the algorithms to see the impact it has on the behavior.

Subject: Trigonometry

Suggested Age: 12-17

Application of Sin(x) and Cos(x)

This Python program enables students to graph two functions and apply their knowledge of the fact that C*sin(x + p) is the same as A*sin(x) + B*cos(x), for the right choice of A and B. Students can analyze, fill in parts of, or use the program to check results to exercises on which they are already working.

Core Subject: Music

Subject: Music

Making Music with Algorithms

This lesson plan allows students to examine the various aspects of music such as scales, melody, and rhythm. The patterns they discover will enable them to modify an algorithm to improve the quality of the music generated by the algorithm.

Core Subject: Science

Subject: Biology

Modeling the Genome using Computational Thinking

This demonstration explores how scientific knowledge of DNA progressed over the course of sixty years to the point where scientists could encode genes using a computer. It covers a variety of CT concepts, including decomposition, pattern recognition, abstraction, and algorithm design and their relation to natural phenomena.

Modeling GDP and Waste using Computational Thinking

This demonstration explores the hazards of making decisions based on incomplete data. It covers a variety of CT concepts, including decomposition, pattern recognition, abstraction, and algorithm design and their relation to natural phenomena.

Modeling Natural Selection using Computational Thinking

This demonstration illustrates how Charles Darwin and Gregor Mendel use Computational Thinking methods to make foundational discoveries in natural selection. It covers a variety of CT concepts, including decomposition, pattern recognition, abstraction, and algorithm design and their relation to natural phenomena.

Suggested Age: 14-17

Cell Biology - Filters

This lesson plan uses CT to improve students' understandings of filters in cell bioloigy. Students will find patterns in filters of all types to help them understand how these filters function. Prior to this lesson, have students complete the related lesson titled Inquiry and Observation.

Cell Biology - Filter Design and Construction

This lesson plan uses Computational Thinking to help students understand the movement of molecules across a cell membrane. Students will decompose their “molecules” to develop a design for their own “cell membranes” and then write an algorithm to describe them before building them. Prior to this lesson, have students complete the related lesson titled Filters.

Classifying Objects with Computational Thinking

This exploration uses the game '20 Questions' to have students estimate the number of questions necessary to guess any species on Earth. Students will first examine a few smaller classification examples using only 'yes' and 'no' questions, and then will generalize these patterns to develop an equation for classifying any object.

Subject: Chemistry

Modeling Electron Configuration using Computational Thinking

This demonstration uses Computational Thinking to show the relationship between electron configuration and an element’s position in the periodic table. It covers a variety of CT concepts, including decomposition, pattern recognition, abstraction and algorithm design to show how the atomic number of an element affects the configuration of its electrons.

Modeling Radioactive Decay using Computational Thinking

This demonstration explores how Computational Thinking is used to model the radioactive decay of an element. It covers a variety of CT concepts, including decomposition, pattern recognition, abstraction, and algorithm design and their relation to natural phenomena.

Modeling Boyle's Law using Computational Thinking

This demonstration describes how Computational Thinking can be used to understand the relationship between pressure and volume in a container of gas as described by Boyle’s Law. It covers a variety of CT concepts, including decomposition, pattern recognition, abstraction, and algorithm design and their relation to natural phenomena.

Patterns in the Periodic Table

This lesson plan illustrates how spreadsheet functions can be used to identify organizational patterns in the periodic table. The spreadsheet functions presented can be used on any data set.

Sorting the World's Cities (Google Sheets)

This lesson plan demonstrates how to use spreadsheet functions to sort and graph data. Once the data is sorted, students can begin to identify patterns and trends.

Sorting the World's Cities (Advanced Python)

This lesson plan demonstrateshow to read data from a spreadsheet into a Python program and then sort that data. When taught in conjunction with Sorting the World's Cities with Excel, this lesson can help student make the connection between writing a program and using a spreadsheet application.

What is Data? - Introduction

This lesson plan describes what data is, how prevalent it is, and how it can be used to make informed decisions. The CT concepts covered include pattern recognition and data representation.

What is Data? - Code Breaking and Patterns

This lesson plan introduces the concept of data. Students will create new data, look for patterns in existing data and attempt to decode text and numeric messages. They will use data analysis, including pattern recognition, to make sense of the provided data.

This Python program enables students to process data sets using a simple sorting algorithm. It can also be used to illustrate how sorting might be done automatically by an application such as Excel.

Subject: Earth Science

Energy Analysis

This lesson plan explores how spreadsheet functions can be used to analyze data on energy production and consumption around the world. Students learn how to display the results of their data collection on a map of the world, creating a visual representation of the numbers they input into their spreadsheets. This example is most suitable for high school biology or earth science classes.

Subject: Physics

Modeling Projectile Motion using Computational Thinking

In this demonstration illustrates how a program can be used to simulate projectile motion. It enables students to see how decomposition, pattern recognition and abstraction can be used to understand natural phenomena.

Modeling Pendulums using Computational Thinking

This demonstration illustrates how Computational Thinking concepts can be used to explore the laws that govern a pendulum’s motion. It covers a variety of CT concepts, including decomposition, pattern recognition, abstraction, and algorithm design and their relation to natural phenomena.

Modeling Free Fall using Computational Thinking

This demonstration explores how Galileo used Computational Thinking and inclined planes to calculate acceleration of a sphere in free fall. It covers a variety of CT concepts, including decomposition, pattern recognition, abstraction, and algorithm design and their relation to natural phenomena.

Working with Large Tables of Data

This lesson plan enables students to work with large tables of GPS data. Students will learn to sort, manipulate, and visualize data so it can be easily understood.

Simulating a Bouncing Ball

This exploration breaks down the components of motion so students can understand and improve an algorithm for making a ball bounce.

Below is a list of resources on computational thinking (CT). This list is not meant to be comprehensive, but is instead a curated collection of resources that educators and administrators might find useful. For additional computer science and CT resources, try our CS Custom Search .

For educators

General CT Resources

  • Computational Thinking for Educators - Online course for learning what CT is and how it can be integrated into a variety of subject areas by exploring examples of CT in your subject area, experimenting with examples of CT-integrated activities, and creating a plan to incorporate it into your classroom
  • Computational Thinking - by Jeannette M. Wing (Communications of the ACM)
  • Bringing Computational Thinking to K-12 - by Valerie Barr and Chris Stephenson (ACM Inroads)
  • Computational Thinking Teacher Resources - provided by ISTE and CSTA
  • Computational Thinking with Scratch - provided byHGSE, EDC, and MIT
  • Introduction to Computational Thinking - provided by Bitesize BBC
  • Computational Fairy Tales (books) by Jeremy Kubica

CT Tips and Strategies

  • Computational Thinking Concepts Guide - Comprehensive list of the CT concepts noted on ECT, including tips on implementing each concept in the classroom
  • Student Engagement Strategies Guide - Research-based strategies for engaging students
  • Differentiation Strategies Guide - Strategies for differentiating instruction in your classroom, based on the groups defined in the Next Generation Science Standards

CT in Computer Science

  • CS First - Free, easy-to-use materials based on Scratch that are themed to attract students with varied interests
  • CS Unplugged - Free resources and learning activities that teach the principles of Computer Science
  • Bebras Challenge : Anytime computing challenges and tasks to introduce students to computational and logical thinking
  • Alice - Block-based programming language for creating animations, games, or videos using object-oriented programming constructs in a 3D environment
  • App Inventor - Block-based programming language for creating mobile apps for Android
  • Pencil Code - Block- and text-based programming environment for creating art, music, games, and stories
  • Scratch - Block-based programming language for creating interactive stories, animations, games, music, and art
  • Desmos and Geogebra - Two free tools for exploring patterns in math
  • Mathalicious - Meaningful and relevant math content with examples of how math is used to solve intriguing questions from a variety of subjects
  • Project Euler - Mathematical challenges that require CT to solve them
  • Bootstrap - Curriculum that teaches math through computer programming
  • CS in Algebra - Partnership between Code.org and Bootstrap which teaches algebraic and geometric concepts through computer programming

CT in Science

  • Netlogo - Block-based, multi-agent programmable modeling environment
  • CS in Middle School Science - Collection of modules and lessons that augment traditional science instruction with CT through engaging modeling and simulation activities
  • PhET Interactive Simulations - Library of interactive, research-based science simulations of physical phenomena that encourage quantitative exploration
  • Project GUTS (Growing up Thinking Scientifically) Curriculum - Collection of middle school science units integrating CT
  • Wolfram Alpha - Computational knowledge engine for computing answers to queries using facts rather than providing the users with a list of documents or websites

CT in English/Language Arts

  • Google Ngram Viewer - Discover patterns and trends in literary works over the last two centuries

CT in Art, Design, Media

  • Processing - Programming language and environment for creating programs that are visual and interactive
  • Pixly - Block-based programming language for exploring media computation (pixel manipulation of images)

CT in Music

  • EarSketch - Computational music remixing and sharing development environment with complementary curriculum

For administrators

CT for School Leaders

  • ISTE Computational Thinking Leadership Toolkit

CT in the Science Classroom

  • Science and Engineering Practices in the NGSS - See “Practice 5 Using Mathematics and Computational Thinking”

Computer Science Education Standards

  • International CS Education Standards crosswalk
  • Computer Science Teachers Association (CSTA) - United States
  • Computing at School (CAS): Primary School and Secondary School - United Kingdom
  • New Zealand

Why is Python the programming language used in the CT materials?

Python is one of the easier languages to start with that is free and easy to download. It offers users two modes: the interpreter mode and the editor mode. See Introduction to Python for general information on how to introduce and use Python in your curriculum, or visit http://www.python.org/ for general Python information.

Some of the Python programs seem too advanced for my students. How can I adapt the materials to work for my particular students?

In developing our exemplar lessons and examples, we wanted to illustrate the various techniques used in computational thinking, from decomposition to algorithm design and implementation. However, we agree that not all the programming exercises are suitable for all students. Thus we really encourage you to adapt our materials to suit the needs of your classroom, which may be dependent on the computing resources you have available as well as the grade and skill level of your students. Below are some ways in which you may choose to adapt our materials:

  • Have students complete all of the exercises that lead up to the programs, and have them explain how they would design such an algorithm in their own words instead of writing actual Python programs
  • Expose students to the programs by projecting them, analyzing them step-by-step as a class, and then running them using values and variables provided by your students
  • Remove logical code sections from the completed programs and have students work together to fill in the missing parts
  • Have students work together to enhance a completed program to solve more sophisticated problems that involve different scenarios

How do I install Python on my computer?

Visit http://www.python.org/ for information on how to download and install Python to your computer. Alternatively, if you are unable or do not want to download Python to your computer, you can search online for ‘online Python editor’ to explore the different web-based Python editors.

  • About Google
  • Penn Engineering Online Degrees
  • Penn Engineering Online Dual Dual Degree
  • Online Graduate Certificates
  • Take a Course
  • On-Demand Learning
  • Computational Thinking for Problem Solving
  • Lifelong Learning

Anyone can learn to think like a computer scientist.

In this course, you will learn about the pillars of computational thinking, how computer scientists develop and analyze algorithms, and how solutions can be realized on a computer using the Python programming language. By the end of the course, you will be able to develop an algorithm and express it to the computer by writing a simple Python program.

This course will introduce you to people from diverse professions who use computational thinking to solve problems. You will engage with a unique community of analytical thinkers and be encouraged to consider how you can make a positive social impact through computational thinking.

problem solving steps using computational thinking

Flexible deadlines

Reset deadlines in accordance to your schedule.

problem solving steps using computational thinking

Shareable Certificate

Earn a digital certificate upon completion.

problem solving steps using computational thinking

100% online

Start instantly and learn at your own schedule.

Start building your computer science skills

Open course: computational thinking for problem solving.

Two computer scientists talking at computers with code on the screens

What is computational thinking?

Computational thinking (CT) is a problem-solving technique that imitates the process computer programmers go through when writing computer programmes and algorithms. This process requires programmers to break down complex problems and scenarios into bite size pieces that can be fully understood in order to then develop solutions that are clear to both computers and humans. So, like programmers, those who apply computational thinking techniques will break down problems into smaller, simpler fragments, and then outline solutions to address each problem in terms that any person can comprehend. 

Computational thinking requires:

  • exploring and analysing problems thoroughly in order to fully understand them
  • using precise and detailed language to outline both problems and solutions
  • applying clear reasoning at every stage of the process

In short, computational thinking encourages people to approach any problem in a systematic manner, and to develop and articulate solutions in terms that are simple enough to be executed by a computer – or another person. 

What are the four parts of computational thinking?

Computational thinking has four foundational characteristics or techniques. These include:

Decomposition

Decomposition is the process of breaking down a problem or challenge – even a complex one – into small, manageable parts.

Abstraction

Also known as generalisation, abstraction requires computational thinkers to focus only on the most important information and elements of the problem, and to ignore anything else, particularly irrelevant details or unnecessary details.

Pattern recognition

Also known as data and information visualisation, pattern recognition involves sifting through information to find similar problems. Identifying patterns makes it easier to organise data, which in turn can help with problem solving.  

Algorithm design

Algorithm design is the culmination of all the previous stages. Like a computer programmer writing rules or a set of instructions for a computer algorithm, algorithmic thinking comes up with step-by-step solutions that can be followed in order to solve a problem.

Testing and debugging can also occur at this stage to ensure that solutions remain fit for purpose.

Why is computational thinking important?

For computer scientists, computational thinking is important because it enables them to better work with data, understand systems, and create workable algorithms and computation models.

In terms of real-world applications outside of computer science, computational thinking is an effective tool that can help students and learners develop problem-solving strategies they can apply to both their studies as well as everyday life. In an increasingly complicated, digital world, computational thinking concepts can help people tackle a diverse array of challenges in an effective, manageable way. Because of this, it is increasingly being taught outside of a computer science education, from the United Kingdom’s national curriculum to the United States’ K-12 education system.

How can computational thinking be used?

Computational thinking competencies are a requirement for any computer programmer working on algorithms, whether they’re for automation projects, designing virtual reality simulations, or developing robotics programmes.

But this thinking process can also be taught as a template for any kind of problem, and used by any person, particularly within high schools, colleges, and other education settings.

Dr Shuchi Grover , for example, is a computer scientist and educator who has argued that the so-called “four Cs” of 21st century learning – communication, critical thinking, collaboration, and creativity – should be joined by a fifth: computational thinking. According to Grover , it can be beneficial within STEM subjects (science, technology, engineering and mathematics), but is also applicable to the social sciences and language and linguistics.

What are some examples of computational thinking?

The most obvious examples of computational thinking are the algorithms that computer programmers write when developing a new piece of software or programme. Outside of computer programming, though, computational thinking can also be found in everything from instructional manuals for building furniture to recipes for baking a chocolate cake – solutions are broken down into simple steps and communicated clearly and precisely.  

What is the difference between computational thinking and computer science?

Computer science is a large area of study and practice, and includes an array of different computer-related disciplines, such as computing, automation, and information technology. 

Computational thinking, meanwhile, is a problem-solving method created and used by computer scientists – but it also has applications outside the field of computer science.

How can we teach computational thinking?

Teaching computational thinking was popularised following the publication of an essay on the topic in the Communications of the ACM journal. Written by Jeannette Wing , a computer science researcher, the essay suggested that computational thinking is a fundamental skill for everyone and should be integrated into other subjects and lesson plans within schools. 

This idea has been adopted in a number of different ways around the world, with a growing number of resources available to educators online. For example:

  • the Computer Science Teaching Association (CSTA) partnered with the International Society for Technology in Education (ISTE) to share tools and resources to help teachers “prepare young learners to become computational thinkers who understand how today’s digital tools can help solve tomorrow’s problems”
  • computational thinking pioneer Stephen Wolfram developed the Wolfram programming language with young learners in mind, making it easier to teach computational thinking skills to kids
  • there are also resources available through websites such as CS Unplugged , which offers a collection of free materials to help teach computer science concepts to pupils

Become a computational thinker

Develop computational thinking skills with the online MSc Computer Science at the University of York. Through your taught modules, you will be able to apply computational thinking in multiple programming languages, such as Python and Java, and be equipped to engage in solution generation across a broad range of fields. Some of the modules you’ll study include algorithms and data structures, advanced programming, artificial intelligence and machine learning, cyber security threats, and computer architecture and operating systems.

This master’s degree has been designed for working professionals and graduates who may not have a computer science background, but who want to launch a career in the lucrative field. And because it’s studied 100% online, you can learn remotely – at different times and locations – part-time around your full-time work and personal commitments.

Start application

Admission requirements

Start dates

Tuition and course fees

Accessibility Statement

Online programmes

Other programmes at York

University of York

York YO10 5DD United Kingdom

Freephone: 0808 501 5166 Local: +44 (0) 1904 221 232 Email:  [email protected]

© University of York Legal statements | Privacy and cookies

Computational thinking & problem-solving

problem solving steps using computational thinking

Wing (2006, 2011) defined 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 a computer. [2]

Computational Thinking (CT) is a process that generalizes a solution to open-ended problems. Open-ended problems encourage full, meaningful answers based on multiple variables, which require using decomposition , data representation, generalization, modeling, and algorithms found in Computational Thinking. Computational Thinking requires the decomposition of the entire decision making process, the variables involved, and all possible solutions, ensuring that the right decision is made based on the corresponding parameters and limitations of the problem. The term computational thinking was first used by Seymour Papert in 1980 and again in 1996. Computational thinking can be used to algorithmically solve complicated problems of scale, and is often used to realize large improvements in efficiency [3]

  • 1.1 Thinking procedurally
  • 1.2 Decisions
  • 1.3 Thinking logically
  • 1.4 Thinking ahead
  • 1.5 Thinking concurrently
  • 1.6 Thinking abstractly
  • 1.7 Connecting computational thinking and program design
  • 1.8 Use of programming languages
  • 2 Standards
  • 3 References

The big ideas in computational thinking [ edit ]

Thinking procedurally [ edit ].

  • Procedural thinking
  • Evaluating process
  • Sub-process

Decisions [ edit ]

Thinking logically [ edit ].

  • Logical rules

Thinking ahead [ edit ]

  • Inputs and outputs
  • Pre-conditions

Thinking concurrently [ edit ]

  • Concurrency

Thinking abstractly [ edit ]

  • Abstraction

Connecting computational thinking and program design [ edit ]

  • Linear arrays
  • Applied algorithmic thinking

Use of programming languages [ edit ]

  • Conditionals
  • Collections

Standards [ edit ]

These standards are used from the IB Computer Science Subject Guide [4]

Identify the procedure appropriate to solving a problem.
Evaluate whether the order in which activities are undertaken will result in the required outcome.
Explain the role of sub-procedures in solving a problem.
Identify when decision-making is required in a specified situation.
Identify the decisions required for the solution to a specified problem.
Identify the condition associated with a given decision in a specified problem.
Explain the relationship between the decisions and conditions of a system.
Deduce logical rules for real-world situations.
Identify the inputs and outputs required in a solution.
Identify pre-planning in a suggested problem and solution.
Explain the need for pre-conditions when executing an algorithm.
Outline the pre- and post-conditions to a specified problem.
Identify exceptions that need to be considered in a specified problem solution.
Identify the parts of a solution that could be implemented concurrently.
Describe how concurrent processing can be used to solve a problem.
Evaluate the decision to use concurrent processing in solving a problem.
Identify examples of abstraction.
Explain why abstraction is required in the derivation of computational solutions for a specified situation.
Construct an abstraction from a specified situation.
Distinguish between a real-world entity and its abstraction.
Describe the characteristics of standard algorithms on linear arrays.
Outline the standard operations of collections.
Discuss an algorithm to solve a specific problem.
Analyse an algorithm presented as a flow chart.
Analyse an algorithm presented as pseudocode.
Construct pseudocode to represent an algorithm.
Suggest suitable algorithms to solve a specific problem.
Deduce the efficiency of an algorithm in the context of its use.
Determine the number of times a step in an algorithm will be performed for given input data.
State the fundamental operations of a computer.
Distinguish between fundamental and compound operations of a computer.
Explain the essential features of a computer language.
Explain the need for higher level languages.
Outline the need for a translation process from a higher level language to machine executable code.
Define the terms: variable, constant, operator, object.
Define common operators.
Analyse the use of variables, constants and operators in algorithms.
Construct algorithms using loops, branching.
Describe the characteristics and applications of a collection.
Construct algorithms using the access methods of a collection.
Discuss the need for sub-programmes and collections within programmed solutions.
Construct algorithms using pre- defined sub-programmes, one- dimensional arrays and/or collections.

References [ edit ]

  • ↑ http://www.flaticon.com/
  • ↑ http://pact.sri.com/downloads/Assessment-Design-Patterns-for-Computational%20Thinking-Practices-Secondary-Computer-Science.pdf
  • ↑ https://en.wikipedia.org/wiki/Computational_thinking
  • ↑ IB Diploma Programme Computer science guide (first examinations 2014). Cardiff, Wales, United Kingdom: International Baccalaureate Organization. January 2012.

Separate into simpler constituents.

Produce a plan, simulation or model.

Apply knowledge or rules to put theory into practice.

Provide an answer from a number of possibilities. Recognize and state briefly a distinguishing fact or feature.

Assess the implications and limitations; make judgments about the ideas, works, solutions or methods in relation to selected criteria.

Give a detailed account including reasons or causes.

Reach a conclusion from the information given.

Give a brief account.

anomalous or exceptional conditions requiring special processing – often changing the normal flow of program execution

Give a detailed account or picture of a situation, event, pattern or process.

Develop information in a diagrammatic or logical form.

Make clear the differences between two or more concepts or items.

Offer a considered and balanced review that includes a range of arguments, factors or hypotheses. Opinions or conclusions should be presented clearly and supported by appropriate evidence.

Break down in order to bring out the essential elements or structure. To identify parts and relationships, and to interpret information to reach conclusions.

Propose a solution, hypothesis or other possible answer.

The circumstances that form the setting for an event, statement, or idea, and in terms of which it can be fully understood and assessed.

Obtain the only possible answer.

A unit of abstract mathematical system subject to the laws of arithmetic.

Give a specific name, value or other brief answer without explanation or calculation.

Give the precise meaning of a word, phrase, concept or physical quantity.

  • Computational thinking
  • Programming
  • Problem-solving
  • Essential idea
  • Grades 6-12
  • School Leaders

Free printable to elevate your AI game 🤖

What Is Computational Thinking and How Can I Use It In My Classroom?

Believe it or not, you can use it in everything you do.

What is computational thinking feature

You might recognize computational thinking as a trendy new buzzword. If you’re asking yourself “What is computational thinking?” or “I teach English—how am I supposed to incorporate it in my classroom?” you’re in the right place.

What is computational thinking?

Computational thinking is thinking and solving problems like a computer, or making your data easy for a computer to solve. This is not limited to math—anyone can use computational thinking. It’s about rearranging and reorganizing your thoughts and information logically. It can be used in things like coding and computer science, but you’re probably doing some of this in your daily instruction already.

Take a look at ISTE computational thinking standards .

What are the 4 pillars of computational thinking skills?

Four pillars of computational thinking

Source: Tiny Thinkers

Computational thinking (CT) consists of four pillars that guide our thinking and problem-solving: decomposition, pattern recognition, abstraction, and algorithms. We use each of these concepts every day. We can break down (or “decompose”) the pillars into smaller parts to learn more about them.

Decomposition

Decomposition means breaking a task or problem into smaller, manageable parts. We do this every day with things like cleaning the house, getting dressed, cooking a recipe, or building furniture. For example, when you clean your house, you don’t start by cleaning the whole house at once. You simplify your tasks: putting the dishes away, putting laundry away, cleaning the bathroom, and cleaning the floors.

Undoubtedly you already do this for your students. Let’s say you’re teaching your students how to write an essay for the first time. Likely, you deconstruct the essay into smaller parts and teach them separately before putting it all together. You might teach your students how to write a topic sentence, how to organize an opening paragraph, how to use supporting details, how to write a conclusion, and how they can reread their work for clarity before they try a full essay on their own.

Pattern Recognition

Pattern recognition is precisely what it sounds like: recognizing patterns. We do this from kindergarten through 12th grade in all subjects, and in our own lives too. To create steps to solve a problem, we first have to recognize the patterns that can help us solve it.

The Common Core mathematical standards require pattern recognition, so math teachers automatically have this covered. But elementary teachers live and breathe patterns with their instruction. They read books containing patterns, create patterns with blocks, play games like Duck-Duck-Goose, and they may even organize their calendars with patterned pieces.

Secondary teachers, you teach patterns too. World language instructors help students identify patterns when teaching conjugations, and science teachers may or may not break into song about the patterns on the periodic table. ADVERTISEMENT

Abstraction

Abstraction is the ability to cut through information to figure out what you genuinely need. You need to identify the crucial parts while tossing the fluff. This is a difficult skill to teach, but it’s necessary for CT (and honestly, for life—wouldn’t it be a dream to go to Target and come home with only the things you needed?). If we can’t remove the noise from our data, we won’t know what we need to solve our problem.

Everyone, even Latin teachers, helps their students weed out unimportant details. In Latin, we derive meaning from the declensions of words (or the endings attached to words —which happen to follow patterns ). In this case, we teach students to make meaning by focusing on the endings of words rather than the order of words since the words can go anywhere in a sentence.

Algorithms are not just for math teachers. We all use algorithms all the time. (And now that you know that, you can sound as fancy as a math teacher when you talk about your “attire algorithm,” aka your procedure for getting dressed.) Algorithms are detailed, step-by-step instructions that you use to solve a problem. When we solve problems with CT, we want to create algorithms to help us solve them while achieving consistent results.

Returning to our “attire algorithm,” we really do use one to get dressed, and it matters. While certain steps might vary from person to person, we all employ the same ideas when we get dressed. We put on underwear before pants and tops, and we put blouses and shirts on before we put on jackets. If it’s cold, we wear long sleeves and sweatshirts or sweaters. If it’s raining, we add rain boots.

Read more about the four pillars.

Why is computational thinking important in education?

Computational thinking is beneficial to anyone seeking a STEM career, especially one based in computer science or technology. But CT is also beneficial in every subject and career. It develops time-management and task-planning skills, essential components of executive functioning. It also teaches us how to give work to others when a project is too big for one person. Because it forces us to think like a computer, it instills analytical and logical reasoning too. Since it’s a way of thinking and not a specific discipline, everyone can use CT. As we integrate technology into all jobs, it’s important to make sure we can complete our work in a technologically compatible way.

Read more about the benefits of CT .

Where is computational thinking used?

Computational thinking jam board

Since computational thinking is thinking in a way that’s compatible with computers and an approach to logical problem-solving, it can be used in every subject, not just STEM. CT is all hands on deck in all grade levels. The good news is that since CT is more of a lifestyle than a subject, you can integrate it into things you are already doing with some tweaks. (Or you may have been doing this for years, in which case you can say, “I was teaching computational thinking before it was cool.”)

How can I teach computational thinking today?

Interested in trying out computational thinking? You can start today. There are endless strategies for teaching computational thinking. Sphero and Teach Your Kids Code offer some easy ways to start teaching CT for which you can easily throw together the materials needed.

One of the best (and probably one of the most hilarious) ways to teach decomposition is to pick a basic task and let your students teach you how to do it. Follow their directions literally. Be aggressively literal when you complete the steps. It can be anything from unpacking a bag to making a sandwich to washing a dish. Your class will quickly be able to identify the tiny steps they missed the first time that are necessary to complete the bigger task.

You can do any type of sort, and you’ve taught pattern recognition.

  • Spelling sorts based on rules such as vowel-consonant-e or short vowel patterns
  • Sort vocabulary words in science or social studies. Provide a word bank and have students sort them by concept or meaning.

Whatever sorting activity you do, have students discuss and explain their reasons for their groupings.

If you need to teach your class how to weed out nonsense quickly, give them a word count assignment. You don’t even need to plan for this one. Assign a writing task as usual, but give them a word count. The students will have to filter out the unimportant details to keep their word count under the limit. You can slide the limit down as they get better at this.

The House lesson, from Cris Tovani’s I Read It, But I Don’t Get It , asks students to find key information based on varying purposes. They have to identify generally important information, then identify information that would be important to a burglar, and finally, identify information that would be of interest to a realtor.

Sphero suggests the age-old peanut butter and jelly sandwich lesson to teach algorithm creation. (You may have to switch to SunButter for your peanut-allergic students). Have your students create recipes to make a PB&J sandwich and then swap with their neighbors. Then they have to make the sandwich from their peers’ recipes. Grab some popcorn as chaos ensues. But shortly afterward, you’ll find your students writing increasingly more detailed steps to get the consistent outcomes they want.

Ready for a challenge? Learn to solve a Rubik’s Cube with your class.

See other examples of CT strategies in action.

Resources and Tools for Developing Computational Thinking

If you are looking for even more ways to use computational thinking in your classroom, check out these resources.

Equip Learning shares some lesson plans by grade level for developing computational thinking.

These coding apps let students practice writing step-by-step directions.

CT Lessons offers lesson plans by subject and grade for many disciplines.

Have more questions about computational thinking and how to teach it to your students? Join the WeAreTeachers HELPLINE group on Facebook to exchange ideas and ask for advice!

Plus, check out our list of critical thinking questions..

Believe it or not, you can use computational thinking in everything you do. Check out our article for more ways to use this way of thinking!

You Might Also Like

Best teacher clipart on purple background and clipart images.

Best Sources for Teacher Clipart (Including Lots of Free Options!)

Fun images for every kind of teacher and lesson! Continue Reading

Copyright © 2024. All rights reserved. 5335 Gate Parkway, Jacksonville, FL 32256

Info for:  (choose one) Tap Enter button to open the role navigation Tap Enter button to close the role navigation

FAQ icon

Need Answers?

Directory Icon

Email, Phone, and Addresses

Graduation cap icon

Explore Degrees

  • Diversity, Inclusion, Justice, Equity (dije)
  • Michigan Education Magazine
  • Mission & Vision
  • Rooms & Floor Plans
  • Courses & Syllabi
  • Tuition & Funding
  • Center for the Study of Higher and Postsecondary Education (CSHPE)
  • Combined Program in Education and Psychology (CPEP)
  • Educational Studies (ES)
  • Educator Preparation Program (EPP)
  • Joint Program in English and Education (JPEE)
  • Learning, Equity, and Problem Solving for the Public Good (LEAPS)
  • Bachelor's
  • Master's
  • Teacher Certification
  • Other Certificates & Endorsements
  • EdHub for Community & Professional Learning

Career Services

  • Marsal School in Action
  • Student Organizations
  • James A. Kelly Learning Lever Prize
  • Center for Education Design, Evaluation and Research (CEDER)
  • Detroit P–20 Partnership
  • Featured Projects & Partners
  • Grants & Awards
  • Prospective Students
  • Admitted Students
  • Current Students
  • Transfer Students
  • Visiting Scholars

Problem Solving Using Computational Thinking

Have you ever heard that computers "think"? Believe it or not, computers really do not think. Instead, they do exactly what we tell them to do. Programming is, "telling the computer what to do and how to do it."

Before you can think about programming a computer, you need to work out exactly what it is you want to tell the computer to do. Thinking through problems this way is Computational Thinking. Computational Thinking allows us to take complex problems, understand what the problem is, and develop solutions. We can present these solutions in a way that both computers and people can understand.

The course includes an introduction to computational thinking and a broad definition of each concept, a series of real-world cases that illustrate how computational thinking can be used to solve complex problems, and a student project that asks you to apply what they are learning about Computational Thinking in a real-world situation. This project will be completed in stages (and milestones) and will also include a final disaster response plan you'll share with other learners like you.

This course is designed for anyone who is just beginning programming, is thinking about programming or simply wants to understand a new way of thinking about problems critically. No prior programming is needed. The examples in this course may feel particularly relevant to a high school audience and were designed to be understandable by anyone.

You will learn:

  • To define Computational Thinking components including abstraction, problem identification, decomposition, pattern recognition, algorithms, and evaluating solutions
  • To recognize Computational Thinking concepts in practice through a series of real-world case examples
  • To develop solutions through the application of Computational Thinking concepts to real world problems

Learn More and Enroll

QUESTIONS ?

Connect with us.

Admissions & Recruitment [email protected]

610 E. University Avenue Ann Arbor, Michigan 48109-1259

OFFICE HOURS

Monday–Friday 8:00 a.m.–5:00 p.m.

ed ut perspiciatis unde omnis iste natus error sit voluptatem accusantium doloremque laudantium, totam rem aperiam, eaque ipsa quae ab illo inventore veritatis et quasi architecto beatae vitae dicta sunt explicabo. Nemo enim ipsam voluptatem quia voluptas sit aspernatur aut odit

Computational Thinking

Lesson overview.

For this activity, no instructions are provided. Instead, students will use examples of what imaginary players have done to figure out how to play the game. This lesson gives students the opportunity to practice the four arts of computational thinking (decomposition, pattern matching, abstraction, and algorithms) in one cohesive activity.

Teaching Summary

Getting started - 15 minutes.

1) Vocabulary 2) Figuring it Out

Activity: Computational Thinking - 25 minutes

3) computational thinking, wrap-up - 10 minutes.

4) Flash Chat - What did we learn? 5) Vocab Shmocab

Assessment - 5 minutes

6) computational thinking assessment, lesson objectives, students will:.

  • Analyze information to draw conclusions
  • Match identical portions of similar phrases to match patterns
  • Identify differences in similar phrases and abstract them out

Teaching Guide

Materials, resources and prep, for the student.

  • One die per group
  • One Computational Thinking Kit per group
  • Pens, Pencils, & Scissors
  • Computational Thinking Assessment for each student

For the Teacher

  • Lesson Video
  • This Teacher Lesson Guide
  • Print one Computational Thinking Kit per group
  • Print one Computational Thinking Assessment for each student

Getting Started (15 min)

1) vocabulary.

This lesson has four new and important words:

problem solving steps using computational thinking

Algorithm - Say it with me: Al-go-ri-thm A list of steps that you can follow to finish a task

Decompose - Say it with me: De-com-pose Break a problem down into smaller pieces

Abstraction - Say it with me: Ab-strac-shun Pulling out specific differences to make one solution work for multiple problems

Pattern Matching - Say it with me: Pat-ern Matching Finding similarities between things

2) Figuring it Out

  • Now, let them know that they must do it all in their heads.
  • Add the time constraint of thirty seconds.
  • They may feel overwhelmed. This is intentional. You can indicate with your tone and demeanor that you might be crazy asking this of them, but begin timing with a resounding: "Starting NOW".
  • Watch the class as you keep time. How many are lost in thought?
  • When time is up, ask if anyone was able to get the total.
  • Ask if there is anyone who thought the problem was so hard that they didn't even attempt it.
  • What did they try?
  • If we break the problem up into smaller pieces, it becomes easier to manage.
  • Let's start at the two ends. What is 200 + 1?
  • What is 199 + 2?
  • What is 198 + 3?
  • See a pattern?
  • What is the last pair we will find? 100 + 101
  • That means that we have 100 total pairs.
  • If we have 100 total pairs of sums of 201, how do we find the final total?
  • Now, what if we wanted to find the trick to do this with other numbers?
  • Can we do it easily with 2,000?
  • How about 20,000?
  • What stays the same? What is different?
  • If we use abstractions to make our end goal something that can change (say we name it "blank") then we can make an algorithm that will work for any number
  • Work through the problem until you ultimately get ? = ("blank"/2) * ("blank"+1)
  • Do a few simple examples to show that the algorithm is correct for blanks= 2, 3, 4, & 5.

"This is all to show that if you use the tools of Computational Thinking (decomposition, pattern matching, abstraction, and algorithms), then you can figure out how to solve problems that no one has already taught you how to solve...just like we did here! This will be an extremely powerful skill for the rest of your life!"

Activities: (25 min)

This lesson is all about a "Game with No Instructions." Students will be charged with figuring out how to play the game as a small group. The small details of their final algorithm are unimportant. What is important is that they were able to take a huge task like "figuring out how to play a game on their own" and take small steps toward achieving the goal.

Students will be guided toward discovering the rules using the steps of computational thinking. Resist the temptation to point the students toward "doing it right" and allow them just to do it on their own. If they feel stumped or confused, encourage the students to look at the information that has been given to them, or if they must, ask a classmate.

Directions:

1) Divide students into groups of 2-4. 2) Have the groups read over user experiences to get an idea of how other students have played the “Game with No Instructions.” 3) Encourage them to pattern match between each experience by circling the sections of words that are identical from player to player. 4) Next, have them abstract away differences from each experience by underlining words that change from player to player. 5) Using pattern matching and abstraction, have them make a script template for game play by writing up the circled parts of the other students’ experiences, and leaving the underlined sections as blanks. For example: 6) Give students a blank sheet of paper to write a list of instructions for how they think this game should be played based on the user experiences that they just read. This will be their algorithm. 7) Have students play the game using the algorithm that they just made. Each player should get at least two turns.

Wrap-up (5 min)

4) flash chat: what did we learn.

  • What should you try to do when you're asked to do something and you don't know how?
  • If a problem is too hard, what should you try to do?
  • If you find similarities in lots of solutions to different problems, what does that probably tell you?
  • If you have a problem that is just a little different from a problem that you have a solution for, what would you do?

Flash Chat questions are intended to spark big-picture thinking about how the lesson relates to the greater world and the students' greater future. Use your knowledge of your classroom to decide if you want to discuss these as a class, in groups, or with an elbow partner.

5) Vocab Shmocab

  • Which one of these definitions did we learn a word for today?
"Bringing two pieces together" "Breaking a problem down into smaller pieces" "An educated guess" ...and what is the word that we learned?

Assessment (5 min)

  • Hand out the assessment worksheet and allow students to complete the activity independently after the instructions have been well explained.
  • This should feel familiar, thanks to the previous activities.

Connections and Background Information

Iste standards (formerly nets).

  • 1.a - Apply existing knowledge to generate new ideas, products, or processes.
  • 1.c - Use models and simulation to explore complex systems and issues.
  • 2.d - Contribute to project teams to solve problems.
  • 4.b - Plan and manage activities to develop a solution or complete a project.
  • 4.d - Use multiple processes and diverse perspectives to explore alternative solutions.

CSTA K-12 Computer Science Standards

  • CPP.L1:6-05. Construct a program as a set of step-by-step instructions to be acted out.
  • CT.L1:6-02. Develop a simple understanding of an algorithm using computer-free exercises.
  • CT.L2-01. Use the basic steps in algorithmic problem solving to design solutions.
  • CT.L2-06. Describe and analyze a sequence of instructions being followed.
  • CT.L2-08. Use visual representations of problem states, structures, and data.
  • CT.L2-12. Use abstraction to decompose a problem into sub problems.
  • CT.L2-14. Examine connections between elements of mathematics and computer science including binary numbers, logic, sets, and functions.

NGSS Science and Engineering Practices

  • 3-5-ETS1-2. Generate and compare multiple possible solutions to a problem based on how well each is likely to meet the criteria and constraints of the problem.

Common Core Mathematical Practices

  • 1. Make sense of problems and persevere in solving them.
  • 2. Reason abstractly and quantitatively.
  • 3. Construct viable arguments and critique the reasoning of others.
  • 6. Attend to precision.
  • 7. Look for and make use of structure.
  • 8. Look for and express regularity in repeated reasoning.

Common Core Math Standards

  • 3.OA.3 - Use multiplication and division within 100 to solve word problems in situations involving equal groups, arrays, and measurement quantities.
  • 4.NBT.B.4 - Fluently add and subtract multi-digit whole numbers using the standard algorithm.
  • 5.NBT.B.5 - Fluently multiply multi-digit whole numbers using the standard algorithm.

Common Core Language Arts Standards

  • SL.3.1 - Engage effectively in a range of collaborative discussions (one-on-one, in groups, and teacher-led) with diverse partners on grade 3 topics and texts, building on others' ideas and expressing their own clearly.
  • SL.3.3 - Ask and answer questions about information from a speaker, offering appropriate elaboration and detail.
  • L.3.6 - Acquire and use accurately grade-appropriate conversational, general academic, and domain-specific words and phrases, including those that signal spatial and temporal relationships.
  • SL.4.1 - Engage effectively in a range of collaborative discussions (one-on-one, in groups, and teacher-led) with diverse partners on grade 4 topics and texts, building on others' ideas and expressing their own clearly.
  • L.4.6 - Acquire and use accurately grade-appropriate general academic and domain-specific words and phrases, including those that signal precise actions, emotions, or states of being and that are basic to a particular topic.
  • SL.5.1 - Engage effectively in a range of collaborative discussions (one-on-one, in groups, and teacher-led) with diverse partners on grade 5 topics and texts, building on others' ideas and expressing their own clearly.
  • L.5.6 - Acquire and use accurately grade-appropriate general academic and domain-specific words and phrases, including those that signal contrast, addition, and other logical relationships

problem solving steps using computational thinking

Learning

Relatable Examples of Computational Thinking for Students

by Lcom Team | Sep 28, 2023 | Blogs

Students using computational thinking while building with legos during class

Share this article!

Examples of How Students Already Apply Computational Thinking in Everyday Life

Computational thinking is a valuable problem-solving skill for students and adults alike. Although computational thinking has the misconception of primarily involving technology or coding, it is applied in almost all areas of life—often without individuals recognizing they’re doing so. By showing students how they may already be effectively using computational thinking in their everyday lives, teachers can empower students to identify future opportunities for effective computational thinking and problem solving in everyday life.

In this article, we discuss examples of how students may already be effectively using computational thinking in their everyday lives.

1. Solving Puzzles or Playing Games

Whether they recognize it or not, most students utilize computational thinking when they are solving puzzles or playing games. For instance, children learn early how to put jigsaw puzzles together by analyzing the shapes and patterns on pieces. Eventually, children also develop a step-by-step process for solving puzzles faster and more effectively; for instance, finding corner pieces, filling in edge pieces then matching up the colors and patterns of different areas of the puzzle.

The same applies to puzzles such as sudoku or Rubik’s Cubes as well as strategy-based games such as Zelda, ROBLOX or Minecraft.  

“My 10-year-old loves Mancala and she is exceptional at it. She has broken down the process into repeatable steps based on whether she gets the first move or second move, as well as a mental ‘checklist’ for analyzing and determining the most effective next moves. She’s basically used computational thinking to remove the need for extraneous strategy conceptualization from every game, instead applying a repeatable strategy that increases efficacy and efficiency during gameplay.” -Mikelle D.

2. Building with Legos or Blocks

Many children enjoy constructing with Lego bricks, magnetic tiles or other building toys. These, too, are everyday life examples of computational thinking students may already be using without knowing it. Constructing something using these toy building materials takes planning, designing and problem solving. Students use computational thinking not only in the conceptualization and building phase, but also in troubleshooting their designs.  

3. Math Problems

Whether solving math problems on a worksheet or in a textbook or implementing math problem solving in real life, students are already using computational thinking to solve math equations, often without recognizing it. Solving math problems, especially word problems, requires children to use computational thinking to identify the problem, break it down into steps then apply mathematical operations to find a solution.

4. Science Experiments

Science experiments are another example of how students apply computational thinking in their everyday life. We know that the scientific method requires a series of steps—formulating a hypothesis, designing an experiment, collecting data and drawing conclusions. What students might not realize is that the scientific process is an example of computational thinking in real life. In addition, they likely implement this process without realizing it during everyday life, such as when problem solving, exploring a new idea, innovating or troubleshooting.

5. Creative and Academic Writing

Students also use computational thinking in writing, whether creative writing for fun or academic writing for class. Storytelling, for example, requires a child to organize ideas, structure narratives, and think critically about cause-and-effect relationships. Academic writing includes similar organization and structuring as well as critical thinking.  

6. Art and Design  

While computational thinking is typically considered a digital or technology-based skill, even creative and artistic-minded students can find they use computational thinking in everyday life. For instance, in the beginning stages of drawing or painting, a student will plan designs and layouts for their creations. They’ll make decisions related to colors and shapes, as well as problem-solving as their design continues to progress. All these steps are part of the computational thinking process.

7. Solving Everyday Problems

Whether they recognize it or not, most students are already using computational thinking to solve problems they encounter in their everyday lives. Younger students may recognize computational thinking in how they organize their toys or share with a friend or family member. Older students may recognize this process in how they plan or execute a bike route, organize their schedule, complete homework, set goals or solve real-life problems.

Final Thoughts

By teaching students to identify areas where they already use computational thinking in their lives, teachers can make computational thinking more relatable, showing how it not only benefits students in current life but also in school, future careers, and life in general. This important step in teaching computational thinking empowers students to more conscientiously identify opportunities to utilize computational thinking in the future and to effectively implement the computational thinking process.

Learning.com Staff Writers

Learning.com Team

Staff Writers

Founded in 1999, Learning.com provides educators with solutions to prepare their students with critical digital skills. Our web-based curriculum for grades K-12 engages students as they learn keyboarding, online safety, applied productivity tools, computational thinking, coding and more.

Further Reading

Teaching Students to Think Like Programmers | Learning.com

  • Teaching Students to Think Like Programmers | Learning.com

by Lcom Team | Aug 27, 2024

Recent discussions in education emphasize the importance of teaching students to think like computer programmers. Computational thinking involves...

Defining Computational Thinking

  • Defining Computational Thinking

by Lcom Team | Aug 24, 2024

Computational thinking is a problem-solving process that involves various techniques and thought processes borrowed from computer science. It...

Supporting Texas Students in Becoming Tech-Strong: Expert Strategies

  • Supporting Texas Students in Becoming Tech-Strong: Expert Strategies

by Lcom Team | Aug 22, 2024

The rapidly evolving technological landscape means students must develop robust digital skills to thrive in future careers. Texas recognizes this...

Quick Links

  • Request More Info

Recent news & Articles

  • How Computer Fundamentals Equip Students for Success
  • Algorithmic Thinking: A Critical Skill for Today’s Students

IMAGES

  1. Core Concepts Of Computational Thinking For Problem Solving

    problem solving steps using computational thinking

  2. Computational Thinking Defined. What is Computational Thinking and

    problem solving steps using computational thinking

  3. Computational Thinking

    problem solving steps using computational thinking

  4. shows, the Framework of Computational Thinking as a Problem-Solving

    problem solving steps using computational thinking

  5. Problem Solving Using Computational Thinking

    problem solving steps using computational thinking

  6. Problem-solving process based on computational thinking

    problem solving steps using computational thinking

VIDEO

  1. Problem solving using computational thinking through case study#computational thinking#शिक्षण परिषद

  2. Problem Solving Steps| First Topic Chapter#01| 9th Class Computer

  3. Problem Solving Using Computational Thinking Quiz Answers

  4. Problem Solving steps

  5. Computational thinking

  6. Level 2 Computing Lesson 6: Using Algorithms to Solve a Problem

COMMENTS

  1. How to Use Computational Thinking to Solve Problems Like a Pro

    Algorithms. Finding steps to solve the smaller problems which will then lead to a solution for the main problem. You can use computational thinking in many aspects of your life. However, it is particularly helpful when it comes to solving everyday problems. That's because it breaks down a complex problem into manageable parts.

  2. Computational Thinking Defined. What is Computational Thinking and

    Computational Thinking is a set of techniques for solving complex problems that can be classified into three steps: Problem Specification, Algorithmic Expression, and Solution Implementation & Evaluation.The principles involved in each step of the Computational Thinking approach are listed above and discussed in detail below.

  3. PDF THE ULTIMATE GUIDE TO Computational Thinking

    More specifically, computational thinking is a set of skills and processes that guide problem solving. What makes this especially different from other problem-solving processes is that it, in the end, results in an algorithm, which is a series of steps a person or computer uses to perform a task or solve a problem. Computational thinking is derived

  4. Lesson 1: What is computational thinking?

    The four components of computational thinking. 1. Decomposition. In simple terms, decomposition is the process of breaking down a large problem into smaller problems. There are a few reasons why this is helpful in the bigger picture. It gives you insight into the practicalities associated with solving the problem.

  5. Problem Solving Using Computational Thinking

    Thinking through problems this way is Computational Thinking. Computational Thinking allows us to take complex problems, understand what the problem is, and develop solutions. We can present these solutions in a way that both computers and people can understand. The course includes an introduction to computational thinking and a broad ...

  6. Computational thinking, what it is, phases and characteristics

    Computational thinking involves breaking down complex problems into smaller, more manageable parts. Think of it as disassembling a puzzle to understand how the pieces fit together. This skill enables you to address any problem, not just tech-related ones, in a structured and logical manner. Computational thinking promotes step-by-step problem ...

  7. Exploring Computational Thinking

    Computational Thinking (CT) is a problem solving process that includes a number of characteristics and dispositions. CT is essential to the development of computer applications, but it can also be used to support problem solving across all disciplines, including math, science, and the humanities. ... Students will draw shapes using simple ...

  8. Computational Thinking for Problem Solving

    In this course, you will learn about the pillars of computational thinking, how computer scientists develop and analyze algorithms, and how solutions can be realized on a computer using the Python programming language. By the end of the course, you will be able to develop an algorithm and express it to the computer by writing a simple Python ...

  9. PDF TECH TIP: Computational Thinking

    TECH TIP: Computational ThinkingComputational thinking (CT) at its core is a problem-solving process that can be used by everyone, in a variety of con. ent areas and everyday contexts. Computational thinking is an approach in which you break down problems into distinct parts, look for similarities, identify the relevant information and ...

  10. PDF A Computational Thinking Process for Problem Solving

    Identify where you can use CT elements to address sub-parts. Help organize your next steps. Design an algorithm to address your computational problem. Your design can be a flow chart, decision tree, pseudo code or other approach. First, establish a set of procedures. Then, have others follow your procedures.

  11. What is computational thinking?

    Computational thinking competencies are a requirement for any computer programmer working on algorithms, whether they're for automation projects, designing virtual reality simulations, or developing robotics programmes. But this thinking process can also be taught as a template for any kind of problem, and used by any person, particularly ...

  12. Computational thinking & problem-solving

    Computational Thinking: Suggest suitable algorithms to solve a specific problem. Computational Thinking: Deduce the efficiency of an algorithm in the context of its use. Computational Thinking: Determine the number of times a step in an algorithm will be performed for given input data. Computational Thinking: State the fundamental operations of ...

  13. What Is Computational Thinking? (Plus How To Teach It)

    Computational thinking is thinking and solving problems like a computer, or making your data easy for a computer to solve. This is not limited to math—anyone can use computational thinking. It's about rearranging and reorganizing your thoughts and information logically. It can be used in things like coding and computer science, but you're ...

  14. Four computational thinking strategies for building problem-solving

    Learn how to integrate computational thinking into any subject using four strategies: decomposition, pattern recognition, abstraction and algorithmic design. See examples of how teachers and students apply these strategies to real-world problems and challenges.

  15. Problem Solving Using Computational Thinking

    The course includes an introduction to computational thinking and a broad definition of each concept, a series of real-world cases that illustrate how computational thinking can be used to solve complex problems, and a student project that asks you to apply what they are learning about Computational Thinking in a real-world situation. This project will be completed in stages (and milestones ...

  16. Identification of Problem-Solving Techniques in Computational Thinking

    The results indicate that (a) problem-solving is discussed in the 37 articles in the context of Computational Thinking, (b) the most frequently employed Computational Thinking stages in problem-solving skills are decomposition, pattern recognition, abstraction, and algorithm, (c) Computational Thinking is closely linked to problem-solving, and ...

  17. Computational Thinking

    1.a - Apply existing knowledge to generate new ideas, products, or processes. 1.c - Use models and simulation to explore complex systems and issues. 2.d - Contribute to project teams to solve problems. 4.b - Plan and manage activities to develop a solution or complete a project.

  18. PDF THE SIX STEPS OF COMPUTATIONAL THINKING

    Computational Thinking combines critical thinking skills with the power of computing. THE SIX STEPS OF COMPUTATIONAL THINKING To get started, have students think about solving a problem much like a computer would. THE CLASSROOM AND BEYOND Computational Thinking can be applied across all core areas. Try some of these activities with your

  19. Relatable Examples of Computational Thinking for Students

    Solving math problems, especially word problems, requires children to use computational thinking to identify the problem, break it down into steps then apply mathematical operations to find a solution. 4. Science Experiments. Science experiments are another example of how students apply computational thinking in their everyday life.