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 189 2125 Local: +44 (0) 1904 211 030 Email:  [email protected]

© University of York Legal statements | Privacy and cookies

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

the process of computational problem solving

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

Competency framework

Conceptual framework of the PILA Computational Problem Solving module

What is computational problem solving.

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

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

Why is computational problem solving important and useful?

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

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

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

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

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

How is computational problem solving assessed in PILA?

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

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

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

Computational problem solving skills.

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

• Decompose problems

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

• Recognise and address patterns

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

• Generalise solutions

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

• Systematically test and debug

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

Programming concepts

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

• Sequences

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

• Conditionals

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

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

• Functions

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

How is student performance evaluated in the PILA module?

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

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

the process of computational 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

the process of computational problem solving

Take a step further

© Organisation for Economic Co-operation and Development

MIT Press

On the site

  • Introduction to Computation and Programming Using Python

Introduction to Computation and Programming Using Python

Introduction to Computation and Programming Using Python , third edition

With application to computational modeling and understanding data.

by John V. Guttag

ISBN: 9780262542364

Pub date: January 5, 2021

  • Publisher: The MIT Press

664 pp. , 7 x 9 in , 140

ISBN: 9780262363433

Pub date: March 2, 2021

eTextbook rental

  • 9780262542364
  • Published: January 2021
  • 9780262363433
  • Published: March 2021
  • MIT Press Bookstore
  • Penguin Random House
  • Barnes and Noble
  • Bookshop.org
  • Books a Million

Other Retailers:

  • Amazon.co.uk
  • Waterstones
  • Description

The new edition of an introduction to the art of computational problem solving using Python.

This book introduces students with little or no prior programming experience to the art of computational problem solving using Python and various Python libraries, including numpy, matplotlib, random, pandas, and sklearn. It provides students with skills that will enable them to make productive use of computational techniques, including some of the tools and techniques of data science for using computation to model and interpret data as well as substantial material on machine learning.

The book is based on an MIT course and was developed for use not only in a conventional classroom but in a massive open online course (MOOC). It contains material suitable for a two-semester introductory computer science sequence.

This third edition has expanded the initial explanatory material, making it a gentler introduction to programming for the beginner, with more programming examples and many more “finger exercises.” A new chapter shows how to use the Pandas package for analyzing time series data. All the code has been rewritten to make it stylistically consistent with the PEP 8 standards. Although it covers such traditional topics as computational complexity and simple algorithms, the book focuses on a wide range of topics not found in most introductory texts, including information visualization, simulations to model randomness, computational techniques to understand data, and statistical techniques that inform (and misinform) as well as two related but relatively advanced topics: optimization problems and dynamic programming. The book also includes a Python 3 quick reference guide.

All of the code in the book and an errata sheet are available on the book's web page on the MIT Press website.

John V. Guttag is the Dugald C. Jackson Professor of Computer Science and Electrical Engineering at MIT.

Additional Material

Table of Contents

Introduction to Computer Science and Programming edX Course

Author's Website with Code and Errata

Author Video - MIT, edX, and OCW Courses

Introduction to Computer Science and Programming OpenCourseWare

Author Video - Accessibility at Different Levels

Author Video - New Chapters and Sections

Author Video - Use of the Book in Courses

Related Books

Essentials of Compilation

the process of computational problem solving

Programming for Problem Solving

This book provides an introduction to computer programming using Python as a way to solve problems. It focuses on programming concepts and fundamentals within the context of solving real world problems.

book-cover

Table of Contents

  • Attributions
  • Acknowledgments
  • Learning Objectives
  • Introduction
  • Computational Thinking
  • An Example Algorithm
  • Verifying your Algorithm
  • The Process of Computational Problem Solving
  • Values and Variables
  • What is a Program?
  • Computational Problem Design Using the Basic Programming Constructs
  • The Role of Programming in the Field of Informatics
  • Unit Summary
  • Practice Problems
  • Computer Hardware Architecture
  • Digital Computing: It’s All about 0’s and 1’s
  • Operating Systems—Bridging Software and Hardware
  • Software Development Tools
  • Learning Programming with Python
  • Writing a Python Program
  • The Python Interactive Shell
  • The Basics of Python Programming
  • Example: Using Variables and Literal Constants
  • Operators and Expressions
  • Practice with Operators & Expressions
  • Evaluation Order
  • Input/Process/Output Pattern
  • Type Converter Functions
  • Python’s Standard Library
  • More on Strings
  • Object Oriented Programming
  • Simple Graphics Programming
  • Graphics Windows: Coordinate Systems
  • GraphWin Objects
  • Text Methods
  • Entry Objects
  • Displaying Images
  • Generating Colors
  • Interactive Graphics
  • Boolean Expressions
  • Logical Operators
  • Conditional Execution
  • Exception Handling
  • Practice with Handling Exceptions in our Programs
  • The for…in Statement
  • Nested Loops
  • Basic File Processing
  • Installing Python 3 and IDLE
  • Using Python and its IDE 
  • Appendix B: Python Cheat Sheet

This courseware includes resources copyrighted and openly licensed by multiple individuals and organizations. Click the words "Licenses and Attributions" at the bottom of each page for copyright and licensing information specific to the material on that page. If you believe that this courseware violates your copyright, please contact us .

Lumen Learning

Lumen Learning provides a simple, supported path for faculty members to adopt and teach effectively with open educational resources (OER). Read more about what we do.

Footer Logo Lumen Candela

Privacy Policy

Learning

Computational Thinking: Its Purpose & Importance

by Lcom Team | Nov 14, 2023 | Blogs

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

Share this article!

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

What is the Purpose of Computational Thinking?

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

How Does Computational Thinking Work?  

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

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

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

Why is Computational Thinking Important?

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

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

Final Thoughts

Learning.com Staff Writers

Learning.com Team

Staff Writers

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

Further Reading

Understanding Proclamation 2024 and the TA-TEKS

  • Understanding Proclamation 2024 and the TA-TEKS

by mdespain | Apr 16, 2024

Understanding Proclamation 2024 and the TA-TEKS  In 2024, Texas introduced Proclamation 2024 to begin the process of adopting new instructional...

Guide to Teaching Algorithms in Computer Programming for K-12 Students

  • Guide to Teaching Algorithms in Computer Programming for K-12 Students

by Lcom Team | Apr 9, 2024

Algorithms are the heart of computer programming, providing the step-by-step instructions that computers follow to perform tasks and solve problems....

Planning Digital Literacy Assessment: A Simplified Approach

  • Planning Digital Literacy Assessment: A Simplified Approach

by Lcom Team | Apr 4, 2024

As educators know, assessments are critical to the learning process. They provide beneficial self-checks to students, informative results to...

Quick Links

  • Request More Info
  • Cookie Settings

Recent news & Articles

  • Digital Citizenship in Students: Examples and Practice Exercises
  • Technology Skills to Teach Gen Z for Future Success
  • Skip to Nav
  • Skip to Main
  • Skip to Footer

Landmark College

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

Please try again

Four light bulbs

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

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

Decomposition - breaking a complex problem into smaller parts or questions

Pattern recognition - identifying trends, differences or similarities in data

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

Algorithmic design - making steps and rules to solve problems

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

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

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

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

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

Crafting computational problems

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

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

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

A computational approach based on the Legendre-Galerkin method for solving a distributed optimal control problem constrained by the biharmonic equation

  • Original Paper
  • Published: 24 April 2024

Cite this article

the process of computational problem solving

  • Manoochehr Khasi 1  

11 Accesses

Explore all metrics

This paper presents a Legendre-Galerkin spectral method to compute the solution of a distributed optimal control problem (OCP) constrained by the biharmonic equation on regular and irregular domains. First, the optimality system is obtained by the Karush–Kuhn–Tucker optimality conditions. Next, it is discretized by the proposed method, and a coupled matrix equation is obtained. Finally, the arising system is solved by using the Kronecker product. Using the appropriate base functions causes a system with sparse matrices. Also, one of the advantages of this approach is its high accuracy for solving fourth-order problems. The error estimate is also investigated theoretically. Many numerical examples are included to demonstrate the accuracy and efficiency of the proposed approach.

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

Access this article

Price includes VAT (Russian Federation)

Instant access to the full article PDF.

Rent this article via DeepDyve

Institutional subscriptions

the process of computational problem solving

Similar content being viewed by others

the process of computational problem solving

Fast solver of optimal control problems constrained by Ohta-Kawasaki equations

the process of computational problem solving

An adaptive nonmonotone truncated Newton method for optimal control of a class of parabolic distributed parameter systems

A practical factorization of a schur complement for pde-constrained distributed optimal control, availability of data and materials.

Not applicable

Code Availability

Tröltzsch, F.: Optimal control of partial differential equations: theory, methods, and applications vol. 112. American Mathematical Soc., (2010)

Yücel, H., Stoll, M., Benner, P.: A discontinuous Galerkin method for optimal control problems governed by a system of convection-diffusion PDEs with nonlinear reaction terms. Comput. Math. Appl. 70 (10), 2414–2431 (2015)

Article   MathSciNet   Google Scholar  

Hu, W., Shen, J., Singler, J.R., Zhang, Y., Zheng, X.: A superconvergent HDG method for distributed control of convection diffusion PDEs. J. Sci. Comput. 76 (3), 1436–1457 (2018)

Chen, G., Hu, W., Shen, J., Singler, J.R., Zhang, Y., Zheng, X.: An HDG method for distributed control of convection diffusion PDEs. J. Comput. Appl. Math. 343 , 643–661 (2018)

Frutos, J., García-Archilla, B., Novo, J.: Local error estimates for the SUPG method applied to evolutionary convection-reaction-diffusion equations. J. Sci. Comput. 66 (2), 528–554 (2016)

Brenner, S.C., Gedicke, J., Sung, L.-Y.: C \(\hat{~}\) 0 interior penalty methods for an elliptic distributed optimal control problem on nonconvex polygonal domains with pointwise state constraints. SIAM J. Numer. Anal. 56 (3), 1758–1785 (2018)

Ghasemi, S., Effati, S.: An artificial neural network for solving distributed optimal control of the Poisson’s equation. Neural Process. Lett. 1–17 (2018)

Samadi, F., Heydari, A., Effati, S.: A numerical method based on a bilinear pseudo-spectral method to solve the convection-diffusion optimal control problems. Int. J. Comput. Math. 98 (1), 28–46 (2021)

Samadi, F., Heydari, A., Effati, S.: Numerical solutions of two-dimensional PDE-constrained optimal control problems via bilinear pseudo-spectral method. Math. Sci. 1–17 (2022)

Gudi, T., Nataraj, N., Pani, A.K.: Mixed discontinuous Galerkin finite element method for the biharmonic equation. J. Sci. Comput. 37 , 139–161 (2008)

Shi, Z., Cao, Y.-Y.: A spectral collocation method based on Haar wavelets for Poisson equations and biharmonic equations. Math. Comput. Model. 54 (11–12), 2858–2868 (2011)

Zhuang, Q., Chen, L.: Legendre-Galerkin spectral-element method for the biharmonic equations and its applications. Comput. Math. Appl. 74 (12), 2958–2968 (2017)

Abbasbandy, S., Shivanian, E., AL-Jizani, K.H., Atluri, S.N.: Pseudospectral meshless radial point interpolation for generalized biharmonic equation subject to simply supported and clamped boundary conditions. Eng. Anal. Bound. Elem. 125 , 23–32 (2021)

Ye, X., Zhang, S.: Four-order superconvergent CDG finite elements for the biharmonic equation on triangular meshes. J Comput. Appl. Math. 115516 (2023)

Feng, J., Wang, S., Bi, H., Yang, Y.: An HP-mixed discontinuous Galerkin method for the biharmonic eigenvalue problem. Appl. Math. Comput. 450 , 127969 (2023)

MathSciNet   Google Scholar  

Gudi, T., Nataraj, N., Porwal, K.: An interior penalty method for distributed optimal control problems governed by the biharmonic operator. Comput. Math. Appl. 68 (12), 2205–2221 (2014)

Chowdhury, S., Gudi, T.: A C0 interior penalty method for the Dirichlet control problem governed by biharmonic operator. J. Comput. Appl. Math. 317 , 290–306 (2017)

Chowdhury, S., Garg, D., Shokeen, R.: Modified C0 interior penalty analysis for fourth order Dirichlet boundary control problem and a posteriori error estimate. (2022) arXiv:2210.08744

Shylaja, D.: Numerical analysis of optimal control problems governed by fourth-order linear elliptic equations using the Hessian discretisation method. (2022) arXiv:2212.06700

Zhou, J., Zhang, J., Xing, X.: Galerkin spectral approximations for optimal control problems governed by the fourth order equation with an integral constraint on state. Comput. Math. Appl. 72 (10), 2549–2561 (2016)

Frei, S., Rannacher, R., Wollner, W.: A priori error estimates for the finite element discretization of optimal distributed control problems governed by the biharmonic operator. Calcolo 50 (3), 165–193 (2013)

Garg, D., Porwal, K.: Adaptive finite element methods for a fourth order obstacle problem and a state constrained optimal control problem. Math. Comput. Simul. 207 , 1–23 (2023)

Shen, J.: Efficient spectral-Galerkin method i. direct solvers of second-and fourth-order equations using Legendre polynomials. SIAM J Scie. Comput. 15 (6), 1489–1505 (1994)

Atkinson, K., Chien, D., Hansen, O.: A spectral method for the biharmonic equation. In: Contemporary Computational Mathematics-A Celebration of the 80th Birthday of Ian Sloan, pp. 97–118. Springer, (2018)

Hinze, M., Pinnau, R., Ulbrich, M., Ulbrich, S.: Optimization with PDE constraints vol. 23. Springer, (2008)

Van Loan, C.F.: The ubiquitous Kronecker product. J. Comput. Appl. Math. 123 (1–2), 85–100 (2000)

Hinze, M.: A variational discretization concept in control constrained optimization: the linear-quadratic case. Comput. Optim. Appl. 30 , 45–61 (2005)

Herzog, R., Kunisch, K.: Algorithms for PDE-constrained optimization. GAMM-Mitteilungen 33 (2), 163–176 (2010)

Khasi, M., Rashidinia, J., Rasoulizadeh, M.N.: Fast computing approaches based on a bilinear pseudo-spectral method for nonlinear acoustic wave equations. SIAM J. Sci. Comput. 45 (4), 413–439 (2023)

Canuto, C., Hussaini, M.Y., Quarteroni, A., Zang, T.A.: Spectral methods in fluid dynamics. Springer, (1988)

Guo, B.: Spectral methods and their applications. World Sci. (1998)

Download references

Acknowledgements

The author would like to thank the editor and the anonymous reviewers for their careful reading and valuable suggestions that significantly enhance the manuscript.

Author information

Authors and affiliations.

School of Mathematics, Iran University of Science and Technology, Tehran, Iran

Manoochehr Khasi

You can also search for this author in PubMed   Google Scholar

Contributions

The manuscript is completely written by myself (Dr. Manoochehr Khasi).

Corresponding author

Correspondence to Manoochehr Khasi .

Ethics declarations

Ethical approval.

This manuscript does not contain any studies with human participants or animals performed by any of the authors.

Consent to participate

Consent to publication, conflict of interest.

The author declares no competing interests.

Additional information

Publisher's note.

Springer Nature remains neutral with regard to jurisdictional claims in published maps and institutional affiliations.

Rights and permissions

Springer Nature or its licensor (e.g. a society or other partner) holds exclusive rights to this article under a publishing agreement with the author(s) or other rightsholder(s); author self-archiving of the accepted manuscript version of this article is solely governed by the terms of such publishing agreement and applicable law.

Reprints and permissions

About this article

Khasi, M. A computational approach based on the Legendre-Galerkin method for solving a distributed optimal control problem constrained by the biharmonic equation. Numer Algor (2024). https://doi.org/10.1007/s11075-024-01832-w

Download citation

Received : 02 July 2023

Accepted : 27 March 2024

Published : 24 April 2024

DOI : https://doi.org/10.1007/s11075-024-01832-w

IMAGES

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

    the process of computational problem solving

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

    the process of computational problem solving

  3. Core Concepts Of Computational Thinking For Problem Solving

    the process of computational problem solving

  4. PPT

    the process of computational problem solving

  5. what is computational thinking and problem solving

    the process of computational problem solving

  6. 5 step problem solving method

    the process of computational problem solving

VIDEO

  1. Problem Solving Using Computational Thinking Quiz Answers

  2. Coding and Robotics

  3. sciencefather.com Algorithmic HorizonsTo Nominate Open Now!

  4. # explanation of process of computational problem solving in python

  5. The Versatility of a Physics Degree: Beyond the Math 👩‍💻

  6. Algorithmic Insights: Definition, Design Principles, and Analysis Techniques

COMMENTS

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

  2. Computational Thinking Defined

    The second step of the computational solution, Algorithmic Expression, is the heart of computational problem solving. The conversion of Data to Information and then Knowledge can be done via computational problem solving. After defining the problem precisely, it involves these three steps: Data: structure raw facts for evidence-based reasoning

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

  4. PDF TECH TIP: Computational Thinking

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

  5. UNIT 1: How to Think Like an Engineer

    The Process of Computational Problem Solving. Computational problem solving does not simply involve the act of computer programming. It is a process, with programming being only one of the steps. Before a program is written, a design for the program must be developed (the algorithm). And before a design can be developed, the problem to be ...

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

  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. In education, CT is a set of problem-solving methods that involve expressing problems and their solutions in ways that a computer could also execute. It involves automation of processes, but also using computing to explore ...

  8. Computational Thinking Processes and Their Congruence with Problem

    Even if the chosen definition does not actually reflect this in detail, a computational thinking process, like a problem-solving process, contains an evaluation component (Fraillon et al., 2019). During the process, but above all after it has been shaped, the solution has to be tested to make sure that the previously formulated goal can be ...

  9. Computational problem

    Types Decision problem. A decision problem is a computational problem where the answer for every instance is either yes or no. An example of a decision problem is primality testing: "Given a positive integer n, determine if n is prime.". A decision problem is typically represented as the set of all instances for which the answer is yes.For example, primality testing can be represented as 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. Creative Learning in Problem Solving and Development of Computational

    The Programming discipline is part of the basic training in Computer Science courses. Its content is focused on teaching concepts, computational models and programming language [].The literature presents some challenges faced by teachers in the programming teaching process, among which we can highlight: to present problem-solving techniques and to work on the student's abstraction capacity ...

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

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

  14. Introduction to Computation and Programming Using Python

    The new edition of an introduction to the art of computational problem solving using Python.This book introduces students with little or no prior programming... Skip to content. Books. Column. View all subjects; ... With Application to Computational Modeling and Understanding Data. by John V. Guttag. Paperback. $75.00. Paperback. ISBN ...

  15. Programming for Problem Solving

    This book provides an introduction to computer programming using Python as a way to solve problems. It focuses on programming concepts and fundamentals within the context of solving real world problems. What is a Program? UNIT 4: Control Structures: Making Decisions and Looping in Computing. Data and Information Processing in Python.

  16. Understanding Algorithms: The Key to Problem-Solving Mastery

    They serve as the backbone of software development, powering the creation of innovative applications across numerous domains. By comprehending the concept of algorithms, aspiring computer science enthusiasts gain a powerful toolset to approach problem-solving and gain insight into the efficiency and performance of different computational methods.

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

  18. Solving Computational Problems

    Throughout these lessons we will advocate a five-step approach to solving computational problems. Below, we outline the approach and relate it to the problem at hand. Problem. We begin with a clear statement of the problem. Ours is to calculate the number of square feet of the earth's surface that every human would receive if the surface were ...

  19. The Fundamentals of Computational Problem Solving.

    When doing so, you should follow these guidelines for others to understand your flowcharts:• Write states and instruction steps inside rectangles. • Write decision steps, where the process may ...

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

  21. Problem Solving and Computational Thinking in a Learning Environment

    Abstract and Figures. Computational thinking is a new problem soling method named for its extensive use of computer science techniques. It synthesizes critical thinking and existing knowledge and ...

  22. Four computational thinking strategies for building problem-solving

    They outlined four strategies that make up the computational thinking process: Decomposition - breaking a complex problem into smaller parts or questions. Pattern recognition - identifying trends, differences or similarities in data. Abstraction - removing unnecessary elements or data to focus on what's useful in solving a problem

  23. What is Problem Solving? Steps, Process & Techniques

    1. Define the problem. Diagnose the situation so that your focus is on the problem, not just its symptoms. Helpful problem-solving techniques include using flowcharts to identify the expected steps of a process and cause-and-effect diagrams to define and analyze root causes.. The sections below help explain key problem-solving steps.

  24. A computational approach based on the Legendre-Galerkin ...

    This paper presents a Legendre-Galerkin spectral method to compute the solution of a distributed optimal control problem (OCP) constrained by the biharmonic equation on regular and irregular domains. First, the optimality system is obtained by the Karush-Kuhn-Tucker optimality conditions. Next, it is discretized by the proposed method, and a coupled matrix equation is obtained. Finally ...

  25. Quantum computing and AI: The future of problem-solving

    Explore how quantum computing and AI revolutionize problem-solving across business and society, turning today's science fiction into tomorrow's innovations. ... quantum computing is designed to use the principles of quantum mechanics to achieve computational power that rivals today's most powerful supercomputers. ... The process explores ...

  26. Intel Builds World's Largest Neuromorphic System to Enable More

    What It Does: Hala Point is the first large-scale neuromorphic system to demonstrate state-of-the-art computational efficiencies on mainstream AI workloads.Characterization shows it can support up to 20 quadrillion operations per second, or 20 petaops, with an efficiency exceeding 15 trillion 8-bit operations per second per watt (TOPS/W) when executing conventional deep neural networks.