• Online Degree Explore Bachelor’s & Master’s degrees
  • MasterTrack™ Earn credit towards a Master’s degree
  • University Certificates Advance your career with graduate-level learning
  • Top Courses
  • Join for Free

University of Pennsylvania

Computational Thinking for Problem Solving

Taught in English

Some content may not be translated

Financial aid available

111,906 already enrolled

Gain insight into a topic and learn the fundamentals

Susan Davidson

Instructor: Susan Davidson

(1,356 reviews)

Coursera Plus

Included with Coursera Plus

Skills you'll gain

  • Simple Algorithm
  • Python Programming
  • Problem Solving
  • Computation

Details to know

problem solving consist of five steps using computational thinking

Add to your LinkedIn profile

See how employees at top companies are mastering in-demand skills

Placeholder

Earn a career certificate

Add this credential to your LinkedIn profile, resume, or CV

Share it on social media and in your performance review

Placeholder

There are 4 modules in this course

Computational thinking is the process of approaching a problem in a systematic manner and creating and expressing a solution such that it can be carried out by a computer. But you don't need to be a computer scientist to think like a computer scientist! In fact, we encourage students from any field of study to take this course. Many quantitative and data-centric problems can be solved using computational thinking and an understanding of computational thinking will give you a foundation for solving problems that have real-world, social impact.

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.

Pillars of Computational Thinking

Computational thinking is an approach to solving problems using concepts and ideas from computer science, and expressing solutions to those problems so that they can be run on a computer. As computing becomes more and more prevalent in all aspects of modern society -- not just in software development and engineering, but in business, the humanities, and even everyday life -- understanding how to use computational thinking to solve real-world problems is a key skill in the 21st century. Computational thinking is built on four pillars: decomposition, pattern recognition, data representation and abstraction, and algorithms. This module introduces you to the four pillars of computational thinking and shows how they can be applied as part of the problem solving process.

What's included

6 videos 4 quizzes 2 peer reviews 4 discussion prompts

6 videos • Total 44 minutes

  • 1.1 Introduction • 4 minutes • Preview module
  • 1.2 Decomposition • 6 minutes
  • 1.3 Pattern Recognition • 5 minutes
  • 1.4 Data Representation and Abstraction • 7 minutes
  • 1.5 Algorithms • 8 minutes
  • 1.6 Case Studies • 11 minutes

4 quizzes • Total 50 minutes

  • 1.2 Decomposition • 10 minutes
  • 1.3 Pattern Recognition • 10 minutes
  • 1.4 Data Representation and Abstraction • 15 minutes
  • 1.5 Algorithms • 15 minutes

2 peer reviews • Total 60 minutes

  • Applying Computational Thinking in Your Life • 30 minutes
  • Project Part 1: Applying the Pillars of Computational Thinking • 30 minutes

4 discussion prompts • Total 40 minutes

  • Applying Decomposition in Your Life • 10 minutes
  • Applying Pattern Recognition in Your Life • 10 minutes
  • Applying Data Representation and Abstraction in Your Life • 10 minutes
  • Applying Algorithms in Your Life • 10 minutes

Expressing and Analyzing Algorithms

When we use computational thinking to solve a problem, what we’re really doing is developing an algorithm: a step-by-step series of instructions. Whether it’s a small task like scheduling meetings, or a large task like mapping the planet, the ability to develop and describe algorithms is crucial to the problem-solving process based on computational thinking. This module will introduce you to some common algorithms, as well as some general approaches to developing algorithms yourself. These approaches will be useful when you're looking not just for any answer to a problem, but the best answer. After completing this module, you will be able to evaluate an algorithm and analyze how its performance is affected by the size of the input so that you can choose the best algorithm for the problem you’re trying to solve.

7 videos 6 quizzes 4 peer reviews

7 videos • Total 68 minutes

  • 2.1 Finding the Largest Value • 8 minutes • Preview module
  • 2.2 Linear Search • 5 minutes
  • 2.3 Algorithmic Complexity • 8 minutes
  • 2.4 Binary Search • 11 minutes
  • 2.5 Brute Force Algorithms • 13 minutes
  • 2.6 Greedy Algorithms • 9 minutes
  • 2.7 Case Studies • 12 minutes

6 quizzes • Total 65 minutes

  • 2.1 Finding the Largest Value • 10 minutes
  • 2.2 Linear Search • 10 minutes
  • 2.3 Algorithmic Complexity • 10 minutes
  • 2.4 Binary Search • 10 minutes
  • 2.5 Brute Force Algorithms • 15 minutes
  • 2.6 Greedy Algorithms • 10 minutes

4 peer reviews • Total 115 minutes

  • Finding Minimum Values • 30 minutes
  • Binary Search • 30 minutes
  • Greedy vs. Brute Force Algorithms • 30 minutes
  • Project Part 2: Describing Algorithms Using a Flowchart • 25 minutes

Fundamental Operations of a Modern Computer

Computational thinking is a problem-solving process in which the last step is expressing the solution so that it can be executed on a computer. However, before we are able to write a program to implement an algorithm, we must understand what the computer is capable of doing -- in particular, how it executes instructions and how it uses data. This module describes the inner workings of a modern computer and its fundamental operations. Then it introduces you to a way of expressing algorithms known as pseudocode, which will help you implement your solution using a programming language.

6 videos 5 quizzes 5 peer reviews

6 videos • Total 45 minutes

  • 3.1 A History of the Computer • 7 minutes • Preview module
  • 3.2 Intro to the von Neumann Architecture • 8 minutes
  • 3.3 von Neumann Architecture Data • 6 minutes
  • 3.4 von Neumann Architecture Control Flow • 5 minutes
  • 3.5 Expressing Algorithms in Pseudocode • 8 minutes
  • 3.6 Case Studies • 10 minutes

5 quizzes • Total 50 minutes

  • 3.1 A History of the Computer • 10 minutes
  • 3.2 Intro to the von Neumann Architecture • 10 minutes
  • 3.3 von Neumann Architecture Data • 10 minutes
  • 3.4 von Neumann Architecture Control Flow • 10 minutes
  • 3.5 Expressing Algorithms in Pseudocode • 10 minutes

5 peer reviews • Total 120 minutes

  • von Neumann Architecture Data & Instructions • 30 minutes
  • Reading & Writing Pseudocode • 25 minutes
  • Project Part 3: Writing Pseudocode • 25 minutes
  • (Optional) von Neumann Architecture Control Instructions • 20 minutes
  • (Optional) Understanding Pseudocode • 20 minutes

Applied Computational Thinking Using Python

Writing a program is the last step of the computational thinking process. It’s the act of expressing an algorithm using a syntax that the computer can understand. This module introduces you to the Python programming language and its core features. Even if you have never written a program before -- or never even considered it -- after completing this module, you will be able to write simple Python programs that allow you to express your algorithms to a computer as part of a problem-solving process based on computational thinking.

9 videos 12 readings 12 quizzes

9 videos • Total 90 minutes

  • 4.1 Introduction to Python • 6 minutes • Preview module
  • 4.2 Variables • 13 minutes
  • 4.3 Conditional Statements • 8 minutes
  • 4.4 Lists • 7 minutes
  • 4.5 Iteration • 14 minutes
  • 4.6 Functions • 10 minutes
  • 4.7 Classes and Objects • 9 minutes
  • 4.8 Case Studies • 11 minutes
  • 4.9 Course Conclusion • 8 minutes

12 readings • Total 125 minutes

  • Programming on the Coursera Platform • 10 minutes
  • Python Playground • 0 minutes
  • Variables Programming Activity • 20 minutes
  • Solution to Variables Programming Activity • 10 minutes
  • Conditionals Programming Activity • 20 minutes
  • Solution to Conditionals Programming Activity • 10 minutes
  • Solution to Lists Programming Assignment • 5 minutes
  • Solution to Loops Programming Assignment • 10 minutes
  • Solution to Functions Programming Assignment • 10 minutes
  • Solution to Challenge Programming Assignment • 10 minutes
  • Solution to Classes and Objects Programming Assignment • 10 minutes
  • Solution to Project Part 4 • 10 minutes

12 quizzes • Total 185 minutes

  • (Optional) Challenge Programming Assignment • 20 minutes
  • 4.2 Variables • 10 minutes
  • 4.3 Conditional Statements • 5 minutes
  • 4.4 Lists • 10 minutes
  • Lists Programming Assignment • 15 minutes
  • 4.5 Iteration • 10 minutes
  • Loops Programming Assignment • 30 minutes
  • Functions Programming Assignment • 20 minutes
  • 4.7 Classes and Objects • 10 minutes
  • Classes and Objects Programming Assignment • 20 minutes
  • Project Part 4: Implementing the Solution in Python • 25 minutes

Instructor ratings

We asked all learners to give feedback on our instructors based on the quality of their teaching style.

problem solving consist of five steps using computational thinking

The University of Pennsylvania (commonly referred to as Penn) is a private university, located in Philadelphia, Pennsylvania, United States. A member of the Ivy League, Penn is the fourth-oldest institution of higher education in the United States, and considers itself to be the first university in the United States with both undergraduate and graduate studies.

Recommended if you're interested in Algorithms

problem solving consist of five steps using computational thinking

University of Michigan

Problem Solving Using Computational Thinking

problem solving consist of five steps using computational thinking

Coursera Project Network

Créer des connexions sécurisées avec Tor pour l'anonymat

Guided Project

problem solving consist of five steps using computational thinking

Google Cloud

Design Conversational Flows for your Agent

problem solving consist of five steps using computational thinking

كيفية إنشاء قصة على الانستغرام باستخدام كانفا

Prepare for a degree.

Taking this course by University of Pennsylvania may provide you with a preview of the topics, materials and instructors in a related degree program which can help you decide if the topic or university is right for you.

University of Pennsylvania

Master of Computer and Information Technology

Degree · 16 – 40 months

Why people choose Coursera for their career

problem solving consist of five steps using computational thinking

Learner reviews

Showing 3 of 1356

1,356 reviews

Reviewed on Nov 18, 2018

Well taught with good examples and exercises that require thinking but still approachable. Very well laid out and taught. Definitely sparked an interest to go learn more.

Reviewed on Dec 19, 2018

Excellent course for beginners with enough depth, programming and computational theory to increase their computer science knowledge to a higher level. It builds a good foundation of how computers work

Reviewed on Feb 4, 2019

The course is very well-designed and it helped me develop understand how to apply computational thinking in solving various types of problems as well as acquire basic skills of programming in Python.

New to Algorithms? Start here.

Placeholder

Open new doors with Coursera Plus

Unlimited access to 7,000+ world-class courses, hands-on projects, and job-ready certificate programs - all included in your subscription

Advance your career with an online degree

Earn a degree from world-class universities - 100% online

Join over 3,400 global companies that choose Coursera for Business

Upskill your employees to excel in the digital economy

Frequently asked questions

Do i need to know how to program or have studied computer science in order to take this course.

No, definitely not! This course is intended for anyone who has an interest in approaching problems more systematically, developing more efficient solutions, and understanding how computers can be used in the problem solving process. No prior computer science or programming experience is required.

How much math do I need to know to take this course?

Some parts of the course assume familiarity with basic algebra, trigonometry, mathematical functions, exponents, and logarithms. If you don’t remember those concepts or never learned them, don’t worry! As long as you’re comfortable with multiplication, you should still be able to follow along. For everything else, we’ll provide links to references that you can use as a refresher or as supplemental material.

Does this course prepare me for the Master of Computer and Information Technology (MCIT) degree program at the University of Pennsylvania?

This course will help you discover whether you have an aptitude for computational thinking and give you some beginner-level experience with online learning. In this course you will learn several introductory concepts from MCIT instructors produced by the same team that brought the MCIT degree online.

If you have a bachelor's degree and are interested in learning more about computational thinking, we encourage you to apply to MCIT On-campus (http://www.cis.upenn.edu/prospective-students/graduate/mcit.php) or MCIT Online (https://www.coursera.org/degrees/mcit-penn). Please mention that you have completed this course in the application.

Where can I find more information about the Master of Computer and Information Technology (MCIT) degree program at the University of Pennsylvania?

Use these links to learn more about MCIT:

MCIT On-campus: http://www.cis.upenn.edu/prospective-students/graduate/mcit.php

MCIT Online: https://www.coursera.org/degrees/mcit-penn

When will I have access to the lectures and assignments?

Access to lectures and assignments depends on your type of enrollment. If you take a course in audit mode, you will be able to see most course materials for free. To access graded assignments and to earn a Certificate, you will need to purchase the Certificate experience, during or after your audit. If you don't see the audit option:

The course may not offer an audit option. You can try a Free Trial instead, or apply for Financial Aid.

The course may offer 'Full Course, No Certificate' instead. This option lets you see all course materials, submit required assessments, and get a final grade. This also means that you will not be able to purchase a Certificate experience.

What will I get if I purchase the Certificate?

When you purchase a Certificate you get access to all course materials, including graded assignments. Upon completing the course, your electronic Certificate will be added to your Accomplishments page - from there, you can print your Certificate or add it to your LinkedIn profile. If you only want to read and view the course content, you can audit the course for free.

What is the refund policy?

You will be eligible for a full refund until two weeks after your payment date, or (for courses that have just launched) until two weeks after the first session of the course begins, whichever is later. You cannot receive a refund once you’ve earned a Course Certificate, even if you complete the course within the two-week refund period. See our full refund policy Opens in a new tab .

Is financial aid available?

Yes. In select learning programs, you can apply for financial aid or a scholarship if you can’t afford the enrollment fee. If fin aid or scholarship is available for your learning program selection, you’ll find a link to apply on the description page.

More questions

Computational thinking & problem-solving

problem solving consist of five 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 ].

This topic has formative assessment as part of the article.

  • 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 [5]

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
  • ↑ Icons made by https://www.flaticon.com/authors/eucalyp from https://www.flaticon.com/
  • ↑ 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
  • Skip to Nav
  • Skip to Main
  • Skip to Footer

Landmark College

Four computational thinking strategies for building problem-solving skills across the curriculum

Please try again

Four light bulbs

Two decades into the 21st century, educators are still tackling the question of how to help young people prepare for a rapidly evolving work landscape . Industry leaders have long called for more emphasis on skills such as critical thinking , communication and problem-solving , though the definitions and methods for teaching all of these can vary widely. At the International Society for Technology in Education conference in July, a number of education leaders and teachers discussed a framework that can help build students’ problem-solving skills in any subject: computational thinking.

Much of the research and discussion on computational thinking in the last twenty years has focused on computer science contexts . Harvard’s Karen Brennan , for example, has led studies and developed resources on computational thinking with Scratch . But several advocates argued that these skills are not just applicable to coding and should be integrated across the curriculum. They outlined four strategies that make up the computational thinking process:

Decomposition - breaking a complex problem into smaller parts or questions

Pattern recognition - identifying trends, differences or similarities in data

Abstraction - removing unnecessary elements or data to focus on what’s useful in solving a problem

Algorithmic design - making steps and rules to solve problems

Most problems will require students to employ multiple strategies. Julie Evans , CEO of the education nonprofit Project Tomorrow, illustrated that point by asking attendees at one session to draw a cat in less than 30 seconds. No drawing looked exactly the same, but the participating educators had to quickly break their mental image of a cat into important parts, such as a tail and whiskers (decomposition). They discarded unnecessary data; for instance, a cat can be conveyed by drawing its head and body or just its face (abstraction). And they envisioned and executed steps to get from a blank page to a completed drawing (algorithmic design).

Bryan Cox, who works in the Georgia Department of Education to broaden computer science education, offered practical and pedagogical reasons for integration. Not all schools offer computer science and even at schools that do, not all students take those classes . For elementary school teachers, stand-alone computer science lessons can feel like one more thing to add to an already packed curriculum. “Integration is less disruptive,” Cox said. He also said integration mirrors how computational thinking occurs in the real world in fields like medicine, automotives, law and sports.

Over the past two years, Project Tomorrow trained 120 teachers in New York City elementary schools to integrate computational thinking into their classrooms. In one example from a second and third grade writing unit, students wrote a realistic fiction story and created a movie to bring the story to life. That may sound like a pretty typical language arts project, but the difference was in the approach, according to Project Tomorrow instructional coach David Gomez. Rather than being told how to write a realistic fiction story, students developed an algorithm for the process, with steps such as making up a pretend character, giving the character a name, imagining the setting and so on. In this example and others, Gomez said that algorithms help students acknowledge the steps they are following during a task and increase their awareness of their work processes.

Gomez works with teachers to help students recognize when they’re using other computational thinking strategies, too. One second grade teacher, for example, used a poster with sticky notes for students to reflect on which strategies they’d used in different subjects throughout the day.

Evans said she loves hearing kids identify the strategies in discussions with each other. She’s heard questions like “Did you try abstraction?” and “Why didn’t you do pattern recognition ?” from students chatting with classmates. “Those little tykes in second grade are already developing their problem-solving muscles, and they’ve got the vocabulary to have that be a sustainable skill for the future,” she said.

Crafting computational problems

Not every question or problem is a computational one. Carolyn Sykora, senior director of the ISTE Standards programs, shared three characteristics that teachers can use to identify a computational problem:

  • It’s open-ended with multiple potential solutions. “How can we design a car to get from point A to point B?” is an example that meets this criteria, whereas “How does a self-driving car work?” is a knowledge-based question.
  • It requires using or collecting data. Data doesn’t just mean numbers. It could, for example, be the lines in a poem or the notes in a musical composition.
  • It includes an opportunity to create a procedure or algorithm. In some cases, such as an engineering challenge, it’s easy to identify where this opportunity will arise. But often that’s not so clear. “Sometimes you don’t understand where the algorithm design comes into play until you do your problem decomposition,” Sykora said.

Using these characteristics can help teachers rethink curriculum, rather than trying to add something new. “We have our tried and true lessons and the things that we want our kids to learn,” Sykora said. The next step is to look at those lessons and ask, “How can we take something that’s knowledge-based and turn it into a computational problem?”

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
  • 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]

LOCATION & OFFICE HOURS

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

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

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 979 ratings

problem solving consist of five steps using computational thinking

U-M Credit Eligible

problem solving consist of five 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

UNIT 1: How to Think Like an Engineer.

Learning objectives.

  • Explain what we mean by “Computational Thinking”.
  • Describe the problem being solved in a computational algorithm.
  • Explain the process for generating computational algorithms.
  • Generate and test algorithms to solve computational problems.
  • Evaluate computational algorithms for exactness, correctness, termination, generalizability and understandability.
  • Explain the role of programming in the field of Informatics.

Introduction

The goal of this book is to teach you to solve computational problems and to think like an engineer. Computational problems are problems that can be solved by the use of computations (a computation is what you do when you calculate something). Engineers are people who solve problems – they invent, design, analyze, build and test “things” to fulfill objectives and requirements. The single most important skill for you to learn is problem solving. Problem solving means the ability to formulate problems, think creatively about solutions, and express a solution clearly and accurately. As it turns out, the process of learning to program is an excellent opportunity to practice problem-solving skills.

This book strives to prepare you to write well-designed computer programs that solve interesting problems involving data.

Computational Thinking

image

Figure 1: “The seven components to computational thinking”(www.ignitemyfutureinschool.org/about)

Computational Thinking is the thought processes involved in understanding a problem and expressing its solution in a way that a computer can effectively carry out. Computational thinking involves solving problems, designing systems, and understanding human behavior (e.g. what the user needs or wants) – thinking like an engineer. Computational thinking is a fundamental skill for everyone, not just for programmers because computational thinking is what comes before any computing technology. [1]

Computer science is the study of computation — what can be computed and how to compute it whereas computational thinking is:

Conceptualizing , not programming. Computer science is not only computer programming. Thinking like a computer scientist means more than being able to program a computer. It requires thinking at multiple levels of abstraction;

Fundamental , not rote skill. A fundamental skill is something every human being must know to function in modern society. Rote means a mechanical routine;

A way that humans, not computers, think . Computational thinking is a way humans solve problems; it is not trying to get humans to think like computers. Computers are dull and boring; humans are clever and imaginative. We humans make computers exciting. Equipped with computing devices, we use our cleverness to tackle problems we would not dare take on before the age of computing and build systems with functionality limited only by our imaginations;

Complements and combines mathematical and engineering thinking . Computer science inherently draws on mathematical thinking, given that, like all sciences, its formal foundations rest on mathematics. Computer science inherently draws on engineering thinking, given that we build systems that interact with the real world;

Ideas , not artifacts. It’s not just the software and hardware artifacts we produce that will be physically present everywhere and touch our lives all the time, it will be the computational concepts we use to approach and solve problems, manage our daily lives, and communicate and interact with other people;

For everyone, everywhere . Computational thinking will be a reality when it is so integral to human endeavors it disappears as an explicit philosophy. [2]

problem solving consist of five steps using computational thinking

Figure 2 “Are you happy?” by Typcut http://www.typcut.com/headup/are-you-happy

An algorithm specifies a series of steps that perform a particular computation or task. Throughout this book we’ll examine a number of different algorithms to solve a variety of computational problems.

Algorithms resemble recipes. Recipes tell you how to accomplish a task by performing a number of steps. For example, to bake a cake the steps are: preheat the oven; mix flour, sugar, and eggs thoroughly; pour into a baking pan; set the timer and bake until done.

However, “algorithm” is a technical term with a more specific meaning than “recipe”, and calling something an algorithm means that the following properties are all true:

  • An algorithm is an unambiguous description that makes clear what has to be implemented in order to solve the problem. In a recipe, a step such as “Bake until done” is ambiguous because it doesn’t explain what “done” means. A more explicit description such as “Bake until the cheese begins to bubble” is better. In a computational algorithm, a step such as “Choose a large number” is vague: what is large? 1 million, 1 billion, or 100? Does the number have to be different each time, or can the same number be used again?
  • An algorithm expects a defined set of inputs. For example, it might require two numbers where both numbers are greater than zero. Or it might require a word, or a list customer names.
  • An algorithm produces a defined set of outputs. It might output the larger of the two numbers, an all-uppercase version of a word, or a sorted version of the list of names.
  • An algorithm is guaranteed to terminate and produce a result, always stopping after a finite time. If an algorithm could potentially run forever, it wouldn’t be very useful because you might never get an answer.
  • Must be general for any input it is given. Algorithms solve general problems (determine if a password is valid); they are of little use if they only solve a specific problem (determine if ‘comp15’ is a valid password)
  • It is at the right level of detail…..the person or device executing the instruction know how to accomplish the instruction without any extra information.

Once we know it’s possible to solve a problem with an algorithm, a natural question is whether the algorithm is the best possible one. Can the problem be solved more quickly or efficiently?

The first thing you need to do before designing an algorithm is to understand completely the problem given. Read the problem’s description carefully, then read it again. Try sketching out by hand some examples of how the problem can be solved. Finally consider any special cases and design your algorithm to address them.

An algorithm does not solve a problem rather it gives you a series of steps that, if executed correctly, will result in a solution to a problem.

An Example Algorithm

Let us look at a very simple algorithm called find_max.

Problem : Given a list of positive numbers, return the largest number on the list.

Inputs : A list of positive numbers. This list must contain at least one number. (Asking for the largest number in a list of no numbers is not a meaningful question.)

Outputs : A number, which will be the largest number in the list.

Algorithm :

  • Accept a list of positive numbers; set to nums_list
  • Set max_number to 0.
  • If the number is larger, set max_number to the larger number.
  • max_number is now set to the largest number in the list of positive numbers, nums_list.

Does this meet the criteria for being an algorithm?

  • Is it unambiguous? Yes. Each step of the algorithm consists of uncomplicated operations, and translating each step into programming code is straight forward.
  • Does it have defined inputs and outputs? Yes.
  • Is it guaranteed to terminate? Yes. The list nums_list is of finite length, so after looking at every element of the list the algorithm will stop.
  • Is it general for any input? Yes. A list of any set of positive numbers works.
  • Does it produce the correct result? Yes. When tested, the results are what are expected

[3] Figure 3: Example Algotithm

Verifying your Algorithm

How do we know if an algorithm is unambiguous, correct, comes to an end, is general AND is at the right level of detail? We must test the algorithm. Testing means verifying that the algorithm does what we expect it to do. In our ‘bake a cake’ example we know our algorithm is ‘working’ if, in the end, we get something that looks, smells and tastes like a cake.

problem solving consist of five steps using computational thinking

Figure 4 “ Keyboard ” by Geralt is licensed under CC 2

Your first step should be to carefully read through EACH step of the algorithm to check for ambiguity and if there is any information missing. To ensure that the algorithm is correct, terminates and is general for any input we devise ‘test cases’ for the algorithm.

A test case is a set of inputs, conditions, and expected results developed for a particular computational problem to be solved. A test case is really just a question that you ask of the algorithm (e.g. if my list is the three numbers 2, 14, and 11 does the algorithm return the number 14?). The point of executing the test is to make sure the algorithm is correct, that it terminates and is general for any input.

Good (effective) test cases:

  • are easy to understand and execute
  • are created with the user in mind (what input mistakes will be made? what are the preconditions?)
  • make no assumptions (you already know what it is supposed to do)
  • consider the boundaries for a specified range of values.

Let us look at the example algorithm from the previous section. The input for the algorithm is ‘a list of positive numbers’. To make it easy to understand and execute keep the test lists short. The preconditions are that the list only contains numbers and these numbers must be positive so include a test with a ‘non-number’ (i.e. a special character or a letter) and a test with a negative number. The boundaries for the list are zero and the highest positive number so include a test with zero and a large positive number. That is it! Here is an example of three different test cases.

Manually, you should step through your algorithm using each of the three test cases, making sure that the algorithm does indeed terminate and that you get your expected result. As our algorithms and programs become more complex, skilled programmers often break each test case into individual steps of the algorithm/program and indicate what the expected result of each step should be. When you write a detailed test case, you don’t necessarily need to specify the expected result for each test step if the result is obvious.

In computer programming we accept a problem to solve and develop an algorithm that can serve as a general solution. Once we have such a solution, we can use our computer to automate the execution. Programming is a skill that allows a competent programmer to take an algorithm and represent it in a notation (a program) that can be followed by a computer. These programs are written in programming languages (such as Python). Writing a correct and valid algorithm to solve a computational problem is key to writing good code. Learn to Think First and coding will come naturally!

Computational problem solving does not simply involve the act of computer programming. It is a process, with programming being only one of the steps. Before a program is written, a design for the program must be developed (the algorithm). And before a design can be developed, the problem to be solved must be well understood. Once written, the program must be thoroughly tested. These steps are outlined in Figure 5.

problem solving consist of five steps using computational thinking

Figure 5: Process of Computational Problem Solving

Values and Variables

A value is one of the basic things computer programs works with, like a password or a number of errors.

Values belong to different types: 21 is an integer (like the number of errors), and ‘comp15’ is a string of characters (like the password). Python lets you give names to values giving us the ability to generalize our algorithms.

One of the most powerful features of a programming language is the ability to use variables. A variable is simply a name that refers to a value as shown below,

Whenever the variable errors appears in a calculation the current value of the variable is used.

We need some way of storing information (i.e. the number of errors or the password) and manipulate them as well. This is where variables come into the picture. Variables are exactly what the name implies – their value can vary, i.e., you can store anything using a variable. Variables are just parts of your computer’s memory where you store some information. Unlike literal constants, you need some method of accessing these variables and hence you give them names.

Programmers generally choose names for their variables that are meaningful and document what the variable is used for. It is a good idea to begin variable names with a lowercase letter . The underscore character (_) can appear in a name and is often used in names with multiple words.

What is a program?

image

Figure 6: “ Python Code ” by nyuhuhuu is licensed under CC-BY 2.0

A program is a sequence of instructions that specifies how to perform a computation. The computation might be something mathematical, such as solving a system of mathematical equations or finding the roots of a polynomial, but it can also be a symbolic computation, such as searching and replacing text in a document or something graphical, like processing user input on an ATM device.

The details look different in different computer programming languages, but there are some low-level conceptual patterns (constructs) that we use to write all programs. These constructs are not just for Python programs, they are a part of every programming language.

input Get data from the “outside world”. This might be reading data from a file, or even some kind of sensor like a microphone or GPS. In our initial algorithms and programs, our input will come from the user typing data on the keyboard.

output Display the results of the program on a screen or store them in a file or perhaps write them to a device like a speaker to play music or speak text.

sequential execution Perform statements one after another in the order they are encountered in the script.

conditional execution Checks for certain conditions and then executes or skips a sequence of statements.

repeated execution Perform some set of statements repeatedly, usually with some variation.

reuse Write a set of instructions once and give them a name and then reuse those instructions as needed throughout your program.

Believe it or not, that’s pretty much all there is to it. Every computer application you’ve ever used, no matter how complicated, is made up of constructs that look pretty much like these. So you can think of programming as the process of breaking a large, complex task into smaller and smaller subtasks until the subtasks are simple enough to be performed with one of these basic constructs. The “art” of writing a program is composing and weaving these basic elements together many times over to produce something that is useful to its users.

Computational Problem Design using the Basic Programming Constructs

The key to better algorithm design and thus to programming lies in limiting the control structure to only three constructs as shown below.

  • The Sequence structure (sequential execution)
  • The Decision, Selection or Control structure (conditional execution)
  • Repetition or Iteration Structure (repeated execution)

image

Figure 7: the 3 Programming Constructs

  Let us look at some examples for the sequential control and the selection control.

Sequential Control Example

The following algorithm is an example of sequential control .

Problem : Given two numbers, return the sum and the product of the two numbers.

Inputs : Two numbers.

Outputs : The sum and the product.

  • display “Input two numbers”
  • accept number1, accept number2
  • sum = number1 + number2
  • print “The sum is “, sum
  • product = number1 * number2
  • print “The product is “, product
  • Is it guaranteed to terminate? Yes. Sequential control, by its nature, always ends.
  • Is it general for any input? Yes. Any two numbers work in this design.
  • Does it produce the correct result? Yes. When tested, the results are what are expected.

Here is an example of three different test cases that are used to verify the algorithm.

Selection Control Examples

The following two algorithms are examples of selection control which uses the ‘IF’ statement in most programming languages.

Problem : Given two numbers, the user chooses to either multiply, add or subtract the two numbers. Return the value of the chosen calculation.

Inputs : Two numbers and calculation option.

Outputs : The value of the chosen calculation.

The relational (or comparison) operators used in selection control are:

= is equal to [in Python the operator is ==]

> is greater than

< is less than

>= is greater than or equal

<= is less than or equal

<> is not equal to [in Python the operator is !=]

  • display “choose one of the following”
  • display “m for multiply”
  • display “a for add”
  • display “s for subtract”
  • accept choice
  • display “input two numbers you want to use”
  • accept number1, number2
  • if choice = m then answer= number1 * number2
  • if choice = a then answer= number1 + number2
  • if choice = s then answer= number1 -number212. if choice is not m, a, or s then answer is NONE
  • display answer
  • Is it guaranteed to terminate? Yes. The input is of finite length, so after accepting the user’s choice and the two numbers the algorithm will stop.
  • Is it general for any input? Yes. Any two numbers work in this design and only a choice of a’m’, ‘a’, or ‘s’ will result in numeric output.

This example uses an extension of the simple selection control structure we just saw and is referred to as the ‘IF-ELSE’ structure.

Problem : Accept from the user a positive integer value representing a salary amount, return tax due based on the salary amount.

Inputs : One positive integer number.

Outputs : The calculated tax amount.

= is equal to  [in Python the operator is ==]

<> is not equal to  [in Python the operator is !=]

  • accept salary
  • If salary < 50000 then
  • Tax = 0 Else
  • If salary > 50000 AND salary < 100000 then
  • Tax = 50000 * 0.05 Else
  • Tax = 100000 * 0.30
  • display Tax
  • Is it guaranteed to terminate? Yes. The input is of finite length, so after accepting the user’s number, even if it is negative, the algorithm will stop.
  • Is it general for any input? Yes. Any number entered in this design will work.

Iterative Control Examples

The third programming control is the iterative or, also referred to as, the repetition structure. This control structure causes certain steps to be repeated in a sequence a specified number of times or until a condition is met. This is what is called a ‘loop’ in programming

In all programming languages there are generally two options: an indefinite loop (the Python ‘WHILE’ programming statement) and a definite loop (the Python ‘FOR’ programming statement). We can use these two constructs, WHILE and FOR, for iterations or loops in our algorithms.

Note for Reader: A definite loop is where we know exactly the number of times the loop’s body will be executed. Definite iteration is usually best coded as a Python for loop. An indefinite loop is where we do not know before entering the body of the loop the exact number of iterations the loop will perform. The loop just keeps going until some condition is met. A while statement is used in this case.

The following algorithm is an example of iterative control using WHILE .

Problem : Print each keyboard character the users types in until the user chooses the ‘q’ (for ‘quit’) character.

Inputs : A series of individual characters.

Outputs : Each character typed in by the user.

  • initialize (set) letter = ‘a’
  • WHILE letter <> ‘q’
  • ACCEPT letter
  • DISPLAY “The character you typed is”, letter
  • Is it guaranteed to terminate? Yes. The input is of finite length, so after accepting the user’s keyboard character, even if it is not a letter, the algorithm will stop.
  • Is it general for any input? Yes. Any keyboard character entered in this design will work.

The following algorithm is an example of iterative control using FOR . This statement is used when the number of iterations is known in advance.

Problem : Ask the user how many words they want to enter then print the words entered by the user.

Inputs : Number of words to be entered; this value must be a positive integer greater than zero. Individual words.

Outputs : Each word typed in by the user.

  • accept num_words (must be at least one)
  • repeat num_words times (FOR 1 to num_words)
  • accept word
  • DISPLAY “The word you entered is”, word
  • Is it guaranteed to terminate? Yes. The input is of finite length, so after accepting the user’s number of words to enter and any characters typed on the keyboard, even if it is not a ‘word’ per say, the algorithm will stop.
  • Is it general for any input? Yes. Any positive integer greater than zero and any size ‘word’ will work.

Here is an example of two different test cases that are used to verify the algorithm.

The Role of Programming in the Field of Informatics

image

Figure8: iPhone apps by Jaap Arriens/NurPhoto via Getty Images (abcnews.go.com)

You see computer programming in use every day. When you use Google or your smartphone, or watch a movie with special effects, there is programing at work. When you order a product over the Internet, there is code in the web site, in the cryptography used to keep your credit card number secure, and in the way that UPS routes their delivery vehicle to get your order to you as quickly as possible.

Programming is indeed important to an informatics professional as they are interested in finding solutions for a wide variety of computational problems involving data.

When you Google the words “pie recipe,” Google reports that it finds approximately 38 million pages, ranked in order of estimated relevance and usefulness. Facebook has approximately 1 billion active users who generate over 3 billion comments and “Likes” each day. GenBank, a national database of DNA sequences used by biologists and medical researchers studying genetic diseases, has over 100 million genetic sequences with over 100 billion DNA base pairs. According to the International Data Corporation, by 2020 the digital universe – the data we create and copy annually – will reach 44 zettabytes, or 44 trillion gigabytes.

image

Figure 9: The Digital Universe ( www.emc.com/leadership/digital-universe/2014iview/images )

  Doing meaningful things with data is challenging, even if we’re not dealing with millions or billions of things. In this book, we will be working with smaller sets of data. But much of what we’ll do will be applicable to very large amounts of data too.

Unit Summary

Computational Thinking is the thought processes involved in formulating a problem and expressing its solution in a way that a computer—human or machine—can effectively carry out.

Computational Thinking is what comes before any computing technology—thought of by a human, knowing full well the power of automation.

Writing a correct and valid algorithm to solve a computational problem is key to writing good code.

  • What are the inputs?
  • What are the outputs (or results)?
  • Can we break the problem into parts?
  • Think about the connections between the input & output.
  • Consider designing ‘backwards’.
  • Have you seen the problem before? In a slightly different form?
  • Can you solve part of the problem?
  • Did you use all the inputs?
  • Can you test it on a variety of inputs?
  • Can you think of how you might write the algorithm differently if you had to start again?
  • Does it solve the problem? Does it meet all the requirements? Is the output correct?
  • Does it terminate?
  • Is it general for all cases?

Practice Problems

  • Write about a process in your life (e.g. driving to the mall, walking to class, etc.) and estimate the number of steps necessary to complete the task. Would you consider this a complex or simple task? What happens if you scale that task (e.g. driving two states away to the mall)? Is your method the most efficient? Can you come up with a more efficient way?

image

  • Write an algorithm to find the average of 25 test grades out of a possible 100 points.
  • If you are given three sticks, you may or may not be able to arrange them in a triangle. For example, if one of the sticks is 12 inches long and the other two are one inch long, it is clear that you will not be able to get the short sticks to meet in the middle. For any three lengths, there is a simple test to see if it is possible to form a triangle: “If any of the three lengths is greater than the sum of the other two, then you cannot form a triangle. Otherwise, you can.”Write an algorithm that accepts three integers as arguments, and that displays either “Yes” or “No,” depending on whether you can or cannot form a triangle from sticks with the given lengths.
  • ROT13 is a weak form of encryption that involves “rotating” each letter in a word by 13 places. To rotate a letter means to shift it through the alphabet, wrapping around to the beginning if necessary, so ‘A’ shifted by 3 is ‘D’ and ‘Z’ shifted by 1 is ‘A’. Write an algorithm that accepts a word and an integer from the user, and that prints a new encrypted word that contains the letters from the original word “rotated” by the given amount (the integer input). For example, “cheer” rotated by 7 is “jolly” and “melon” rotated by −10 is “cubed.”
  • Write an algorithm which repeatedly accepts numbers until the user enters “done”. Once “done” is entered, display the total sum of all the numbers, the count of numbers entered, and the average of all the numbers.
  • Write an algorithm that sums a series of ten positive integers entered by the user excluding all numbers greater than 100. Display the final sum.
  • Wing, Jeannette M. "Computational thinking." Communications of the ACM 49.3 (2006): 33-35. ↵

problem solving consist of five steps using computational thinking

Privacy Policy

Read the new OECD publication on supporting teachers to use digital tools for developing and assessing 21st century competences.

problem solving consist of five steps using computational thinking

  • Applications
  • Karel the Turtle
  • Betty's Brain
  • Game Creator by Cand.li
  • Competences
  • PILA for Research

Competency framework

Conceptual framework of the PILA Computational Problem Solving module

What is computational problem solving.

‘Computational problem solving’  is the iterative process of developing  computational solutions to problems. Computational solutions are expressed as logical sequences of steps (i.e. algorithms), where each step is precisely defined so that it can be expressed in a form that can be executed by a computer. Much of the process of computational problem solving is thus oriented towards finding ways to use the power of computers to design new solutions or execute existing solutions more efficiently.

Using computation to solve problems requires the ability to think in a certain way, which is often referred to as ‘computational thinking’. The term originally referred to the capacity to formulate problems as a defined set of inputs (or rules) producing a defined set of outputs. Today, computational thinking has been expanded to include thinking with many levels of abstractions (e.g. reducing complexity by removing unnecessary information), simplifying problems by decomposing them into parts and identifying repeated patterns, and examining how well a solution scales across problems.

Why is computational problem solving important and useful?

Computers and the technologies they enable play an increasingly central role in jobs and everyday life. Being able to use computers to solve problems is thus an important competence for students to develop in order to thrive in today’s digital world. Even people who do not plan a career in computing can benefit from developing computational problem solving skills because these skills enhance how people understand and solve a wide range of problems beyond computer science.

This skillset can be connected to multiple domains of education, and particularly to subjects like science, technology, engineering or mathematics (STEM) and the social sciences. Computing has revolutionised the practices of science, and the ability to use computational tools to carry out scientific inquiry is quickly becoming a required skillset in the modern scientific landscape. As a consequence, teachers who are tasked with preparing students for careers in these fields must understand how this competence develops and can be nurtured. At school, developing computational problem solving skills should be an interdisciplinary activity that involves creating media and other digital artefacts to design, execute, and communicate solutions, as well as to learn about the social and natural world through the exploration, development and use of computational models.

Is computational problem solving the same as knowing a programming language?

A programming language is an artificial language used to write instructions (i.e. code) that can be executed by a computer. However, writing computer code requires many skills beyond knowing the syntax of a specific programming language. Effective programmers must be able to apply the general practices and concepts involved in computational thinking and problem solving. For example, programmers have to understand the problem at hand, explore how it can be simplified, and identify how it relates to other problems they have already solved. Thus, computational problem solving is a skillset that can be employed in different human endeavours, including programming. When employed in the context of programming, computational problem solving ensures that programmers can use their knowledge of a programming language to solve problems effectively and efficiently. 

Students can develop computational problem solving skills without the use of a technical programming language (e.g. JavaScript, Python). In the PILA module, the focus is not on whether students can read or use a certain programming language, but rather on how well students can use computational problem solving skills and practices to solve problems (i.e. to “think” like a computer scientist).

How is computational problem solving assessed in PILA?

Computational problem solving is assessed in PILA by asking students to work through dynamic problems in open-ended digital environments where they have to interpret, design, or debug computer programs (i.e. sequences of code in a visual format). PILA provides ‘learning assessments’, which are assessment experiences that include resources and structured support (i.e. scaffolds) for learning. During these experiences, students iteratively develop programs using various forms of support, such as tutorials, automated feedback, hints and worked examples. The assessments are cumulative, asking students to use what they practiced in earlier tasks when completing successive, more complex tasks.

To ensure that the PILA module focuses on foundational computational problem solving skills and that the material is accessible to all secondary school students no matter their knowledge of programming languages, the module includes an assessment application, ‘Karel World’, that employs an accessible block-based visual programming language. Block-based environments prevent syntax errors while still retaining the concepts and practices that are foundational to programming. These environments work well to introduce novices to programming and help develop their computational problem solving skills, and can be used to generate a wide spectrum of problems from very easy to very hard.

What is assessed in the PILA module on computational problem solving?

Computational problem solving skills.

The module assesses the following set of complementary problem solving skills, which are distinct yet are often used together in order to create effective and efficient solutions to complex problems:

• Decompose problems

Decomposition is the act of breaking down a problem goal into a set of smaller, more manageable sub-goals that can be addressed individually. The sub-goals can be further broken down into more fine-grained sub-goals to reach the granularity necessary for solving the entire problem.

• Recognise and address patterns

Pattern recognition refers to the ability to identify elements that repeat within a problem and can thus be solved through the same operations. Adressing repeating patterns means instructing a computer to iterate given operations until the desired result is achieved. This requires identifying the repeating instructions and defining the conditions governing the duration of the repetition.

• Generalise solutions

Generalisation is the thinking process that results in identifying similarities or common differences across problems to define problem categories. Generalising solution results in producing programs that work across similar problems through the use of ‘abstractions’, such as blocks of organised, reusable sequence(s) of instructions.

• Systematically test and debug

Solving a complex computational problem is an adaptive process that follows iterative cycles of ideation, testing, debugging, and further development. Computational problem solving involves systematically evaluating the state of one’s own work, identifying when and how a given operation requires fixing, and implementing the needed corrections.

Programming concepts

In order to apply these skills to the programming tasks presented in the module, students have to master the below set of programming concepts. These concepts can be isolated but are more often used in concert to solve computational problems:

• Sequences

Sequences are lists of step-by-step instructions that are carried out consecutively and specify the behavior or action that should be produced. In Karel World, for example, students learn to build a sequence of block commands to instruct a turtle to move around the world, avoiding barriers (e.g. walls) and performing certain actions (e.g. pick up or place stones).

• Conditionals

Conditional statements allow a specific set of commands to be carried out only if certain criteria are met. For example, in Karel World, the turtle can be instructed to pick up stones ‘if stones are present’.

To create more concise and efficient instructions, loops can communicate an action or set of actions that are repeated under a certain condition. The repeat command indicates that a given action (i.e. place stone) should be repeated through a real value (i.e. 9 times). A loop could also include a set of commands that repeat as long as a Boolean condition is true, such as ‘while stones are present’.

• Functions

Creating a function helps organise a program by abstracting longer, more complex pieces of code into one single step. By removing repetitive areas of code and assigning higher-level steps, functions make it easier to understand and reason about the various steps of the program, as well as facilitate its use by others. A simple example in Karel World is the function that instructs the turtle to ‘turn around’, which consists of turning left twice.

How is student performance evaluated in the PILA module?

Student performance in the module is evaluated through rubrics. The rubrics are structured in levels, that succinctly describe how students progress in their mastery of the computational problem solving skills and associated concepts. The levels in the rubric (see Table 1) are defined by the complexity of the problems that are presented to the students (simple, relatively complex or complex) and by the behaviours students are expected to exhibit while solving the problem (e.g., using functions, conducting tests). Each problem in the module is mapped to one or more skills (the rows in the rubric) and classified according to its complexity (the columns in the rubric). Solving a problem in the module and performing a set of expected programming operations thus provide evidence that supports the claims about the student presented in the rubric. The more problems at a given cell of the rubric the student solves, the more conclusive is the evidence that the student has reached the level corresponding to that cell. 

Please note: the rubric is updated as feedback is received from teachers on the clarity and usefulness of the descriptions.

problem solving consist of five steps using computational thinking

Table 1 . Rubric for computational problem solving skills

Learning management skills

The performance of students on the PILA module depends not just on their mastery of computational problem solving skills and concepts, but also on their capacity to effectively manage their work in the digital learning environment. The complex tasks included in the module invite students to monitor, adapt and reflect on their understanding and progress. The assessment will capture data on students’ ability to regulate these aspects of their own work and will communicate to teachers the extent to which their students can:

• Use resources

PILA tasks provide resources such as worked examples that students can refer to as they build their own solution. Students use resources effectively when they recognise that they have a knowledge gap or need help after repeated failures and proceed to accessing a learning resource.

• Adapt to feedback

As students work through a PILA assessment, they receive different types of automated feedback (e.g.: ‘not there yet’, ‘error: front is blocked’, ‘try using fewer blocks’). Students who can successfully adapt are able to perform actions that are consistent with the feedback, for example inserting a repetition block in their program after the feedback ‘try using fewer blocks’.

• Evaluate own performance

In the assessment experiences designed by experts in PILA, the final task is a complex, open challenge. Upon completion of this task, students are asked to evaluate their own performance and this self-assessment is compared with their actual performance on the task.

• Stay engaged

The assessment will also collect information on the extent to which students are engaged throughout the assessment experience. Evidence on engagement is collected through questions that are included in a survey at the end of the assessment, and through information on students’ use of time and number of attempts.  

Learn about computational problem solving-related learning trajectories:

  • Rich, K. M., Strickland, C., Binkowski, T. A., Moran, C., & Franklin, D. (2017). K-8 Learning Trajectories Derived from Research Literature: Sequence, Repetition, Conditionals. Proceedings of the 2017 ACM Conference on International Computing Education Research, 182–190.
  • Rich, K. M., Strickland, C., Binkowski, T. A., & Franklin, D. (2019). A K-8 Debugging Learning Trajectory Derived from Research Literature. Proceedings of the 50th ACM Technical Symposium on Computer Science Education, 745–751. https://doi.org/10.1145/3287324.3287396
  • Rich, K. M., Binkowski, T. A., Strickland, C., & Franklin, D. (2018). Decomposition: A K-8 Computational Thinking Learning Trajectory. Proceedings of the 2018 ACM Conference on International Computing Education Research  - ICER ’18, 124–132. https://doi.org/10.1145/3230977.3230979

Learn about the connection between computational thinking and STEM education:

  • Weintrop, D., Beheshti, E., Horn, M., Orton, K., Jona, K., Trouille, L., & Wilensky, U. (2015). Defining Computational Thinking for Mathematics and Science Classrooms. Journal of Science Education and Technology, 25(1), 127–147. doi:10.1007/s10956-015-9581-5

Learn how students apply computational problem solving to Scratch:

  • Brennan, K., & Resnick, M. (2012). Using artifact-based interviews to study the development of computational thinking in interactive media design. Paper presented at annual American Educational Research Association meeting, Vancouver, BC, Canada.

Associated Content

problem solving consist of five steps using computational thinking

Take a step further

© Organisation for Economic Co-operation and Development

  • Grades 6-12
  • School Leaders

Looking For Your Next Teacher Job? You'll Want This Email Series!

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.

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

problem solving consist of five steps using computational thinking

50 Fun Pizza Facts by the Slice

The nation's favorite food is topped with fun facts. Continue Reading

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

  • Acknowledgements
  • Author List
  • Part 1. Foundations
  • 1.1. Technology Integration
  • 1.2. Connectivism
  • 1.3. Lifelong Learning
  • 1.4. Information Literacy
  • Part 2. Classroom Applications
  • 2.1. Blogging
  • 2.2. Coding
  • 2.3. Computational Thinking
  • 2.4. English Language Learning
  • 2.5. Foreign Language Teaching, Part 1
  • 2.6. Foreign Language Teaching, Part 2
  • 2.7. Gamification
  • 2.8. iPad Learning Centers
  • 2.9. Open Educational Resources
  • 2.10. STEAM Mindset
  • Part 3. Legal, Ethical, and Socially-Responsible Use
  • 3.1. Copyright and Open Licensing
  • 3.2. Digital Equity
  • 3.3. Online Professionalism
  • 3.4. Online Safety
  • 3.5. Universal Design for Learning
  • Glossary of Terms
  • Index of Topics
  • Translations

Computational Thinking

Choose a sign-in option.

Tools and Settings

Questions and Tasks

Citation and Embed Code

problem solving consist of five steps using computational thinking

Learning Objectives

  • Define computational thinking (CT);
  • Explain the rationale for including CT as part of core curriculum;
  • Understand research-based best practices for integrating CT with other core content at your grade level;
  • Access a wide variety of resources designed to enable you to integrate CT at your grade level.

In today's high-tech and ever-changing world, it is increasingly clear that students need to be able to think critically and resolve complex and ill-defined problems in order to truly thrive in the environment where they are one day expected to live and work (Schön, 1987; Ventura, Lai, and DiCerbo, 2017). But while few would argue the utility of teaching critical thinking and problem solving skills in schools, there is less consensus about how to do it, when to start, or what terms to use when teaching these important competencies.

One approach to teaching these skills is to teach computational thinking (CT). CT is particularly useful for the computer age, because it not only teaches critical thinking but also focuses on helping students "develop and employ strategies for understanding and solving problems in ways that leverage the power of technological methods to develop and test solutions" (ISTE, n.d., emphasis added). CT is the bread and butter of computer scientists, but it is also widely applicable for solving many other academic and non-academic problems.

CT is essentially a framework to describe a set of critical thinking and problem-solving skills, and it has gained significant traction as a viable and useful way of thinking about how to teach these skills in formal educational settings. While CT is not the only way to approach these skills, it provides a way of looking at problems so as to produce an automated or semi-automated solution that takes advantage of the unique affordances of computer technologies. It can also be beneficial in providing a common vocabulary, a wealth of resources, and a vibrant community of practice for teachers seeking to focus, coordinate, and improve efforts to guide rising generations in developing problem solving skills.

problem solving consist of five steps using computational thinking

Why Integrate Computational Thinking?

More than ever, we live in a world that is informed and inundated by computer technology. This fact may conjure thoughts of smartphones and personal computers, but increasingly, many everyday and traditionally non-digital objects are being designed to operate via a computer program. Some of these objects include streetlights, car engines, watches, roads, car tires, and even shoes (Hartigan, 2013).

As computer programs become more widespread, computer programming becomes an increasingly relevant skill, and many political bodies are recognizing this fact. Support for teaching computing in K-12 schools is growing in the U.S. and abroad. Several countries, including England, Finland, South Korea, and Australia, require that children learn computing or computational thinking (Rich, Jones, Belikov, Yoshikawa, and Perkins, 2017). Several U.S. states and districts have similar requirements (Partovi, 2017; EdSurge, 2016). The United States has not yet officially adopted such measures, but appears to be moving in that direction. For example, in 2017 the Trump administration announced a yearly investment of $200 million dollars into STEM education, noting that "the nature of our workforce has increasingly shifted to jobs requiring a different skill set, specifically in coding and computer science" (CNN Wire, 2017, emphasis added). Amazon, Facebook, and other major tech companies have committed a sum of over $300 million (over the period of five years) to the new initiative (Romm, 2017). Thus, increasing attention, interest, and enthusiasm are paid to the role that computer science education should have in our schools (Bers, Flannery, Kazakoff, and Sullivan, 2014; Rich et al., 2017; Sullivan and Bers, 2016; Yadav et al., 2016; Yadav et al., 2017).

But before computer programming - or coding , as it is sometimes called - many believe that today's youth (and adults) need computational thinking (CT) to better solve the problems of the 21st century. CT may be considered a precursor to learning actual coding or computer programming skills. And while this is certainly true, it can also have a much broader application. The skills, attitudes, and approaches that make up CT are fundamental, universal, transferrable, and particularly appropriate and useful for the computer age. So, while a future computer programmer certainly needs CT, it is not necessarily true that everyone who learns CT should go on to learn coding. Rather, as computer technology becomes more embedded into the fabric of every industry, professionals in every industry need to be able to think in ways that leverage those computers to solve the problems of the future.

Learning computational thinking can benefit students both economically and academically. Each year there are far more computing jobs added than there are computer science graduates, with significant job growth projected for the foreseeable future (Bureau of Labor Statistics, 2018). Furthermore, studies have linked a host of academic benefits to learning CT, including improvement in student engagement, motivation, confidence, problem-solving, communication, and STEM learning and performance (Rich et al., 2017; Yadav et al., 2017).

What Is Computational Thinking?

Stephen Wolfram (2016) stated that the "intellectual core" of computational thinking "is about formulating things with enough clarity, and in a systematic enough way, that one can tell a computer how to do them." After gathering input from over 700 computer science educators, researchers, and practitioners, the International Society for Technology in Education (ISTE) and the Computer Science Teachers Association (CSTA) (2011) issued a joint statement in which they provided an operational definition of computational thinking , which involves both a problem-solving process and a series of dispositions and attitudes.

Computational thinking may imply a certain degree of facility and familiarity with computers, but it is much more than mere tech savviness. It is a combination of disciplined mental habits, attitudes of endurance, and essential soft skills. CT allows us to not merely consume technology, but to create with technology (Yadav, Hong, and Stephenson, 2016). It is not a way of making humans more like computers, but rather of empowering humans to use computers more effectively to solve the problems of the Computer Age (Wing, 2006).

The ISTE/CSTA (2011) definition is thorough, but it may also be useful for teachers to have a few key words to keep in mind when planning lessons, guiding discussions, commenting on student work, etc. The following table is derived from the documentation of various organizations that seek to define and categorize CT in a useful way for educators (CAS Barefoot, 2014; Google, n.d.b; ISTE, 2014). This is not intended to be comprehensive, but it does provide a reasonably complete snapshot of the most crucial components of CT.

Components of CT (CAS Barefoot, 2014; Google, n.d.b; ISTE, 2014)

  • Decomposition: Breaking down data, processes, or problems into smaller, manageable parts
  • Pattern Recognition: Observing patterns, trends, and regularities in data
  • Abstraction: Making a problem more understandable by reducing unnecessary detail.
  • Algorithm Design: Developing the step by step instructions for solving this and similar problems
  • Evaluation: Ensuring that your solution is a good one.
  • Confident: believing in one's own ability to solve problems
  • Communicative: willing and able to communicate effectively with others.
  • Flexible: able to deal with change and open-ended problems
  • Tinkering: experimenting and playing
  • Creating: designing and making
  • Debugging: finding and fixing errors
  • Persevering: keeping going
  • Collaborating: working together.

Review These Terms on Quizlet

Quizlet

Thought Exercise: Problem-Solving Models

Watch this video to better understand these processes:

Problem-solving models

Questions to Ponder:

  • What might be the advantages and disadvantages of each problem-solving model?
  • Could any model be applied to any problem? How might the types of results expected from each model differ?
  • Are some problems better suited to one method than another?

Why Integrate CT in Early Childhood and Elementary Education

Establishing a way of thinking takes time, so if CT is to be truly grasped by the professionals of the future, they need to be familiarized with these concepts early and often throughout their academic career (Yadav, Mayfield, Zhou, Hambrusch, and Korb, 2014). Computational thinking is "cross-disciplinary" in nature (Yadav et al., 2017), so it makes sense to start teaching it in elementary or even preschool, where all the subjects are naturally blended together for the students within the same environment.

Studies have shown that children as young as preschool-age (approximately 4) have been able to successfully learn basic CT concepts (Sullivan and Bers, 2016; Bers et al., 2014). Studies also show that learning this can be "an engaging and rewarding" experience for the students (Bers et al., 2014).

Technology permeates our world and experience. Bers, Seddighin, and Sullivan (2013) have argued that because technology is an integral part of children's experience, early childhood education should include the study of technology. Teaching computational thinking is one way to do just that. In early childhood education, we often focus on understanding the natural world, which is certainly worth studying, but the man-made world is also worth studying. Most children are more familiar with cell phones than with polar bears, yet teachers are more likely to teach a unit on polar bears than on cell phones. We can and should study both (Bers et al., 2013).

Some early childhood practitioners may question the appropriateness of teaching computational thinking to very young students, due to prevalent and well-founded concerns about giving too much screen time to young children (NAEYC and Fred Rogers, 2012). However, these concerns can be reduced by understanding that (1) there is a wide variety of CT activities that do not require the use of a screen (e.g., unplugged  activities, screenless robots) and (2) that even activities that do involve screen time can--and should--be constructed as interactive, rather than non-interactive uses of technology (NAEYC and Fred Rogers, 2012).

Why Integrate CT in Secondary Education

Some secondary educators may understandably feel that, unless they are planning to get an endorsement in information technology education, computational thinking has little to do with them. However, teaching CT concepts in English, history, math, science, second languages, and other core and elective subjects is actually a great way to "support problem solving across all disciplines" (Google, n.d.a) Grover (2018) argues, "Like any skill, CT is best taught and learned in context, and embedded into class subjects."

If CT education is embedded across multiple subject areas at the same school, it has additional advantages, such as helping students to "make powerful connections between their classes and beyond" and "have a rich toolkit to draw from that crosses traditional subject borders" when faced with problems that are difficult to categorize within a traditional subject area (Sheldon, 2017).

Thought Exercise: CT - A 21st Century Literacy?

Many claim that computational thinking is an essential 21st Century Literacy which ought to be taught alongside reading, writing, and arithmetic in our schools. While you don't necessarily have to agree with this assessment, it is important to understand the rationale behind it.

Consider the following statements from CT education proponents, then consider the questions listed below:

Just as basic literacy in math and science are considered essential for all children to understand how the world works, education must also address the development of knowledge and skills pertaining to computing, which is now so integrally intertwined with every profession (Grover, 2018).
Computational thinking is a fundamental skill for everyone, not just for computer scientists. To reading, writing, and arithmetic, we should add computational thinking to every child's analytical ability. Just as the printing press facilitated the spread of the three Rs, what is appropriately incestuous about this vision is that computing and computers facilitate the spread of computational thinking (Wing, 2006).
  • What is a "literacy"?
  • Do you agree that computational thinking is a literacy?
  • Do you agree that it is as fundamental as reading, writing, and math in the 21st Century? Why or why not?

How to Effectively Integrate CT into Your Classroom

This section is intended as a reference. Feel free to focus on reading the parts that are most relevant to you.

Research-Based Effective Practice for CT Integration

Teaching computational thinking has traditionally been viewed as a primarily constructionist endeavor (Bers et al., 2014; Buss and Gamboa, 2017). Constructionism posits that "children can learn deeply when they build their own meaningful projects in a community of learners and reflect carefully on the process" (Bers et al., 2014). In particular, the constructionist approach described by Seymour Papert "provides children the freedom to explore their own interests through technologies (Bers, 2008) while investigating domain-specific content learning and also exercising metacognitive, problem-solving, and reasoning skills" (Bers et al., 2014).

Within this broadly constructionist framework, a variety of instructional principles and methods have been identified as effective practices for teaching computational thinking. These practices can be adapted to most grade levels and subject areas.

  • Modeling . Teachers should set an example of learning by modeling their own understanding, learning, and progress in computational thinking. Especially in the early stages, they should also model the computational thinking process for students so they understand what the learning, reflection, and revision look like (Highfield, 2015).
  • Integrating. Teachers should collaborate with other teachers to facilitate the completion of interdisciplinary culminating projects (Bers et al., 2014).
  • Releasing Responsibility Gradually. When teaching CT, educators should start with direct instruction, move to a simple guided activity, then issue an open-ended challenge or problem (Buss and Gamboa, 2017). Teachers should then continue to guide behavior, even while working/playing as a team (Highfield, 2015).
  • Encouraging. Insofar as possible, teachers should provide "encouragement and problem-solving hints and tips," rather than outright answers (Buss and Gamboa, 2017).
  • "What if you were to..."
  • "How would you..."
  • "Have you considered..."
  • Drawing out solutions on paper.
  • Discussing alternative solutions as teams.
  • Relating challenges to more familiar circumstances.
  • Using CT vocabulary across the curriculum (Yadav et al., 2014). This can reinforce students' understanding of the terms and help them see their applicability across the curriculum and in daily life. For example, a teacher might refer to a set of rules or procedures as an "algorithm"; invite students to create an "abstraction" of how they feel; or emphasize that you are practicing "pattern recognition" skills.

How and When to Use Technology in CT Education

Teachers won't be utilizing technology every time they want to teach CT: they may be simply referencing CT vocabulary, helping students learn perseverance, or engaging students in an unplugged coding activity. However, since CT does involve "leverag[ing] the power of technological methods" (ISTE, 2014), a progressive program of CT instruction will inevitably lead to some integration of technological devices.

Just as PIC-RAT can be a valuable heuristic for evaluating classroom technology integration and designing technological learning experiences, it can also help guide educators in making decisions about how and when to use technology in the CT education process. In general, teachers should strive to provide learning experiences that guide students toward the creative and transformative ends of the PIC and RAT spectrums.

For example, an elementary teacher wanting to integrate CT into her curriculum might begin by explaining some key CT concepts to her students, such as decomposition and abstraction. She might then introduce a mathematical word problem that requires the students to break the problem into component parts and filter out unnecessary detail. So far, it has not been necessary to use technology, and most uses (e.g., an online worksheet) would likely have been passive or interactive replacements of traditional practice.

However, as the teacher helps her students to learn additional aspects of math and CT, she may see organic ways to integrate technology in creative and transformative ways. For instance, she may feel that the best way to teach shape properties and algorithm design is to bring some codable robots into the classroom and have the students program them to draw regular polygonal shapes. At first, the students may have some interactive time with the robots, simply so they can learn how they function. Eventually, however, their use will become creative as they design an algorithm to meet the teacher's challenge. Such an experience may transform the learning in several ways, such as

  • helping the students make connections between math and computer science that they would not have made with mere worksheets;
  • deepening the students' perception of the relevance of both math and coding;
  • engaging students in content they might otherwise have found routine and boring.

CT in Early Childhood and Elementary Education

In addition to other research-based effective practices, the following ideas, examples and resources may be useful in an early childhood teaching context.

  • Unplugged Activities. Unplugged activities are activities that teach coding concepts without involving a computer. Students may use a paper and pencil, manipulatives, or even their own bodies to experience coding principles in a deeper way. These activities naturally allow for conversations about and connections with CT skills, attitudes, and approaches.
  • Codable Robots. Codable robots can extend the coding and CT experience of young students. Robots provide lots of opportunities to integrate mathematical and engineering concepts into their coding and CT knowledge, and the connections students make can actually support their learning in traditional core subjects.
  • Students learn about algorithms when the teacher explains what they are using the simple example of the routine students follow when they get up and come to school in the morning. Students then write their own algorithms for planting a seed and test it out with real seeds and soil (Randles, 2017).
  • A teacher uses Ozobots (small robots programmable with paper and a marker) to teach her students about states of matter, geography, and coding. The ozobot moves across a map and the students must program it to move slower in cold regions and faster in warm regions. They need to practice communication, debugging, and algorithm design in order to make this work (Randles, 2017).
  • Students create a math game with engineering toys and test every circuit before moving on to the next activity. If something doesn't work, they "debug" it. Students learn perseverance and communication skills in working together (Berdik, 2015).
  • Students stuck in a difficult problem look toward a teacher for help, but the teacher directs them to "use prior knowledge, explore and work through it." Deep learning occurs as the students learn to persevere, collaborate, and rely on the CT process (Berdik, 2015).
  • Students and the teacher together create an "algorithm" for the procedure of leaving the classroom.

Secondary Education

In addition to other research-based effective practices, consider the following ideas/examples for teaching CT in your specific subject area.

Language Arts & Foreign Language

  • Representing plot structure through abstraction (i.e., a plot diagram)
  • Logical organization and analysis of data in order to support their thesis.
  • Communicating and collaborating with others in class discussions
  • Th students also relate these skills to what they are learning in other subject areas (Barr, Harrison, and Conery, 2011).
  • Students use logic to put together a jumbled story in correct sequence (Grover, 2018).
  • Students identify patterns for different sentence types and rules for grammar (Grover, 2018).
  • Students use first-order logic to arrive at conclusion based on given facts (Grover, 2018).
  • Student construct social networks to analyze stories (Grover, 2018).
  • Students program a story with alternative pathways ("Choose your own adventure") (Grover, 2018).
  • Students analyze how algorithms affect dialogue and news feeds in social media (Angevine, 2018).
  • Student collaborate to build a story, identify any "bugs" in the story, and fix those bugs to give the story a more logical flow. (Google, n.d.c)

Social Studies

  • Students compare their modern lifestyle with the lifestyles of children from another era. They simulate the experience of children from the other era by writing about it in a blog. The teacher calls attention to the fact that they are practicing skills relevant to computational thinking, such as organizing and analyzing data logically, and representing data through an abstraction (Barr et al., 2011).
  • Students review data and identify patterns and trends in wars and other historical events. The teacher helps the students recognize that they are practicing the CT skill of "pattern recognition." Students also create visualizations of these patterns and trends, and the teacher refers to them as "abstractions" (Grover, 2018).
  • Students "create a simulation to study relationships in social science phenomena such as women's education and health." This is an abstraction (Grover, 2018).
  • Students create models or "abstractions" for social systems, social networks, or social choice (Grover, 2018).
  • Students use primary source data to study patterns of voting rights in the nation (Angevine, 2018).

Engineering

  • Students look at a map of escape routes for the school. They recognize that the map is an "abstraction" and discuss how they could create an algorithm that would define the fastest way out of the school in the event of an emergency (Barr et al., 2011).
  • Students compare and contrast the design thinking problem solving process and the computational thinking problem solving process and explore how each method can give them unique insights and solutions for engineering problems. They also discuss how the methods can be melded to provide more complete and better solutions.
  • Students use engineering computer software to design structures.
  • Students engage in a real-world construction simulation task as teams. They need to practice the skills of abstraction (drawing a design for the project), decomposition (breaking down the tasks that need to be completed). They also utilize CT approaches such as collaborating, creating, and (possibly) tinkering and debugging.
  • Students studying the diatonic scale and the concept of pitch use Scratch (a programming language) to create an "abstraction" of a xylophone. They also develop persistence as they work through a difficult problem (Barr et al., 2011).
  • Students use algorithms to study intervals, rhythm, and composition (Angevine, 2018)
  • Students explore musical patterns and create algorithms that can write a song (Google, n.d.c)

Mathematics

  • Students model functions in algebra through programs (compare them to functions in programs) (Grover, 2018).
  • Students write an algorithm (or precise sequence of steps) on how to do matrix multiplication or how to solve a quadratic equation (Grover, 2018).
  • Students use decomposition to solve word problems (Grover, 2018).
  • Students express generalizations (as algebraic representations) by identifying patterns (Grover, 2018).
  • Students interpret and visualize statistics of an athlete's performance (Angevine, 2018).
  • Students use robots to create a program that can draw any regular polygon of any regular size. They also explore how slight variations in the program can create fractal shapes.
  • Students use 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 algorithm to convert between degrees and radians based on the patterns they used to count their way around the unit circle. (Google, n.d.c)
  • Students use 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. (Google, n.d.c)
  • Do a species classification with explicit "If-Then" logic (younger grades) (Grover, 2018).
  • Build a computational model of a physical phenomenon (Grover, 2018).
  • Instead of playing with or manipulating pre-developed software simulations of scientific phenomenon, create (program) computational models and simulations to study and interrogate phenomena (Grover, 2018).
  • Students use computational models and processes to predict the effects of removing a species from the ecosystem (Angevine, 2018).
  • Students create simulations and abstractions that model safe and unsafe roller coaster designs (Angevine, 2018).
  • STudents model (i.e., abstract) different scientific laws and phenomena using CT concepts and approaches (Google, n.d.c).

Family and Consumer Science

  • In a child development course, students engage in metacognition about the computational thinking process, and how it can help them to solve problems and make decisions in their own lives.
  • In a sewing class, students observe common patterns in certain types of clothing. Later on, they create a pattern (i.e., an algorithm) for sewing a shirt. They also include diagrams (abstractions) within their pattern instructions.
  • In a foods class, students explore and discuss patterns across cake recipes (e.g., classes of ingredients included, order of steps, baking times and temperatures). Students may also create their own cake recipe (algorithm) and test (evaluate) it based on a set of criteria of their choosing.
  • In a personal finance class, students use computer software to track their spending over several months. They then use that data to find patterns and create graphs (i.e., abstractions) of spending patterns that can inform their future decisions.

Dance & Physical Education

  • Students learning a variety of dance moves create their own dance (algorithm) by stringing them together.
  • Students in P.E. learn about the wide variety of computational resources (e.g., apps, wearables) that can help them monitor and improve their physical wellbeing and personal health habits. They use data they collect from some of these sources to create reports (abstractions) to help them make decisions about what habits they will seek to develop.

CT Learning and Lesson Planning Resources Resources

The following table provides a number of resources for learning more about computational thinking and planning lessons that integrate its components.

Computational thinking is a method of solving problems that is both widely applicable throughout the K-12 curriculum and increasingly relevant in the 21st Century. Integrating CT into traditional core and elective subject areas can help students to make important cross-curricular connections, improve their academic performance, and develop important skills for creating solutions in the wide variety of vocations in which they will one day engage. As the popularity and relevance of CT becomes more apparent, many countries, states, and institutions are adopting it into their curriculum, so teachers should be aware of how this affects them, how it may affect them in the future, and the variety of resources they can access as needed. They are also encouraged to become as familiar as they can with CT skills, attitudes, and approaches, and to develop these competencies in their personal and professional lives.

Angevine, C. (2018, February 22). Advancing computational thinking across K-12 education. Retrieved from http://www.gettingsmart.com/2018/02/advancing-computational-thinking-across-k-12-education/

Barr, D., Harrison, J., & Conery, L. (2011). Computational thinking: A digital age skill for everyone. Learning & Leading with Technology, 38(6), 20-23. Retrieved from https://files.eric.ed.gov/fulltext/EJ918910.pdf

Berdik, C. (2015, November 23). How one school district works computational thinking into every grade and class. Retrieved from http://hechingerreport.org/how-one-school-district-works-computational-thinking-into-every-grade-and-class/

Bers, M.U. (2008). Blocks to robots: Learning with technology in the early childhood classroom. New York, NY: Teachers College Press.

Bers, M.U., Seddighin, S., & Sullivan, A. (2013). Ready for robotics: Bringing together the T and E of STEM in early childhood teacher education. Journal of Technology and Teacher Education, 21(3), 355-377.

Bers, M.U., Flannery, L., Kazakoff, E. R., & Sullivan, A. (2014). Computational thinking and tinkering?: Exploration of an early childhood robotics curriculum. Computers & Education, 72, 145-157. https://doi.org/10.1016/j.compedu.2013.10.020 .

Bureau of Labor Statistics (2018). Occupational outlook handbook. Retrieved from https://www.bls.gov/ooh/computer-and-information-technology/home.htm

Buss, A., & Gamboa, R. (2017). Teacher transformations in developing computational thinking: Gaming and robotics use in after-school settings. In P.J. Rich & C.B. Hodges (Eds.), Emerging research, practice, and policy on computational thinking (pp. 189-203). Cham, Switzerland: Springer. Retrieved from http://sci-hub.cc/downloads/1d8d/[email protected]

CAS Barefoot (2014). Computational thinking. Retrieved from https://barefootcas.org.uk/barefoot-primary-computing-resources/concepts/computational-thinking/ .

CNN Wire. (2017, September 25). President Trump announces yearly investment of $200M for STEM expansion. Retrieved from Fox News: http://fox59.com/2017/09/25/president-trump-makes-jobs-announcement/

EdSurge. (2016). Computer science for all. Retrieved from https://www.edsurge.com/research/special-reports/state-of-edtech-2016/k12_edtech_trends/computer_science

Google (n.d.a). Exploring computational thinking? Retrieved from https://edu.google.com/resources/programs/exploring-computational-thinking/

Google (n.d.b). What is computational thinking? Retrieved from https://computationalthinkingcourse.withgoogle.com/unit?lesson=8&unit=1

Google (n.d.c). CT materials. Retrieved from https://edu.google.com/resources/programs/exploring-computational-thinking/#!ct-materials

Grover, S. (2018, March 13). The 5th 'C' of 21st century skills? Try computational thinking (not coding. Retrieved from EdSurge News: https://www.edsurge.com/news/2018-02-25-the-5th-c-of-21st-century-skills-try-computational-thinking-not-coding

Hartigan, M. (2013, August 27). 10 everyday objects that can be programmed to run code. Retrieved from https://www.fastcompany.com/3016427/10-everyday-objects-that-can-be-programmed-to-run-code

Highfield, K. (2015). Stepping into STEM with young children: Simple robotics and programming as catalysts for early learning. In C. Donohue (Ed.), Technology and digital media in the early years: Tools for teaching and learning (pp. 150-161). New York, NY: Routledge.

ISTE (2014, September 11). Computational thinking for all. Retrieved from https://www.iste.org/explore/articledetail?articleid=152 ISTE. (n.d.). Standards for students. Retrieved from https://www.iste.org/standards/for-students .

ISTE, & CSTA. (2011). Operational definition of computational thinking for K-12 education. Retrieved from http://www.iste.org/docs/ct-documents/computational-thinking-operational-definition-flyer.pdf

NAEYC, & Fred Rogers Center for early Learning and Children's Media. (2012). Technology and interactive media as tools in early childhood programs serving children from birth through age 8. Retrieved from https://www.naeyc.org/sites/default/files/globally-shared/downloads/PDFs/resources/topics/PS_technology_WEB.pdf

Partovi, H. (2017). Should computer science be a mandatory class in U.S. high schools? Retrieved from https://www.quora.com/Should-Computer-Science-be-a-mandatory-part-of-a-high-school-curriculum/answer/Hadi-Partovi

Randles, J. (2017, January 27). 3 easy lessons that teach coding and computational thinking. Retrieved from https://www.iste.org/explore/articleDetail?articleid=894&category=In-the-classroom&article=

Rich, P. J., Jones, B., Belikov, O., Yoshikawa, E., & Perkins, M. (2017). Computing and engineering in elementary school: The effect of year-long training on elementary teacher self-efficacy and beliefs about teaching computing and engineering. International Journal of Computer Science Education in Schools, 1 (1), 1-20.

Romm, T. (2017, September 26). Amazon, Facebook and others in tech will commit $300 million to the White House's new computer science push. Retrieved from https://www.recode.net/2017/9/26/16364662/amazon-facebook-google-tech-300-million-donald-trump-ivanka-computer-science

Schön, D. A. (1987). Educating the reflective practitioner: Toward a new design for teaching and learning in the professions. Ann Arbor, MI: Wiley.

Sheldon, E. (2017) Computational thinking across the curriculum. Retrieved from https://www.edutopia.org/blog/computational-thinking-across-the-curriculum-eli-sheldon

Sullivan, A., & Bers, M.U. (2016). Robotics in the early childhood classroom: Learning outcomes from an 8-week robotics curriculum in pre-kindergarten through second grade. International Journal of Technology and Design Education, 26(1), 3-20. https://doi.org/10.1007/s10798-015-9304-5

Ventura, M., Lai, E., & DiCerbo, K. (2017). Skills for today: What we know about teaching and assessing critical thinking [White paper]. Retrieved March 29, 2018, from Partnership for 21st Century Learning: http://www.p21.org/storage/documents/Skills_For_Today_Series-Pearson/White_Paper_-_P21_-_Skills_for_Today-What_We_Know_about_Teaching_and_Assessing_Critical_Thinking_v5.pdf

Wing, J. M. (2006). Computational thinking. Communications of the ACM, 49(3), 33-35. https://doi.org/10.1145/1118178.1118215

Wolfram, S. (2017, June 16). How to teach computational thinking. Retrieved from https://www.wired.com/2016/09/how-to-teach-computational-thinking/

Yadav, A., Mayfield, C., Zhou, N., Hambrusch, S., & Korb, J. T. (2014). Computational thinking in elementary and secondary teacher education. ACM Transactions on Computing Education (TOCE), 14(1), 5.

Yadav, A., Hong, H., & Stephenson, C. (2016). Computational thinking for all: Pedagogical approaches to embedding 21st century problem solving in K-12 classrooms. TechTrends, 60(6), 565-568. https://doi.org/10.1007/s11528-016-0087-7

Yadav, A., Stephenson, C., & Hong, H. (2017). Computational thinking for teacher education. Communications of the ACM, 60(4), 55-62. https://doi.org/10.1145/2994591

problem solving consist of five steps using computational thinking

Brigham Young University

Enoch Hunsaker is an Instructional Designer at Brigham Young University Online. He graduated with a Master's degree in Instructional Psychology and Technology from the same university in 2018. He has done substantial research and design work to help K-12 teachers integrate coding and computational thinking into their classrooms. His professional interests include purpose-centered design, agency in learning, and learning by doing.

This content is provided to you freely by EdTech Books.

Access it online or download it at https://edtechbooks.org/k12handbook/computational_thinking .

Introduction to computational thinking What is computational thinking?

Before computers can be used to solve a problem, the problem itself and the ways in which it could be resolved must be understood. Computational thinking techniques help with these tasks.

What is computational thinking?

Computers can be used to help us solve problems. However, before a problem can be tackled, the problem itself and the ways in which it could be solved need to be understood.

Computational thinking allows us to do this.

Computational thinking allows us to take a complex problem, understand what the problem is and develop possible solutions. We can then present these solutions in a way that a computer, a human, or both, can understand.

The four cornerstones of computational thinking

There are four key techniques (cornerstones) to computational thinking:

  • decomposition close decomposition The breaking down of a system into smaller parts that are easier to understand, program and maintain. - breaking down a complex problem or system into smaller, more manageable parts
  • pattern recognition close pattern recognition Finding similarities and patterns in order to solve complex problems more efficiently. – looking for similarities among and within problems
  • abstraction close abstraction The process of separating and filtering out ideas and specific details that are not needed in order to concentrate on those that are needed. – focusing on the important information only, ignoring irrelevant detail
  • algorithms close algorithm A sequence of logical instructions for carrying out a task. In computing, algorithms are needed to design computer programs. - developing a step-by-step solution to the problem, or the rules to follow to solve the problem

Each cornerstone is as important as the others. They are like legs on a table - if one leg is missing, the table will probably collapse. Correctly applying all four techniques will help when programming a computer.

The four cornerstones of computational thinking are decomposition, pattern, abstraction and algorithms.

Computational thinking in practice

A complex problem is one that, at first glance, we don't know how to solve easily.

Computational thinking involves taking that complex problem and breaking it down into a series of small, more manageable problems ( decomposition ). Each of these smaller problems can then be looked at individually, considering how similar problems have been solved previously ( pattern recognition ) and focusing only on the important details, while ignoring irrelevant information ( abstraction ). Next, simple steps or rules to solve each of the smaller problems can be designed ( algorithms ).

Finally, these simple steps or rules are used to program close program Sequences of instructions for a computer. a computer to help solve the complex problem in the best way.

More guides on this topic

  • Decomposition
  • Pattern recognition
  • Abstraction
  • Evaluating solutions

Related links

  • Jobs that use Computer Science
  • BBC Technology news
  • Headsqueeze
  • Khan Academy
  • Raspberry Pi
  • Code Club Subscription
  • Educational App Store Subscription

Learning

Computational Thinking: Its Purpose & Importance

by Lcom Team | Nov 14, 2023 | Blogs

Two teenage school girls standing in front of a large whiteboard side by side solving a mathematics equation on the board using computational thinking. Back view

Share this article!

Computational thinking is more related to math and algorithms than it is to digital technology. It refers to “computing” a solution by breaking down a problem into its separate parts and discovering the effective steps that reliably and effectively resolve the problem. In math, this might look like the “ order of operations ,” which defines how to decompose and solve a linear math problem.

What is the Purpose of Computational Thinking?

The purpose of computational thinking is to be able to solve complex problems in a structured, effective and repeatable way. Computational thinking, while drawing on principles from computer science and mathematics, can be applied not only to mathematical or technology-related problems, but to real-world problems as well. Therefore, computational thinking provides an effective and repeatable process for solving complex issues regardless of whether they are technologically dependent.

How Does Computational Thinking Work?  

In a previous article defining computational thinking , we discuss how computational thinking identifies a clear, defined step-by-step solution to a complex problem. But how, exactly, does one utilize computational thinking to define this solution?

Whether the problem to be solved is in a technological environment or is “offline,” (that is, not related to technology), computational thinking helps to approach, understand, analyze and resolve the problem in an effective and efficient manner. The process is as follows:

  • Decomposition. First, the problem is decomposed into smaller, more manageable parts. This helps the problem-solver more effectively understand the problem while being able to eliminate those parts that are irrelevant.
  • Pattern Recognition. In the next step, pattern recognition , the problem solver identifies patterns or connections between the different parts identified during decomposition—or even to other previously-solved problems. The purpose of this step in computational thinking is to further simplify the problem as well as to begin identifying areas of the problem that may be solved similarly.
  • Abstraction. Decomposition and pattern recognition empower the problem solver to use abstraction to identify the most relevant information within the problem while eliminating that which is either repeated elsewhere or irrelevant. This simplifies an otherwise complex problem and creates a more efficient environment for the individual to identify how the different parts of the problem may be solved.
  • Algorithmic Thinking. Algorithmic thinking is the process of defining a step-by-step solution to the problem. The key to an algorithmic solution is that it should be able to be replicated for a predictable and reliable outcome (in other words, for those familiar with billiards, “ slop shots ” don’t count). The benefit of having a replicable solution is that it is more certainly a reliable outcome if the result can be repeated. In addition, a well-defined replicable solution may be more effectively used in part or in whole to resolve other issues.

Why is Computational Thinking Important?

Computational thinking is an important future-ready skill for students and adults alike. This sophisticated process for problem-solving empowers the learner with more effective tools to solve complex problems as well as to produce more effective processes in the future.

  • Problem solving. The most well-known benefit of computational thinking is the increased ability to solve complex problems. Just like how computational thinking provides effective steps to solve a complex problem, the process of computational thinking, itself, is a computational solution for solving complex problems.
  • Automation and efficiency. Computational thinking is essential in the automation of tasks and processes, which means it’s critical for such applications as coding and automation. The applications of these are far-reaching, from science and engineering to marketing, sales, social sciences, big data and more.
  • Data Analysis. In the age of big data , computational thinking is essential for processing and interpreting vast amounts of information. It helps in extracting meaningful insights and making data-driven decisions.
  • Innovation. Computational thinking is a driver of innovation. At its core, computational thinking helps to solve complex problems, which is the same basis that inspires innovative solutions to these problems. Without the ability to problem-solve using computational thinking, it would be difficult to define and replicate innovative solutions to modern problems.
  • Career opportunities. The ability for an individual to use computational thinking to problem-solve empowers the individual with a “soft skill” that is highly valued in most industries and leadership positions. From manufacturing to finance, technology to healthcare and beyond, these industries actively seek individuals who can solve complex problems and drive innovation.

Final Thoughts

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

Digital Literacy in 2024: 7 Important Computer Skills for Future-Ready Students

  • Digital Literacy in 2024: 7 Important Computer Skills for Future-Ready Students

by Lcom Team | Feb 29, 2024

In 2024, the technological landscape continues to evolve faster than ever. Innovations in artificial intelligence, cloud computing and cybersecurity...

Bridging Success: Crafting Your Professional Development Plan

  • Bridging Success: Crafting Your Professional Development Plan

by Jess Hall | Feb 27, 2024

It may seem premature to think about Back-to-School 2024 when we’re only in February. But at Learning.com, we’re always planning ahead. We’ve been...

The Importance of Digital Citizenship: A 2024 Perspective

  • The Importance of Digital Citizenship: A 2024 Perspective

by Lcom Team | Feb 13, 2024

Digital citizenship is an increasingly vital concept in our interconnected digital age. It encompasses the norms of appropriate and responsible...

Quick Links

  • Request More Info
  • Cookie Settings

Recent news & Articles

  • Teaching Computer Programming Principles Without a Computer
  • Education Industry Leader Lisa O’Masta Named CEO of Learning.com

Book cover

International Conference on Computer Supported Education

CSEDU 2020: Computer Supported Education pp 199–215 Cite as

Creative Learning in Problem Solving and Development of Computational Thinking

  • Tatyane S. C. da Silva   ORCID: orcid.org/0000-0002-9635-4836 8 ,
  • Jeane C. B. de Melo   ORCID: orcid.org/0000-0002-2357-1178 9 &
  • Patricia C. A. R. Tedesco   ORCID: orcid.org/0000-0001-9450-9219 8  
  • Conference paper
  • First Online: 09 October 2021

759 Accesses

Part of the Communications in Computer and Information Science book series (CCIS,volume 1473)

Society is increasingly facing complex problems and creativity is one of the skills that help in solving these problems in addition to being one of the skills of professionals of the future. Additionally, Computational Thinking involves solving problems using models, abstractions, organization, and decomposition of these elements in an algorithmic way and thus can contribute to the development of an individual’s ability to be creative. Therefore, this study aims at understanding the relationship between creative learning in problem-solving and the development of Computational Thinking, to assist the teaching and learning of programming. To this end, a Conceptual Model was elaborated, relating the pillars of Computational Thinking to the problem solving process and later applied in a Computational Thinking subject carried out in a Higher Education Computing course This model is an adaptation of its previous version. It encompasses both the pillars of Computational Thinking and CPS (Creative Problem Solving), as well as techniques of creativity to assist in Creative Thinking. The results of the research show that there is relevance in the insertion of creativity in the problem-solving process through Computational Thinking. The quasi-experiment well received by the teacher. The students reported that the activity helped in solving problems because through it it is possible to have a model to follow with similar problems.

  • Higher education
  • Problem solving
  • Creative learning
  • Computational thinking
  • Programming education

This work was carried out with support from the National Council for Scientific and Technological Development (CNPq).

This is a preview of subscription content, log in via an institution .

Buying options

  • Available as PDF
  • Read on any device
  • Instant download
  • Own it forever
  • Available as EPUB and PDF
  • Compact, lightweight edition
  • Dispatched in 3 to 5 business days
  • Free shipping worldwide - see info

Tax calculation will be finalised at checkout

Purchases are for personal use only

BBC, C.T.: Introduction to computational thinking (2017). https://www.bbc.com/education/guides/zp92mp3/revision/1 . Accessed 3 Aug 2020

Bennedsen, J., Caspersen, M.E.: Teaching object-oriented programming-towards teaching a systematic programming process. In: Eighth Workshop on Pedagogies and Tools for the Teaching and Learning of Object Oriented Concepts. Affiliated with 18th European Conference on Object-Oriented Programming (ECOOP). J.G (2004)

Google Scholar  

Gomes, A., Ke, W., Lm, S.K., Siu, A., Mendes, A.J., Marcelino, M.J.: A teacher’s view about introductory programming teaching and learning-Portuguese and Macanese perspectives. In: 2017 IEEE Frontiers in Education Conference (FIE), pp. 1–8. IEEE (2017)

MacKinnon, D.W.: The nature and nurture of creative talent. Am. Psychol. 17 (7), 484 (1962)

Article   Google Scholar  

National Research Council. Education for life and work: developing transferable knowledge and skills in the 21st century. In: National Academies Press [S.l.]

Osborn, A.: Your Creative Power [S.l.]. Read Books, London and New York (2008)

Sternberg, R.J.: Wisdom, Intelligence, and Creativity Synthesized. Cambridge University Press (2003)

Tschimmel, K.C: Sapiens e Demens no pensamento criativo do design, p. 574. Tese (Design) - Universidad e de Aveiro (2010)

Young what is creativity? J. Cretives, 19 (2), 77–87 (1985)

Wing, J.M.: Computational thinking. Commun. ACM 49 (3), 33–35 (2006)

Zavadil, P.: Creativity and analogical thinking. In: Katja Tschimmel. (Org.). The Creativity Virus - a Book about and for Creative Thinking. 1ed.Porto: Mindshake (2019)

Miller, L.D., et al.: Integrating computational and creative thinking to improve learning and performance in CS1. In: Proceedings of the 45th ACM Technical Symposium on Computer Science Education (2014)

Peteranetz, M.S., et al.: Examining the impact of computational creativity exercises on college computer science students’ learning, achievement, self-efficacy, and creativity. In: Proceedings of the 49th ACM Technical Symposium on Computer Science Education (2018)

Barr, V., Stephenson, C.: Bringing computational thinking to k-12: What is involved and what is the role of the computer science education community? ACM Inroads 2 , 48–54 (2011)

Proctor, C., Blikstein, P.: How broad is computational thinking? a longitudinal study of practices shaping learning in computer science. Int. Soc. Learn. Sci. Inc.[ISLS] (2018)

Piteira, M., Haddad, S.: Innovate in your program computer class: an approach based on a serious game. In: Workshop on Open Source and Design of Communication (2011)

Santiago, A.D., Kronbauer, A.: Um Modelo Lúdico para o Ensino de conceitos de programação de computadores. Braz. Symp. Comput. Educ. (Simp. Bras. Inform. Educ.-SBIE), 27 (1), 420–428 (2016)

Silva, T.S.C., Melo, J.C.B., Tedesco, P.C.A.R.: The creative process in the development of computational thinking in higher education. CSEDU (1) (2020)

Rais, A.E., Sulaiman, S., Syed-Mohamad, S.M.: Game-based approach and its feasibility to support the learning of object-oriented concepts and programming. In: Software Engineering (MySEC). 5th Malaysian Conference. Malaysian: [s.n.], pp. 307–312 (2011)

Kuo, W.-C., Hsu, T.-C.: Learning computational thinking without a computer: how computational participation happens in a computational thinking board game. Asia Pac. Educ. Res. 29 (1), 67–83 (2020)

Shell, D.F., Soh, L.K., Flanigan, A.E., Peteranetz, M.S., Ingraham, E.: Improving students’ learning and achievement in CS classrooms through computational creativity exercises that integrate computational and creative thinking. In: Proceedings of the 2017 ACM SIGCSE Technical Symposium on Computer Science Education, pp. 543–548 (2017)

Davies, S.: The effects of emphasizing computational thinking in an introductory programming course. In: 2008 38th Annual Frontiers in Education Conference, pp. T2C–3 (2008)

Kazimoglu, C., Kiernan, M., Bacon, L., Mackinnon, L.: A serious game for developing computational thinking and learning introductory computer programming. Proc.-Soc. Behav. Sci. 47 , 1991–1999 (2012)

Conde, M.Á., Fernández-Llamas, C., Rodríguez-Sedano, F.J., Guerrero-Higueras, Á.M., Matellán-Olivera, V., García-Penãlvo, F.J.: Promoting computational thinking in K-12 students by applying unplugged methods and robotics. In: Proceedings of the 5th International Conference on Technological Ecosystems for Enhancing Multiculturality. ACM, p. 7 (2017)

Delhij, A., van Solingen, R., Wijnands, W.: The eduScrum guide. EduScrum Team (2015)

Download references

Author information

Authors and affiliations.

Centro de Informática, Universidade Federal de Pernambuco, Av. Jorn. Aníbal Fernandes, Cidade Universitária, Recife, Pernambuco, Brazil

Tatyane S. C. da Silva & Patricia C. A. R. Tedesco

Departamento de Computação, Universidade Federal Rural de Pernambuco, Rua Dom Manuel de Medeiros, s/n, Dois Irmãos, Brazil

Jeane C. B. de Melo

You can also search for this author in PubMed   Google Scholar

Corresponding author

Correspondence to Tatyane S. C. da Silva .

Editor information

Editors and affiliations.

University of Illinois, Urbana-Champaign, IL, USA

H. Chad Lane

University of Denver, Denver, CO, USA

Susan Zvacek

School of Engineering, University of Ulster, Newtownabbey, UK

James Uhomoibhi

Rights and permissions

Reprints and permissions

Copyright information

© 2021 Springer Nature Switzerland AG

About this paper

Cite this paper.

da Silva, T.S.C., de Melo, J.C.B., Tedesco, P.C.A.R. (2021). Creative Learning in Problem Solving and Development of Computational Thinking. In: Lane, H.C., Zvacek, S., Uhomoibhi, J. (eds) Computer Supported Education. CSEDU 2020. Communications in Computer and Information Science, vol 1473. Springer, Cham. https://doi.org/10.1007/978-3-030-86439-2_11

Download citation

DOI : https://doi.org/10.1007/978-3-030-86439-2_11

Published : 09 October 2021

Publisher Name : Springer, Cham

Print ISBN : 978-3-030-86438-5

Online ISBN : 978-3-030-86439-2

eBook Packages : Computer Science Computer Science (R0)

Share this paper

Anyone you share the following link with will be able to read this content:

Sorry, a shareable link is not currently available for this article.

Provided by the Springer Nature SharedIt content-sharing initiative

  • Publish with us

Policies and ethics

  • Find a journal
  • Track your research

ISTE Student Standards

Standard 5: Computational Thinker

See all Instructional Ideas for Standard 5: Computational Thinker.

5a. Formulate problem definitions

Students formulate problem definitions suited for technology-assisted methods such as data analysis, abstract models and algorithmic thinking in exploring and finding solutions.

Instructional Ideas for Sub-Standard 5a

Collaborate to solve a school problem | become the school librarian team | 3-5, 6-8, 9-12.

This instructional idea requires students to create a problem statement focused on increasing the amount of books their peers checkout from a classroom or school library, and that statement must include ideas for collecting and analyzing data. In a follow-up learning activity, students can implement their ideas, which will address … Read more

English Language Arts | 11th-12th , 3rd - 5th , 6th - 8th , 9th-10th

Compare data from 2 bar charts | Students Compute like Computers to Solve Real Problems (Lesson 4 of 7) | K-2

In part 4, students compare organized data from two different bar graphs; then they identify and articulate a challenge that arises from the comparison. Students learn a computational procedure to analyze and interpret numerical data to derive insights about a real-world problem of supply demand for marbles in a classroom, … Read more

Math | Kindergarten - 2nd

5b. Collect & analyze data

Students collect data or identify relevant data sets, use digital tools to analyze them, and represent data in various ways to facilitate problem-solving and decision-making.

Instructional Ideas for Sub-Standard 5b

Collect and analyze data on books | be a hollywood producer | 6-8, 9-10, 11-12.

In this activity, students determine which book from class should be made into a movie, by gathering and comparing evidence through the internet about the profitability and customer sentiment of each book like a Hollywood Producer would. They will source their evidence evaluate its validity, ultimately making a claim as … Read more

English Language Arts | 11th-12th , 6th - 8th , 9th-10th

Visualize numerical data | Students Compute like Computers to Solve Real Problems (Lesson 2 of 7) | K-2

In lesson 2, students visualize numerical data into bar graphs after collecting and organizing data into numerical values using free educational technology. Students learn a computational procedure to analyze and interpret numerical data to derive insights about a real-world problem of supply demand for marbles in a classroom, ultimately offering … Read more

Understand representative samples | Be US Census Bureau’s Chief Analyst (Lesson 2 of 5) | 6-8

In Part 2, calculate statistics from different types of samples from a population and compare them to determine what conditions make a sample representative of a population. In this multi-step project, students become the Chief Data Analyst for the US Census Bureau Chief and write a report for a governor … Read more

Math | 6th - 8th

Analyze data in bar charts | Students Compute like Computers to Solve Real Problems (Lesson 3 of 7) | K-2

In part 3, students interpret visualized numerical data. Students learn a computational procedure to analyze and interpret numerical data to derive insights about a real-world problem of supply demand for marbles in a classroom, ultimately offering solutions and testing them.

Organize categorical data | Students Compute like Computers to Solve Real Problems (Lesson 1 of 7) | K-2

In part 1, students prepare to visualize numerical data by collecting and organizing data into numerical values using free educational technology. Students learn a computational procedure to analyze and interpret numerical data to derive insights about a real-world problem of supply demand for marbles in a classroom, ultimately offering solutions … Read more

5c. Extract key information & form descriptive models

Students break problems into component parts, extract key information, and develop descriptive models to understand complex systems or facilitate problem-solving.

Instructional Ideas for Sub-Standard 5c

Create a plot-line using digital tools | be a savvy reader | 3-5, 6-8.

This instructional idea has students breaking down a narrative into its component parts, which is the purpose for the original outline. Next, by answering the questions and then recreating the plot line based on their responses, students are developing descriptive models for alternatives to the narrative.

English Language Arts | 3rd - 5th , 6th - 8th

5d. Automation & algorithmic thinking

Students understand how automation works and use algorithmic thinking to develop a sequence of steps to create and test automated solutions.

Instructional Ideas for Sub-Standard 5d

Recite steps for algorithmic thinking | students compute like computers to solve real problems (part 7 or 7) | k-2.

In part 7, students review and codify the steps they have taken, like a computer, to analyze and interpret numerical data to derive insights. Students learn a computational procedure to analyze and interpret numerical data to derive insights about a real-world problem of supply demand for marbles in a classroom, … Read more

Test solutions you brainstormed | Students Compute like Computers to Solve Real Problems (Lesson 6 of 7) | K-2

In part 6, students will test and evaluate some of their brainstormed solutions to a problem they identified using data representing an event. Students learn a computational procedure to analyze and interpret numerical data to derive insights about a real-world problem of supply demand for marbles in a classroom, ultimately … Read more

Brainstorm solutions to a problem | Students Compute like Computers to Solve Real Problems (Lesson 5 of 7) | K-2

In part 5, using a digital collaboration board, students will brainstorm solutions to a problem they have identified using data representing an event. Students learn a computational procedure to analyze and interpret numerical data to derive insights about a real-world problem of supply demand for marbles in a classroom, ultimately … Read more

Sphero makes remarkably cool, programmable robots and STEAM-based educational tools that transform the way kids learn, create and invent through coding, science, music, and the arts.

  • Lessons & Resources
  • Schedule a Virtual Demo
  • Professional Development
  • Standards Alignment
  • Funding & Grants
  • Case Studies & Whitepapers
  • App Downloads
  • Sphero BOLT
  • Sphero indi
  • Sphero RVR+
  • Sphero littleBits
  • Sphero Blueprint
  • Sphero Mini
  • Computer Science Foundations (Sphero BOLT)
  • Early Elementary
  • Upper Elementary
  • Middle School
  • Past Year's Challenges
  • Compete in Person

Sphero logo

Enter your e-mail and password:

New customer? Create your account

Lost password? Recover password

Recover password

Enter your email:

Remembered your password? Back to login

Create my account

Please fill in the information below:

Already have an account? Login here

5 Ways To Teach Computational Thinking in the Classroom

Middle school students practice computational thinking in the classroom with Sphero BOLT.

Computational thinking is one of the most important skill sets educators can foster in young learners. It’s a cornerstone of early childhood development, giving kids an approach to problem-solving that develops a solution by following a series of steps: decomposition, pattern recognition, abstraction, and algorithm design.

This method of thinking translates well into real-life scenarios and equips kids with the skills and confidence needed to face and solve problems in both the classroom and the real world.

The Importance of Developing Computational Thinking Skills

Fostering computational thinking skills from an early age can be an enormous advantage for students. There are many ways educators can start incorporating these lessons in the classroom. 

Hannah Pals, Sphero Hero and Middle School Math, Science, and Robotics Club Instructor at Shirland School in Illinois, shares with us why this process is crucial.

Pals explains, “It’s important to expand and build upon children's innate computational thinking skills in the classroom because it is a natural process. Kids learn patterns, hypothesize, and more while playing with blocks and games and interacting with the world around them. To expand on this natural process—to give it some structure—makes for powerful and authentic learning that can easily be built upon later for more complex tasks.”

Jennifer Jensen, Sphero Hero and Innovation Lab Specialist at Clear Sky Elementary in Colorado, agrees, saying, “Young students, especially those in primary school, thrive on the concept of play. Part of their play is based on those concepts found within computational thinking. By nature, children break things down, look for patterns, focus on the important things, and look to simplify their lives. As educators, we need to capitalize on those innate skills.”

Jensen emphasizes the importance of computational thinking for all, telling us, “Computational thinking isn’t a set of skills that just a few of our students might use someday. These skills are at the heart of learning, helping students develop creativity, collaboration, communication, persistence, and problem solving.”

How Computational Thinking Applies Across Subjects

It’s easy to assume computational thinking is a skill set that’s confined to computer science and other STEM-related subjects. However, this isn’t the case, and it’s actually useful across a broad range of subject matter.

Pals tells us, “Computational thinking is applied to all subjects. For example, in grade school students are taught number and fact families. This then becomes the building block for factoring polynomials in algebra. Students have to decompose numbers, recognize patterns, and essentially follow an algorithm in order to complete the problem.”

It’s important to connect computational thinking to the topics educators are already teaching, integrating it into the existing lesson plans rather than being an additional activity that teachers have to arrange.

Jensen shares this example: “For instance, as students are beginning to add more complex words to their vocabularies or focus on word work, we see them breaking apart, or decomposing, words to either help them pronounce the word or to better understand the word’s meaning (i.e., Greek and Latin root words).” 

The foundational skills of computational thinking are just as useful outside of the realm of computer science, as the steps of problem decomposition and developing a process to reach a solution apply to all cases of problem solving.

5 Activities That Develop Computational Thinking Skills

There are many ways for educators to incorporate lessons into their schedules that help develop computational thinking skills through play. Pals says, “In middle school, I still use the power of play as much as I can. Though it is heavily structured, students still enjoy and rapidly grow in computational thinking through these activities.”

Here are some of our Sphero Heroes’ favorite ways to easily incorporate computational thinking into lessons — at home or in the classroom.

1. Number Sense Games

Math can help develop computational thinking skills by using number sense games to teach the concept of pattern recognition. For younger students, this could look like sorting numbers in numerical order, while older students may group together numbers that share characteristics.

A teacher uses number senses games with her students to teach computational thinking in the classroom.

Pals explains why this is so beneficial, saying, “I play a lot of number sense games where students need to recognize factors, patterns, and relationships between numbers. I do this because students then will apply those lessons to build up to solving equations and more.”

2. Playtime with Robots

Programmable robots are one of the most fun and effective ways to develop computational thinking skills. Pals shares her experience, saying, “When introducing coding and robotics to my students, I let them play. What can they figure out? What do they notice? Then, when students are exhausted from playing, I give them challenges to complete. They decompose what patterns they have learned from playing and apply them to solve the problem with an algorithm.”

Young students learn computation thinking in the classroom through playtime with robots like Sphero indi.

Early learners, as young as four years old, can use the new beginner-friendly Sphero indi robot to develop computational thinking skills without the need for an app or screen. indi can be used to solve puzzles, design mazes, and many more activities that hone computational thinking skills.

Before learners can understand a programming language or know how to assemble computer hardware, they need to learn how to think creatively to solve complex logical problems. 

Included with the Sphero indi Class Pack is an in-depth Educator Guide that covers four content areas of focus designed to reinforce computational thinking. Chapters in the guide include directions, patterns and sequences, measuring, and a mixed bag of storytelling and other activities. Together, these guided lessons take early learners on a journey of exploration and learning new, valuable skills. 

3. Writing by Word Count

Writing by word count is a great way to teach abstraction, or the need to focus on solely the pertinent information. For this activity, students are given a writing assignment with a maximum word count that they must stay under.

Writing by word count is a great way to teach computational thinking in the classroom to both younger and older students.

Jensen explains, “This could be done as a beginning-of-the-year activity where students have the chance to interview one another, or it could be used to summarize new content from a topic in science or social studies.” 

Having to adhere to a restrictive word count forces students to evaluate which information is worth including and what can be left out, putting into practice the concept of abstraction.

4. Rube Goldberg Machine

“This is an old one, but a good one,” Pals begins. “Have your students create a Rube Goldberg Machine.”

A Rube Goldberg Machine is a classic representation of computational thinking, using a chain reaction to show each step of the machine’s process toward a desired outcome.

A Rube Goldberg machine is a classic example of how students can learn computational thinking in the classrom.

Pals discusses the effectiveness of this method for teaching computational thinking, stating, “The idea is to decompose a simple problem (i.e., turning on a light), then use patterns and abstraction to create a final algorithm or, in this case, a machine.”

Try this Leprechaun trap activity with your Sphero robot to inspire your students’ first Rube Goldberg machine. 

5. Punctuation Flowchart

Flowcharts are especially useful when it comes to helping students understand the concept of automation and algorithms, and they can be applied to a wide range of subjects. For English, students can create a flowchart to help determine what punctuation is needed for a given sentence.

A punctuation flowchart can be useful for English learning students to learn computational thinking in the classroom.

Jensen tells us, “This is a good strategy for English Language Learners or special education students who might be struggling with how to punctuate a sentence in their writing. Creating a flowchart could help them decide whether a sentence needs a period or a question mark.”

Teach Computational Thinking Skills with Sphero

Computational thinking is a crucial set of skills for young learners that can be easily incorporated into classrooms or at home in a variety of ways, spanning all different subjects.

It’s important to remember that educators don’t have to be computer science experts to foster students’ computational thinking skills, and it can be built into existing lessons without the need to create brand new material.

Jensen expands on this and encourages collaboration, explaining, “Teachers need to be provided with authentic experiences to help change the mindset of not being equipped or experienced enough to teach computational thinking. They can utilize one another and collaborate as a team or as a school to identify where they are already teaching these life-long skills in their daily lessons.”

Educators can also promote computational thinking skills in students with the help of Sphero’s programmable robots and STEM kits and STEAM activities designed to introduce the concepts of decomposition, pattern recognition, abstraction, and algorithm design through play.

Watch our webinar on "Computational Thinking in the Classroom: Tools and Resources for Educators" here .

problem solving consist of five steps using computational thinking

Written by:

Sphero Team

Keep your inbox inspired. Sign up for product updates, exclusive offers, and teacher resources.

Popular posts

Sphero Heroes posing for picture together.

Featured products

Sphero BOLT Power Pack + Sphero City and Golf Code Mat.

IMAGES

  1. 5 step problem solving method

    problem solving consist of five steps using computational thinking

  2. What Is Problem-Solving? Steps, Processes, Exercises to do it Right

    problem solving consist of five steps using computational thinking

  3. 5 Step Problem Solving Process Diagram for PowerPoint

    problem solving consist of five steps using computational thinking

  4. Core Concepts Of Computational Thinking For Problem Solving

    problem solving consist of five steps using computational thinking

  5. Computational Thinking Defined. What is Computational Thinking and

    problem solving consist of five steps using computational thinking

  6. 5 step problem solving method

    problem solving consist of five steps using computational thinking

VIDEO

  1. problem solving

  2. Computational Thinking?

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

  4. Computational Thinking Graded Assignment Detailed Solutions (Week -10)

  5. Problem solving five

  6. Computational Thinking

COMMENTS

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

    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.

  2. Problem Solving Using 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 ...

  3. Computational Thinking for Problem Solving

    Computational thinking is a problem-solving process in which the last step is expressing the solution so that it can be executed on a computer. However, before we are able to write a program to implement an algorithm, we must understand what the computer is capable of doing -- in particular, how it executes instructions and how it uses data.

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

  5. Computational Thinking Defined

    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.

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

  7. Four computational thinking strategies for building problem-solving

    Algorithmic design - making steps and rules to solve problems. Most problems will require students to employ multiple strategies. Julie Evans, CEO of the education nonprofit Project Tomorrow, illustrated that point by asking attendees at one session to draw a cat in less than 30 seconds.No drawing looked exactly the same, but the participating educators had to quickly break their mental image ...

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

  9. Computational thinking

    Computational thinking (CT) refers to the thought processes involved in formulating problems so their solutions can be represented as computational steps and algorithms. In education, CT is a set of problem-solving methods that involve expressing problems and their solutions in ways that a computer could also execute. It involves automation of processes, but also using computing to explore ...

  10. Problem Solving Using 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 ...

  11. UNIT 1: How to Think Like an Engineer.

    Computational Thinking is the thought processes involved in understanding a problem and expressing its solution in a way that a computer can effectively carry out. Computational thinking involves solving problems, designing systems, and understanding human behavior (e.g. what the user needs or wants) - thinking like an engineer. Computational ...

  12. PDF TECH TIP: Computational Thinking

    TECH TIP: Computational Thinking Computational thinking (CT) at its core is a problem-solving process that can be used by everyone, in a variety of content 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

  13. Computational Problem Solving Conceptual Framework

    Much of the process of computational problem solving is thus oriented towards finding ways to use the power of computers to design new solutions or execute existing solutions more efficiently. Using computation to solve problems requires the ability to think in a certain way, which is often referred to as 'computational thinking'.

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

  15. PDF Computational Thinking and 21st Century Problem Solving

    What is Computational Thinking? • Definition o "CT involves solving problems, designing systems, and understanding human behavior, by drawing on the concepts fundamental to computer science." • Vision o A fundamental skillused by everyone by the middle of the 21st century (i.e., like reading, writing, and arithmetic). J.M. Wing ...

  16. Computational Thinking for Problem Solving

    About the Course. Computational thinking is the process of approaching a problem in a systematic manner and creating and expressing a solution such that it can be carried out by a computer. But you don't need to be a computer scientist to think like a computer scientist! In fact, we encourage students from any field of study to take this course.

  17. Computational Thinking

    Thought Exercise: Problem-Solving Models Computational Thinking is an effective model of problem solving, but it is only one model. Others include scientific thinking or the scientific method (which is used by scientists to answer questions about how and why the world works) and design thinking (which is used by designers and engineers to design objects and experiences).

  18. What is computational thinking?

    Computers can be used to help us solve problems. However, before a problem can be tackled, the problem itself and the ways in which it could be solved need to be understood. Computational thinking ...

  19. Computational Thinking: Its Purpose & Importance

    Computational thinking is a driver of innovation. At its core, computational thinking helps to solve complex problems, which is the same basis that inspires innovative solutions to these problems. Without the ability to problem-solve using computational thinking, it would be difficult to define and replicate innovative solutions to modern problems.

  20. Computational Thinking for Problem Solving

    Summary. The computational thinking is one of approach in order to solve problems. In computational thinking, there are 4 pillars which can help you to solve the problem systematically. Those are ...

  21. Creative Learning in Problem Solving and Development of Computational

    Additionally, Computational Thinking involves solving problems using models, abstractions, organization, and decomposition of these elements in an algorithmic way and thus can contribute to the development of an individual's ability to be creative. Therefore, this study aims at understanding the relationship between creative learning in ...

  22. Standard 5: Computational Thinker

    Standard 5: Computational Thinker. Students develop and employ strategies for understanding and solving problems in ways that leverage the power of technological methods to develop and test solutions. [with sub-standards 5a-5d] See all Instructional Ideas for Standard 5: Computational Thinker. 5a. Formulate problem definitions. Students ...

  23. 5 Ways To Teach Computational Thinking in the Classroom

    1. Number Sense Games. Math can help develop computational thinking skills by using number sense games to teach the concept of pattern recognition. For younger students, this could look like sorting numbers in numerical order, while older students may group together numbers that share characteristics. Pals explains why this is so beneficial ...