Learning Mind

How to Use Computational Thinking to Solve Problems Like a Pro

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

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

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

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

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

What exactly is computational thinking?

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

Computational thinking

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

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

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

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

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

Four steps in computational thinking

Decomposition.

Taking the problem and breaking it down into smaller components.

Pattern recognition

Looking for patterns within these smaller components.

Abstraction

Focusing on the important details and leaving out irrelevant distractions.

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

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

For example:

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

By breaking down the components.

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

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

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

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

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

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

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

Why is computational thinking important?

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

We retain control

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

We become confident

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

We are not overwhelmed

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

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

Final thoughts

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

References :

  • royalsocietypublishing.org
  • www.researchgate.net

power of misfits book banner desktop

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

Share this story share this content.

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

This Post Has 2 Comments

what is computational thinking and problem solving

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

what is computational thinking and problem solving

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

Leave a Reply Cancel reply

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

the power of misfits black friday

Two computer scientists talking at computers with code on the screens

What is computational thinking?

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

Computational thinking requires:

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

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

What are the four parts of computational thinking?

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

Decomposition

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

Abstraction

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

Pattern recognition

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

Algorithm design

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

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

Why is computational thinking important?

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

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

How can computational thinking be used?

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

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

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

What are some examples of computational thinking?

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

What is the difference between computational thinking and computer science?

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

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

How can we teach computational thinking?

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

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

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

Become a computational thinker

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

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

Start application

Admission requirements

Start dates

Tuition and course fees

Accessibility Statement

Online programmes

Other programmes at York

University of York

York YO10 5DD United Kingdom

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

© University of York Legal statements | Privacy and cookies

mySmowltech

what is computational thinking and problem solving

Exploring Computational Thinking: definition, phases, and key traits

Table of contents.

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

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

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

What is Computational Thinking?

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

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

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

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

Exploring Computational Thinking: definition, phases, and key traits

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

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

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

Phases of Computational Thinking

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

1. Problem Identification

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

2. Decomposition

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

3. Pattern Recognition

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

Subscribe today to SMOWL’s weekly newsletter!

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

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

4. Abstraction

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

5. Algorithms

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

6. Evaluation and Refinement

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

Examples of Computational Thinking in Action

Key Traits of Computational Thinking

The following factors characterize computational thinking :

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

Examples of Computational Thinking in Action

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

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

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

What is Computational Thinking?

Computational Thinking in Education

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

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

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

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

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

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

Download now!

8 interesting

about proctoring

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

Fill out the form and download the guide now.

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

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

Why is proofreading important?

Proofreading skills: why are important and how to improve them

Types of Digital Technology

Digital technology: what is it and when was it invented?

Talking about the connection between collaborative profiles and digital learners

Learners digital: what they mean and characteristics

  • Copyright © 2024 all rights reserved SMOWLTECH

Write below what you are looking for

Escribe a continuación lo que estas buscando

Computational thinking & problem-solving

what is computational thinking and problem solving

Wing (2006, 2011) defined computational thinking as the thought processes involved in formulating problems and their solutions so that the solutions are represented in a form that can be effectively carried out by a computer. [2]

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

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

The big ideas in computational thinking [ edit ]

Thinking procedurally [ edit ].

  • Procedural thinking
  • Evaluating process
  • Sub-process

Decisions [ edit ]

Thinking logically [ edit ].

  • Logical rules

Thinking ahead [ edit ]

  • Inputs and outputs
  • Pre-conditions

Thinking concurrently [ edit ]

  • Concurrency

Thinking abstractly [ edit ]

  • Abstraction

Connecting computational thinking and program design [ edit ]

  • Linear arrays
  • Applied algorithmic thinking

Use of programming languages [ edit ]

  • Conditionals
  • Collections

Standards [ edit ]

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

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

References [ edit ]

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

Separate into simpler constituents.

Produce a plan, simulation or model.

Apply knowledge or rules to put theory into practice.

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

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

Give a detailed account including reasons or causes.

Reach a conclusion from the information given.

Give a brief account.

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

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

Develop information in a diagrammatic or logical form.

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

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

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

Propose a solution, hypothesis or other possible answer.

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

Obtain the only possible answer.

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

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

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

  • Computational thinking
  • Programming
  • Problem-solving
  • Essential idea

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

what is computational thinking and problem solving

U-M Credit Eligible

what is computational thinking and problem solving

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

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

Anyone can learn to think like a computer scientist.

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

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

what is computational thinking and problem solving

Flexible deadlines

Reset deadlines in accordance to your schedule.

what is computational thinking and problem solving

Shareable Certificate

Earn a digital certificate upon completion.

what is computational thinking and problem solving

100% online

Start instantly and learn at your own schedule.

Start building your computer science skills

Open course: computational thinking for problem solving.

  • Utility Menu

University Logo

CS 32: Computational Thinking and Problem Solving

Semester: , offered: .

This course is an introduction to computational thinking, useful concepts in the field of computer science, and the art of computer programming using Python. It meets  MW 12:45-2pm  in SEC 1.321 ; you may simultaneously enroll in another class at these two times. It also meets for a mandatory session later in the week; you must enroll in either a sesson on Thursdays from 11:15am-12:30pm or on  Fridays from 12:45pm-2pm (both meet in 114 Western Ave 2111+2112 ). Significant emphasis is placed in the class meetings and assignments on learning to use computers to solve real-world problems. I will present new material on Mondays and Wednesdays, and then run Fridays as active learning sessions and an opportunities to start the large programming problem sets together. Throughout the class, I'll introduce concepts and techniques only as they are needed to help solve the problem confronting us. You will learn how to go from an ambiguous problem description to a running solution so that you leave the class knowing how to instruct computers to do what you want them to do. You do not need to have any prior experience in computer science or computer programming.

Prerequisites: None. Antirequisites: This course is equivalent to Computer Science 50 (CS 50) in terms of course credit and fundamental learning outcomes. Students should take either CS 32 or CS 50.

breadcrumb

  • Exploring Computational Thinking

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

International Society for Technology in Education (ISTE)

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

Australian Digital Technologies Hub

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

CT Overview

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

CT involves a number of skills, including:

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

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

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

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

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

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

CT Materials

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

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

Core Subject: All

Subject: All

Suggested Age: 8-18

Type: Reference

Computational Thinking Concepts Guide

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

Differentiation Strategies Guide

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

Student Engagement Strategies Guide

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

Pseudocode Guide

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

Introduction to Python

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

Python Basics Quick Reference

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

Core Subject: Computer Science

Subject: Algorithms and Complexity

Suggested Age: 14-18

Type: Lesson

Measuring the Complexity of a Function or Algorithm

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

Suggested Age: 8-12

Ciphering a Sentence

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

Suggested Age: 11-18

Algorithmic Thinking

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

Suggested Age: 11-14

Divide and Conquer

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

Water Water Everywhere!

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

Data Compression

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

Subject: Data Analysis

Suggested Age: 8-15

Describing an Everyday Object

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

Exploring Your Environment

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

Subject: Logic

Suggested Age: 9-12

Machine Testing

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

Solving a Guessing Game with Data

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

Subject: Software Development

Suggested Age: 13-18

Functions and Algorithms

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

Core Subject: English-Language Arts

Subject: Language

Indefinite Articles

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

Suggested Age: 8-10

Mystery Word X

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

Present Participle

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

Finding Patterns in Spelling Errors and History

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

Suggested Age: 10-14

Writing a Story

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

Type: Program

Interactive Fiction

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

Interactive Mad Libs

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

Interactive Mad Libs (Variation)

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

Lady Macbeth Chat Bot

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

Stroke Order of a Chinese Character

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

Type: Exploration

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

Core Subject: History Social Science

Subject: US History

Map Visualization

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

Population Statistics

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

Core Subject: Mathematics

Subject: Algebra

Suggested Age: 12-15

Linear Association

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

Degrees and Radians

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

Slope and Y-Intercept

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

Suggested Age: 13-16

Two Workers

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

Three Workers

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

Savings and Interest

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

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

DVD Rentals

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

Theme Park Ride

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

T Tables for Simple Functions

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

Suggested Age: 12-16

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

Quadratic Formula

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

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

Factoring Perfect Square Binomial Expressions

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

Distance, Rate, Time

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

Binomial Products

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

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

Properties of Quadratic Equations

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

Substitution with Two Equations

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

Pascal’s Triangle

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

Vertex of a Quadratic

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

Roots of an Equation

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

Conic Sections

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

Combinations: n choose k

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

Matrix Multiplication

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

Logarithm Notation

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

Determinant of a 3x3 Matrix

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

Determinant of a 2x2 Matrix

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

Subject: Arithmetic

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

Graphing Sums of Dice Rolls

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

Random Number Illustrator

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

Sum of Two Dice

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

Subject: Calculus

Suggested Age: 16-18

Instantaneous Rate of Change

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

Calculating Definite Integrals

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

Fundamental Theorem of Calculus

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

Mean and Standard Deviation

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

Application and Modeling of Standard Deviation

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

Using Data from Sensors - Introduction

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

Using Data from Sensors - Filters and Functions

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

Continuous vs Discrete Data - Introduction

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

Continuous vs Discrete Data - Modeling Continuous Functions

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

Subject: Geometry

Turtle Geometry

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

Suggested Age: 13-17

Area of a Circle

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

Finding the Shortest Path

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

Suggested Age: 11-16

Pythagorean Theorem - Pencil Code

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

Acute, Obtuse, and Right Triangles

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

Calculating Surface Area

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

Pythagorean Theorem - Python

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

Polygonal Formulas

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

Distance Between Two Points

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

Area Calculations

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

Suggested Age: 12-14

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

Pattern Machine

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

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

Suggested Age: 10-12

Logic Party

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

Subject: Pre-Algebra

Fraction Addition and Common Denominators

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

Multiplication with Fractions

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

Suggested Age: 11-13

Ratios and Proportions

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

Multiplying by Numbers Between Zero and One

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

Dividing by Numbers Between Zero and One

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

Common Fractions and Equivalent Percentages

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

Percent Change

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

Scientific Notation

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

Percentages

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

Long Multiplication on Two-Digit Numbers - Pencil Code

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

Long Multiplication on Two-Digit Numbers - Python

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

Fractions and Proportions

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

Lemonade and Glasses

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

Evaluating Expressions

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

Midpoint Between Two Points

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

Complementary and Supplementary Angles

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

Populations

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

Rock Climber, Cliff, and Shadows

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

Basketball Hoops and Buildings

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

Fractional Exponents

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

Subject: Statistics and Probability

Combinations with Repeats

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

Factorials with Names

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

Sorting Data

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

Surveys and Estimating Large Quantities

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

Randomness in Stochastic Models

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

Stochastic and Deterministic Modeling

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

Analyzing Discrete and Continuous Data in a Spreadsheet

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

Analyzing Discrete and Continuous Data in a Map

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

Correlation vs Causation

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

Data Aggregation and Decomposition (Advanced Python)

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

Data Aggregation and Decomposition (Google Sheets)

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

The Law of Large Numbers and Probability

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

Generating Complex Behavior with Algorithms

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

Subject: Trigonometry

Suggested Age: 12-17

Application of Sin(x) and Cos(x)

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

Core Subject: Music

Subject: Music

Making Music with Algorithms

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

Core Subject: Science

Subject: Biology

Modeling the Genome using Computational Thinking

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

Modeling GDP and Waste using Computational Thinking

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

Modeling Natural Selection using Computational Thinking

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

Suggested Age: 14-17

Cell Biology - Filters

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

Cell Biology - Filter Design and Construction

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

Classifying Objects with Computational Thinking

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

Subject: Chemistry

Modeling Electron Configuration using Computational Thinking

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

Modeling Radioactive Decay using Computational Thinking

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

Modeling Boyle's Law using Computational Thinking

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

Patterns in the Periodic Table

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

Sorting the World's Cities (Google Sheets)

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

Sorting the World's Cities (Advanced Python)

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

What is Data? - Introduction

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

What is Data? - Code Breaking and Patterns

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

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

Subject: Earth Science

Energy Analysis

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

Subject: Physics

Modeling Projectile Motion using Computational Thinking

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

Modeling Pendulums using Computational Thinking

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

Modeling Free Fall using Computational Thinking

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

Working with Large Tables of Data

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

Simulating a Bouncing Ball

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

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

For educators

General CT Resources

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

CT Tips and Strategies

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

CT in Computer Science

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

CT in Science

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

CT in English/Language Arts

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

CT in Art, Design, Media

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

CT in Music

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

For administrators

CT for School Leaders

  • ISTE Computational Thinking Leadership Toolkit

CT in the Science Classroom

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

Computer Science Education Standards

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

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

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

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

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

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

How do I install Python on my computer?

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

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

Lesson 1: What is computational thinking? 

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

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

Decomposition

Pattern recognition

Abstraction

Algorithmic thinking

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

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

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

The four components of computational thinking 

1. decomposition .

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

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

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

Instructor note

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

coffee powder

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

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

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

2. Pattern recognition 

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

Take the bus to the supermarket

Purchase the milk

Take the bus back home

Repeat the process for all the items

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

3. Abstraction 

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

4. Algorithmic thinking 

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

The relevance of the four components 

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

A note on the difference between decomposition and algorithmic thinking 

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

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

Constraints 

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

Something to think about

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

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

!

CS for CA News & Updates

Computer science skills: computational thinking explained.

It’s a common misconception that computer science (CS) is only applicable to people working in a technology or STEM careers. However, skills learnt through CS are used in our everyday lives, and in a variety of subjects.

One of these skills is known as computational thinking (CT). 

What is computational thinking?

There are many problem-solving skills involved in computer science, including those needed to design, develop, and debug software. Computational thinking is a way of describing these skills.

Computational thinking refers to the thought processes involved in defining a problem and its solution so that the solution can be expertly carried out by a computer. We don't need computers to engage in computational thinking, but CT can leverage the power of computers to solve a problem.

Computational thinking helps build these skills:

  • Decomposition – the process of breaking down a complex problem into smaller parts that are more manageable, and helps us see problems as less overwhelming.
  • Abstraction – identifying common features, recognizing patterns, and filtering out what we don’t need. 
  • Algorithmic Thinking – designing a set of steps to accomplish a specific task. 
  • Debugging and Evaluation – testing and refining a potential solution, and ensuring it’s the best fit for the problem.

These skills relate to critical thinking and problem solving skills across different subject matter, highlighting how concepts of computing can be combined with other fields of study to assist in problem-solving.

Computational thinking is a way of describing the many problem solving skills involved in computer science, including those needed to design, develop, and debug software. However, computer science is more than just skills, it also includes concepts about the Internet, networking, data, cybersecurity, artificial intelligence, and interfaces. Computational thinking can be relevant beyond computer science, overlapping with skills also used in other STEM subjects, as well as the arts, social sciences, and humanities.

Why is computational thinking important? 

Computational thinking can apply these problem-solving techniques to a variety of subjects. For example, CT is established as one of the Science and Engineering Practices in the Next Generation Science Standards , and can also be found in several math state standards . Computational thinking also overlaps with skills used in other STEM subjects, as well as the arts, social sciences, and humanities. Computational thinking encourages us to use the power of computing beyond the screen and keyboard. 

It can also allow us to advance equity in computer science education...

By centering the problem-solving skills that are at the heart of computer science, we can promote its integration with other subject areas, and expose more students to the possibilities of computer science. 

Not only that, but computational thinking also opens the door for us to examine the limitations and opportunities of technology as it’s being developed. We’re able to analyze who is creating technology and why, as well as think critically about the ways in which it can impact society. 

Want to learn more about computational thinking?

To learn more about computational thinking, check out the resources:

  • This framework for CS for K-12 places CT at the core of its practices and is what the California standards are based on. 
  • Part of the British Computing Society, Computing at School put forth resources to assist teachers in the UK in embedding  CT in their classrooms. 
  • This is one of the earliest definitions of CT for educators, and noteworthy for its inclusion of certain dispositions as being essential for effective CT.  
  • The developers of Scratch divide CT into concepts, practices, and perspectives, and focus on the expressive and creative nature of computing. 
  • Instead of focusing solely on standards for students, ISTE  compiled a set of knowledge, skills, and mindsets needed for educators to be successful in integrating  CT across the K-12 content areas and grade bands.  
  • Bebras began as an international competition to promote CT for students, regardless of programming experience. It is now increasingly being used as a form of CT assessment. 

Explore Related Articles

what is computational thinking and problem solving

New Report on Equity in Computer Science Education in California’s Schools

what is computational thinking and problem solving

California Governor's Budget Supports Computer Science education

what is computational thinking and problem solving

SBE Approves Computer Science Strategic Implementation Plan

what is computational thinking and problem solving

Unable to load Tweets

what is computational thinking and problem solving

  • Competencies
  • Customisation
  • 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.

what is computational thinking and problem solving

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

what is computational thinking and problem solving

Take a step further

© Organisation for Economic Co-operation and Development

Module 5: Thinking and Analysis

Problem-solving with critical thinking, learning outcomes.

  • Describe how critical thinking skills can be used in problem-solving

Most of us face problems that we must solve every day. While some problems are more complex than others, we can apply critical thinking skills to every problem by asking questions like, what information am I missing? Why and how is it important? What are the contributing factors that lead to the problem? What resources are available to solve the problem? These questions are just the start of being able to think of innovative and effective solutions. Read through the following critical thinking, problem-solving process to identify steps you are already familiar with as well as opportunities to build a more critical approach to solving problems.

Problem-Solving Process

Step 1: define the problem.

Albert Einstein once said, “If I had an hour to solve a problem, I’d spend 55 minutes thinking about the problem and five minutes thinking about solutions.”

Often, when we first hear of or learn about a problem, we do not have all the information. If we immediately try to find a solution without having a thorough understanding of the problem, then we may only be solving a part of the problem.  This is called a “band-aid fix,” or when a symptom is addressed, but not the actual problem. While these band-aid fixes may provide temporary relief, if the actual problem is not addressed soon, then the problem will continue and likely get worse. Therefore, the first step when using critical thinking to solve problems is to identify the problem. The goal during this step is to gather enough research to determine how widespread the problem is, its nature, and its importance.

Step 2: Analyze the Causes

This step is used to uncover assumptions and underlying problems that are at the root of the problem. This step is important since you will need to ensure that whatever solution is chosen addresses the actual cause, or causes, of the problem.

Asking “why” questions to uncover root causes

A common way to uncover root causes is by asking why questions. When we are given an answer to a why question, we will often need to question that answer itself. Thus the process of asking “why” is an  iterative process —meaning that it is a process that we can repeatedly apply. When we stop asking why questions depends on what information we need and that can differ depending on what the goals are. For a better understanding, see the example below:

Problem: The lamp does not turn on.

  • Why doesn’t the lamp turn on? The fuse is blown.
  • Why is the fuse blown? There was overloaded circuit.
  • Why was the circuit overloaded? The hair dryer was on.

If one is simply a homeowner or tenant, then it might be enough to simply know that if the hair dryer is on, the circuit will overload and turn off.  However, one can always ask further why questions, depending on what the goal is. For example, suppose someone wants to know if all hair dryers overload circuits or just this one. We might continue thus:

  • Why did this hair dryer overload the circuit? Because hair dryers in general require a lot of electricity.

But now suppose we are an electrical engineer and are interested in designing a more environmentally friendly hair dryer. In that case, we might ask further:

  • Why do hair dryers require so much energy?

As you can see from this example, what counts as a root cause depends on context and interests. The homeowner will not necessarily be interested in asking the further why questions whereas others might be.

Step 3: Generate Solutions

The goal of this step is to generate as many solutions as possible. In order to do so, brainstorm as many ideas as possible, no matter how outrageous or ineffective the idea might seem at the time. During your brainstorming session, it is important to generate solutions freely without editing or evaluating any of the ideas. The more solutions that you can generate, the more innovative and effective your ultimate solution might become upon later review.

You might find that setting a timer for fifteen to thirty minutes will help you to creatively push past the point when you think you are done. Another method might be to set a target for how many ideas you will generate. You might also consider using categories to trigger ideas. If you are brainstorming with a group, consider brainstorming individually for a while and then also brainstorming together as ideas can build from one idea to the next.

Step 4: Select a Solution

Once the brainstorming session is complete, then it is time to evaluate the solutions and select the more effective one.  Here you will consider how each solution will address the causes determined in step 2. It is also helpful to develop the criteria you will use when evaluating each solution, for instance, cost, time, difficulty level, resources needed, etc. Once your criteria for evaluation is established, then consider ranking each criterion by importance since some solutions might meet all criteria, but not to equally effective degrees.

In addition to evaluating by criteria, ensure that you consider possibilities and consequences of all serious contenders to address any drawbacks to a solution. Lastly, ensure that the solutions are actually feasible.

Step 6: Put Solution into Action

While many problem-solving models stop at simply selecting a solution, in order to actually solve a problem, the solution must be put into action. Here, you take responsibility to create, communicate, and execute the plan with detailed organizational logistics by addressing who will be responsible for what, when, and how.

Step 7: Evaluate progress

The final step when employing critical thinking to problem-solving is to evaluate the progress of the solution. Since critical thinking demands open-mindedness, analysis, and a willingness to change one’s mind, it is important to monitor how well the solution has actually solved the problem in order to determine if any course correction is needed.

While we solve problems every day, following the process to apply more critical thinking approaches in each step by considering what information might be missing; analyzing the problem and causes; remaining open-minded while brainstorming solutions; and providing criteria for, evaluating, and monitoring solutions can help you to become a better problem-solver and strengthen your critical thinking skills.

iterative process: one that can be repeatedly applied

  • Problem solving. Authored by : Anne Fleischer. Provided by : Lumen Learning. License : CC BY: Attribution
  • College Success. Authored by : Matthew Van Cleave. Provided by : Lumen Learning. License : CC BY: Attribution
  • wocintech stock - 178. Authored by : WOCinTech Chat. Located at : https://flic.kr/p/FiGVWt . License : CC BY-SA: Attribution-ShareAlike
  • Five whys. Provided by : Wikipedia. Located at : https://en.wikipedia.org/wiki/Five_whys . License : CC BY-SA: Attribution-ShareAlike

Footer Logo Lumen Waymaker

Modeling a Problem-Solving Approach Through Computational Thinking for Teaching Programming

New citation alert added.

This alert has been successfully added and will be sent to:

You will be notified whenever a record that you have chosen has been cited.

To manage your alert preferences, click on the button below.

New Citation Alert!

Please log in to your account

Information & Contributors

Bibliometrics & citations, view options, recommendations, code4brownies: an active learning solution for teaching programming and problem solving in the classroom.

Code4Brownies is a software solution designed to foster active learning, coding, and problem solving in the classroom. Through this active learning style and platform, teachers can instantly provide guided instruction that gradually assists and leads ...

Programming attitudes predict computational thinking: Analysis of differences in gender and programming experience

Programming attitude has received increasing attention in programming and computational thinking (CT) education. However, at present, analysis remains scant on the correlation between students' programming attitudes and their CT skills,...

  • The programming attitudes scale has sufficient reliability and validity.

Computational Thinking for Self-Regulated Learning

In this theoretical paper, we compare computational thinking and self-regulated learning. Many studies use self-regulated learning to foster the acquisition of computational thinking competencies. Self-regulated learning skills are themselves beneficial ...

Information

Published in, publication history.

  • Research-article

Contributors

Other metrics, bibliometrics, article metrics.

  • 0 Total Citations
  • 0 Total Downloads
  • Downloads (Last 12 months) 0
  • Downloads (Last 6 weeks) 0

View options

Login options.

Check if you have access through your login credentials or your institution to get full access on this article.

Full Access

Share this publication link.

Copying failed.

Share on social media

Affiliations, export citations.

  • Please download or close your previous search result export first before starting a new bulk export. Preview is not available. By clicking download, a status dialog will open to start the export process. The process may take a few minutes but once it finishes a file will be downloadable from your browser. You may continue to browse the DL while the export process is in progress. Download
  • Download citation
  • Copy citation

We are preparing your search results for download ...

We will inform you here when the file is ready.

Your file of search results citations is now ready.

Your search export query has expired. Please try again.

Learning

Relatable Examples of Computational Thinking for Students

by Lcom Team | Sep 28, 2023 | Blogs

Students using computational thinking while building with legos during class

Share this article!

Examples of How Students Already Apply Computational Thinking in Everyday Life

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

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

1. Solving Puzzles or Playing Games

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

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

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

2. Building with Legos or Blocks

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

3. Math Problems

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

4. Science Experiments

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

5. Creative and Academic Writing

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

6. Art and Design  

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

7. Solving Everyday Problems

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

Final Thoughts

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

Learning.com Staff Writers

Learning.com Team

Staff Writers

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

Further Reading

Navigating a Successful Digital Curriculum Implementation

  • Navigating a Successful Digital Curriculum Implementation

by Kamala Wymore | Aug 15, 2024

Implementing a digital curriculum might seem overwhelming, but with the right strategy and teamwork, you can ensure a smooth and successful rollout....

Magic Behind Teaching and Learning

  • Magic Behind Teaching and Learning

by Kelli Erwin | Aug 13, 2024

The teaching and learning process can be magical for educators and students alike. However, creating an effective learning environment requires...

How Were the TEKS Created & What is Its Significance?

  • How Were the TEKS Created & What is Its Significance?

by Lcom Team | Jul 31, 2024

The Texas Essential Knowledge and Skills (TEKS) framework details the educational standards in the state of Texas, providing a comprehensive outline...

Quick Links

  • Request More Info

Recent news & Articles

  • Algorithmic Thinking: A Critical Skill for Today’s Students
  • CIPA Compliance Made Easy with Learning.com

ClickCease

Popular Searches

Computational thinking lessons.

data practices

August 21, 2024 | By alishaworkman

These computational thinking lessons are organized into disciplines of math, science, social studies, and ELA with a vareity of plugged and unplugged lessons. Lesson topics range from racial bias data at traffic stops, designing a solar system, voting rights and voter ID laws, and even creating a podcast. Source: Computational Thinking Lessons Funded by Paul G. Allen Family Foundation and Green Dot Public Schools

Sign up for updates!

IMAGES

  1. How can we use computational thinking to solve business problems

    what is computational thinking and problem solving

  2. Computational Thinking Defined. What is Computational Thinking and

    what is computational thinking and problem solving

  3. Core Concepts Of Computational Thinking For Problem Solving

    what is computational thinking and problem solving

  4. UNIT 1: How to Think Like an Engineer

    what is computational thinking and problem solving

  5. What is Computational Thinking?

    what is computational thinking and problem solving

  6. Computational Thinking in K-12 Education

    what is computational thinking and problem solving

COMMENTS

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

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

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

  3. What is Computational Thinking?

    Computational thinking skills, in the outermost circle, are the cognitive processes necessary to engage with computational tools to solve problems. These skills are the foundation to engage in any computational problem solving and should be integrated into early learning opportunities in K-3. Computational thinking practices, in the middle ...

  4. What is computational thinking?

    Computational thinking (CT) is a problem-solving technique that imitates the process computer programmers go through when writing computer programmes and algorithms. This process requires programmers to break down complex problems and scenarios into bite size pieces that can be fully understood in order to then develop solutions that are clear ...

  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, what it is, phases and characteristics

    Computational thinking is broken down into several phases that facilitate problem-solving: 1. Problem Identification. The first phase involves clearly defining the problem that needs to be solved. This includes understanding the requirements, limitations, and goals of the problem at hand. 2.

  7. 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. [1] 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. [2] It involves automation of processes, but also using computing to ...

  8. Identification of Problem-Solving Techniques in Computational Thinking

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

  9. Computational thinking & problem-solving

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

  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. Computational Thinking: What Is It? How Is It Used?

    Learn how to solve complex problems with computational thinking. Decomposition, Pattern Recognition, Abstraction and Algorithm Design are explained with simp...

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

  13. Computational Thinking for Problem Solving

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

  14. Understanding Computational Thinking for More Effective Learning

    Computational thinking is a set of methodical problem-solving skills that help people solve complex problems more effectively. Computational thinking helps people break down complex issues into simpler ones, notice patterns, focus on the important details and devise clear, step-by-step plans to overcome challenges.

  15. CS 32: Computational Thinking and Problem Solving

    This course is an introduction to computational thinking, useful concepts in the field of computer science, and the art of computer programming using Python. It meets MW 12:45-2pm in SEC 1.321; you may simultaneously enroll in another class at these two times. It also meets for a mandatory session later in the week; you must enroll in either a sesson on Thursdays from 11:15am-12:30pm or on ...

  16. Google for Education: Computational Thinking

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

  17. Computational Thinking: Its Purpose & Importance

    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.

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

  19. Lesson 1: What is computational thinking?

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

  20. Computer Science Skills: Computational Thinking Explained

    What is computational thinking? There are many problem-solving skills involved in computer science, including those needed to design, develop, and debug software. Computational thinking is a way of describing these skills. Computational thinking refers to the thought processes involved in defining a problem and its solution so that the solution ...

  21. Computational Thinking Definition

    Computational thinking is defined as the process of identifying a clear, defined, step-by-step solution to a complex problem. Its definition includes breaking down a problem into smaller pieces, recognizing patterns and eliminating extraneous details so that the step-by-step solution can be replicated by humans or computers.

  22. Computational Problem Solving Conceptual Framework

    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.

  23. 5.1: Problem Solving

    No headers. Math problem-solving is a crucial skill that helps people understand and deal with the complexities of the world. It's about more than just doing calculations; it involves interpreting problems, creating strategies, and using logical thinking to find solutions.

  24. Problem-Solving with Critical Thinking

    Problem-Solving Process Step 1: Define the problem. Albert Einstein once said, "If I had an hour to solve a problem, I'd spend 55 minutes thinking about the problem and five minutes thinking about solutions." Often, when we first hear of or learn about a problem, we do not have all the information. If we immediately try to find a solution ...

  25. Modeling a Problem-Solving Approach Through Computational Thinking for

    Contribution: A problem-solving approach (PSA) model derived from major computational thinking (CT) concepts. This model can be utilized to formulate solutions for different algorithmic problems and translate them into effective active learning methods.

  26. Relatable Examples of Computational Thinking for Students

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

  27. Computational Thinking Lessons

    These computational thinking lessons are organized into disciplines of math, science, social studies, and ELA with a vareity of plugged and unplugged lessons. Lesson topics range from racial bias data at traffic stops, designing a solar system, voting rights and voter ID laws, and even creating a podcast.