- Strategy Templates
Consulting Templates
- Market Analysis Templates
- Business Case
- Consulting Proposal
- Due Diligence Report
All Templates
The mckinsey problem solving process - a step-by-step guide.
Table of contents
Hypothesis-led problem solving, step 1: define the problem, step 2: structure the problem, step 3. prioritizing issues, step 4. develop issue analysis/work plan, step 5. conduct analyses, step 6: synthesize findings, step 7. developing recommendations.
Problem-solving—finding the best solution to a business opportunity or challenge—is at the heart of how management consultants create impact for their clients.
At McKinsey, there’s a proven method of problem solving that every associate learns from day one—a structured, step-by-step approach that can be applied to almost any business problem. By following this approach, McKinsey avoids reinventing the wheel with every new project, allowing consultants to focus on creating distinctive solutions and recommendations.
This post will guide you through that approach, offering practical tips, tricks, and free templates so you can start applying these techniques right away.
There are a number problem solving approaches being used at McKinsey, each suited for different types of problems.
This article focuses on the hypothesis-led approach —McKinsey’s go-to method for addressing most business challenges—which emphasizes forming and testing hypotheses to arrive at impactful solutions efficiently.
The hypothesis-led problem-solving approach is particularly effective when problems are complex and data may be incomplete, such as market entry strategies, business strategy development, mergers and acquisitions, and operational improvements.
Here are the seven steps involved in this process:
- Define problem - What key question do we need to answer?
- Structure problem – What could be the key elements of the problem?
- Prioritize issues – Which issues are most important to the problem?
- Develop issue analysis/work plan – Where and how should we spend our time?
- Conduct analyses – What are we trying to prove/disprove
- Synthesize findings – What implications do our findings have?
- Develop recommendations – What should we do?
Please note that although these steps are listed in order, problem-solving is not a straight line. Think of it as an iterative process where you quickly develop early hypotheses and solutions and continually refine them.
Let’s go through the seven steps in detail one by one:
McKinsey’s problem solving process starts with a clear and thorough definition of the problem and the end goal .
It’s tempting to rush this step—perhaps you think you already know the solution, or you believe the problem was already clearly outlined in the project assignment, or you feel pressured by stakeholders to proceed quickly. And while all these reasons might be valid, many unsuccessful projects stem from not having a clear definition of the problem and a shared understanding of what success looks like.
Great problem solvers take the time to establish a precise and comprehensive definition of the real issue at hand. And they make sure that this definition is understood and agreed upon by all relevant stakeholders as well as within the project team.
Using the Problem Statement Worksheet
To define the problem effectively, we recommend using the Problem Statement Worksheet (can be found here ). It looks simple, but it is very effective.
By thoroughly working through the Problem Statement Worksheet, you set a strong foundation for the rest of the problem-solving process, ensuring that everyone is aligned and focused on delivering the right solution. If you are unclear about an element of the Problem Statement Worksheet, it will almost always result in ‘scope creep’ or unaligned expectations.
A few tips on how to maximize the value of the Worksheet:
- Main question to be resolved : Make the main question SMART —Specific, Measurable, Action-oriented, Relevant, and Time-bound. For example, “How can Airline Inc. reduce operating costs by $400 million through more efficient and effective operations before 2027?” is a SMART question.
- Context : Discuss the environment in which the client operates. Consider internal and external factors like industry trends, competitive position, capability gaps, and financial flexibility (a market analysis template might be helpful here).
- Success Criteria : Clarify how key stakeholders define success and failure. Beyond quantitative goals, identify other important measures like timing, visibility of improvements, required capability building, and necessary mindset shifts.
- Scope and Constraints : Define what’s included and what’s not. Start by outlining the scope—for instance, the markets or segments of interest. Then specify any constraints within that scope, such as focusing on organic growth options only.
- Stakeholders : Identify who the key decision-makers are. Understanding who decides, who can help, and who might block progress is crucial from the outset.
- Key Sources of Insight : Determine the expertise and knowledge you’ll need. This could include internal resources like company experts and data sources, as well as external insights from experts, suppliers, and customers.
After defining the problem, the next step is to structure the problem effectively. This involves breaking down the main question into smaller, manageable parts that can be analyzed and addressed. Two powerful techniques for this are hypothesis trees and issue trees .
Hypothesis Trees
A hypothesis tree is a structured tool that breaks down your main problem into a hierarchy of testable hypotheses. Starting from the main question, you systematically decompose it into smaller, more manageable parts that can be individually analyzed and validated.
This approach helps you focus your efforts on the most critical areas, streamline your analysis, and move efficiently toward a solution. Example:
If the primary question is, “How can Airline Inc. reduce operating costs by $400 million through more efficient and effective operations before 2027?” you might develop the following hypotheses:
- Fleet Optimization : Airline Inc. can save $150 million by optimizing its fleet operations.
- Operational Efficiency : Airline Inc. can achieve $120 million in savings through process improvements and better resource allocation.
- Supplier and Procurement Optimization : By renegotiating supplier contracts and optimizing procurement processes, Airline Inc. can reduce costs by $80 million.
- Technology and Automation : Investing in technology and automation can achieve $50 million in savings.
Each of these hypotheses can then be broken down further and tested through analysis.
What makes a good hypothesis?
A strong hypothesis should:
- Be testable : You can prove or disprove it with data and analysis.
- Invite debate : It should be open to challenge, not a statement of fact.
- Matter to the outcome : If the opposite of your hypothesis wouldn’t affect the solution, it’s not significant.
- Lead to Action : It should point toward specific actions the company can take.
- Avoid Obviousness : It shouldn’t be something the client already knows without analysis.
Issue Trees
When you don’t have enough information to form specific hypotheses upfront, an issue tree is an effective tool to break down the main problem into key questions that need answering. Issue trees help you systematically explore all aspects of a complex problem by decomposing it into smaller, manageable issues or questions. This approach ensures that you cover all possible angles and don’t overlook any critical factors.
Example: Continuing with the operational costs of Airline Inc., your issue tree might look like this:
Tips for Effective Issue Trees:
- Start with the main question and break it down into smaller components.
- Use open-ended questions starting with “what,” “how,” or “why” to encourage deeper exploration.
- Ensure your issues are Mutually Exclusive (they don’t overlap) and Collectively Exhaustive (they cover all possible areas) - aka. MECE
After breaking down the problem into hypotheses or key issues, the next step is prioritizing which ones to tackle first. Effective prioritization ensures that your efforts are focused on the areas that will deliver the most significant impact.
A common tool for prioritization is the two-by-two matrix , which helps visualize and compare different issues based on specific criteria.
Choose two criteria that are most relevant to your project’s success. The most frequently used axes are:
- Impact : The potential of the issue to contribute to solving the main problem.
- Ease of Implementation : How straightforward it is to address the issue, considering factors like resources, time, and complexity.
Other commonly used prioritization criteria include urgency, fit with values and mission, strategic alignment, and fit with capabilities. Applying some of these prioritization criteria will typically knock out portions of the issue tree altogether, enabling you to focus your efforts where they matter most.
With your prioritized list of key issues or hypotheses, the next step is to design an effective work plan outlining how you’ll conduct the necessary analyses to address each issue plan the analyses needed to test these hypotheses and develop solutions. Turning your prioritized problems into a work plan involves two main steps:
First , define the tasks that need to be completed. Whether you’re starting from issues or hypotheses, clearly outline the desired outcomes and the analyses required to achieve them. Also, estimate the data sources, timing and who will be responsible for each.
Next , organize these tasks in a timeline that aligns with available resources and key project milestones (like important meetings or progress reviews). Make sure the sequence fits the overall pace of the project, such as weekly or bi-weekly meetings.
After putting together your work plan, the next step is gathering data and conducting analyses to solve the problem at hand. This step typically takes up most of the time spent on a consulting project.
While this guide doesn’t aim to teach you how to collect data or perform analyses, it’s important to emphasize that at McKinsey, quantitative data is paramount. Any solution not backed by solid numbers carries a heavy burden of proof. If data isn’t readily available, you must generate it yourself—whether through interviews, surveys, or constructing models.
Tips for this step
- Focus on solutions, not just analysis : Always aim for the end result. Don’t get caught up in just “running the numbers.”
- Simpler is often better : Your solutions must be thorough, but that doesn’t mean every detail needs weeks of research. Often, quickly finding a “good enough” answer is more valuable than taking extra time to perfect it. Quick estimates and rough calculations can guide more detailed analyses when needed. Generally, use the 80/20 rule : focus on the 20% of analysis that provides 80% of the solution.
After diving deep into data and analysis, it’s essential to step back and identify what’s truly important. This is often the most challenging part of problem-solving. Effective problem solvers look for the core message that will support a clear recommendation.
At McKinsey, the Pyramid Principle is used to synthesize findings. This principle states that every synthesis should communicate one main idea—the “governing thought.” Supporting ideas are organized logically, moving from detailed facts up to the main conclusion, while excluding irrelevant information.
Even though synthesizing formally comes near the end of the problem solving process, it’s something you should do continuously throughout the project. After making any analytical progress, try to create an initial “Day 1” or “Week 1” draft of your solution and revisit it regularly—testing and adjusting both your answers and your approach at each phase. Regular synthesis helps keep your team focused on the key question and ensures you’re always ready to communicate your findings.
This step involves translating your overall solution into specific actions that will deliver impact. This is where we answer the main question: “What should we do, and how should we do it?” While thorough analysis is important, it has little value if it doesn’t lead to actionable recommendations along with a plan and leadership commitment to implement the plan.
Steps to develop effective recommendations:
- Create a practical action plan : Outline the necessary initiatives with clear sequences, timelines, and activities. Consider the need for lasting impact, quick wins, available resources, and any competing priorities.
- Assign clear ownership : Identify who will be responsible for each initiative.
- Identify success factors and challenges : Highlight what will be critical for success and any potential obstacles, such as individuals who can drive change or those who might resist it.
When building your recommendations, consider these questions:
- Does everyone who needs to change understand what they need to do and why?
- Are key leaders committed to changing their behavior?
- Have you established systems (like evaluations or incentives) to support the desired change?
- Do we have the skills and confidence to adopt the new ways of working?
If the answer to any of these questions is no, ensure your recommendations address these issues. By doing so, you’ll increase the odds of achieving results.
Tips for Synthesizing findings A powerful way to synthesize the overall story is to structure your synthesis using the 'Situation, Complication, and Resolution' framework (SCR framework).
- Situation : What’s the current context or reason for action?
- Complication : What’s the challenge that needs addressing?
- Resolution : What’s your proposed solution?
Example: Situation : “The airline industry is under pressure to reduce costs due to rising fuel prices, increased competition, and post-pandemic recovery challenges. Complication : “Airline Inc.’s operating costs are significantly higher than industry benchmarks, threatening profitability and limiting its ability to invest in growth opportunities.” Resolution : “Airline Inc. should implement a comprehensive cost-reduction strategy targeting $400 million in savings by 2027, focusing on fleet optimization, operational efficiency, supplier renegotiations, and technology-driven automation.”
Read more about the SCR-framework here.
Communication and collaboration
Effective problem-solving is closely linked with communication. Throughout the problem solving process, maintain open lines of communication with team members and stakeholders. Share your draft solutions to ensure they’re practical and impactful—not just good on paper. Co-creating the solution with relevant stakeholders sharpens the outcome, uncovers potential issues early, and fosters ownership of the final recommendations.
Further Reading
Hope you enjoyed this post. If you’re interested in diving deeper into related concepts, check out these insightful posts:
- The Pyramid Principle - Explore how the Pyramid Principle can help you structure your thoughts and arguments in a logical, top-down approach.
- How to use McKinsey's SCR framework - Learn more about the Situation-Complication-Resolution framework and how it can be applied to problem-solving and strategic thinking.
- What is the MECE Framework? - Discover how the MECE principle ensures thorough and organized problem analysis.
- How McKinsey Consultants Make PowerPoint Presentations - Understand the structure of a McKinsey presentation, its key elements, and formatting tips and tricks.
Download our most popular templates
High-end PowerPoint templates and toolkits created by ex-McKinsey, BCG, and Bain consultants
Consulting toolkit and template
A comprehensive library of slide layouts, templates, and typical consulting tools and frameworks.
- Business Strategy
This template, created by ex-McKinsey and BCG consultants, includes everything you need to create a complete strategy.
- Market Analysis
Create a full market analysis report to effectively turn your market research into strategic insights
Related articles
How to write a Next Steps slide (with Examples and Free Template)
In this blog post, we’ll dive into the Next Steps slide, why it’s important, and how to write one. We’ll also provide you with examples of Next Steps slides from McKinsey, BCG, and Bain, as well as a free template for you to create your own Next Steps slide.
Nov 1, 2024
Picking apart a McKinsey consulting proposal
In this blog post, we’ll break down a McKinsey consulting proposal, look at what works and why, and discuss how to write a winning consulting proposal.
Oct 12, 2024
20 PowerPoint shortcuts every consultant must know
We surveyed a group of top-tier consultants and identified their top PowerPoint shortcuts. This post explains how to use them efficiently.
Sep 23, 2024
- Consulting Toolkit
- Market Entry Analysis
- Consulting Maps Bundle
- Mergers & Acquisitions
- Digital Transformation
- Product Strategy
- Go-To-Market Strategy
- Operational Excellence I
- Operational Excellence II
- Operational Excellence III
- Full Access Bundle
- Consulting PowerPoint Templates
- How it works
- Terms & Conditions
- Privacy Policy
© 2024 Slideworks. All rights reserved
Denmark : Farvergade 10 4. 1463 Copenhagen K
US : 101 Avenue of the Americas, 9th Floor 10013, New York
Advisory boards aren’t only for executives. Join the LogRocket Content Advisory Board today →
- Product Management
- Solve User-Reported Issues
- Find Issues Faster
- Optimize Conversion and Adoption
A guide to problem-solving techniques, steps, and skills
You might associate problem-solving with the math exercises that a seven-year-old would do at school. But problem-solving isn’t just about math — it’s a crucial skill that helps everyone make better decisions in everyday life or work.
Problem-solving involves finding effective solutions to address complex challenges, in any context they may arise.
Unfortunately, structured and systematic problem-solving methods aren’t commonly taught. Instead, when solving a problem, PMs tend to rely heavily on intuition. While for simple issues this might work well, solving a complex problem with a straightforward solution is often ineffective and can even create more problems.
In this article, you’ll learn a framework for approaching problem-solving, alongside how you can improve your problem-solving skills.
The 7 steps to problem-solving
When it comes to problem-solving there are seven key steps that you should follow: define the problem, disaggregate, prioritize problem branches, create an analysis plan, conduct analysis, synthesis, and communication.
1. Define the problem
Problem-solving begins with a clear understanding of the issue at hand. Without a well-defined problem statement, confusion and misunderstandings can hinder progress. It’s crucial to ensure that the problem statement is outcome-focused, specific, measurable whenever possible, and time-bound.
Additionally, aligning the problem definition with relevant stakeholders and decision-makers is essential to ensure efforts are directed towards addressing the actual problem rather than side issues.
2. Disaggregate
Complex issues often require deeper analysis. Instead of tackling the entire problem at once, the next step is to break it down into smaller, more manageable components.
Various types of logic trees (also known as issue trees or decision trees) can be used to break down the problem. At each stage where new branches are created, it’s important for them to be “MECE” – mutually exclusive and collectively exhaustive. This process of breaking down continues until manageable components are identified, allowing for individual examination.
The decomposition of the problem demands looking at the problem from various perspectives. That is why collaboration within a team often yields more valuable results, as diverse viewpoints lead to a richer pool of ideas and solutions.
3. Prioritize problem branches
The next step involves prioritization. Not all branches of the problem tree have the same impact, so it’s important to understand the significance of each and focus attention on the most impactful areas. Prioritizing helps streamline efforts and minimize the time required to solve the problem.
Over 200k developers and product managers use LogRocket to create better digital experiences
4. Create an analysis plan
For prioritized components, you may need to conduct in-depth analysis. Before proceeding, a work plan is created for data gathering and analysis. If work is conducted within a team, having a plan provides guidance on what needs to be achieved, who is responsible for which tasks, and the timelines involved.
5. Conduct analysis
Data gathering and analysis are central to the problem-solving process. It’s a good practice to set time limits for this phase to prevent excessive time spent on perfecting details. You can employ heuristics and rule-of-thumb reasoning to improve efficiency and direct efforts towards the most impactful work.
6. Synthesis
After each individual branch component has been researched, the problem isn’t solved yet. The next step is synthesizing the data logically to address the initial question. The synthesis process and the logical relationship between the individual branch results depend on the logic tree used.
7. Communication
The last step is communicating the story and the solution of the problem to the stakeholders and decision-makers. Clear effective communication is necessary to build trust in the solution and facilitates understanding among all parties involved. It ensures that stakeholders grasp the intricacies of the problem and the proposed solution, leading to informed decision-making.
Exploring problem-solving in various contexts
While problem-solving has traditionally been associated with fields like engineering and science, today it has become a fundamental skill for individuals across all professions. In fact, problem-solving consistently ranks as one of the top skills required by employers.
Problem-solving techniques can be applied in diverse contexts:
- Individuals — What career path should I choose? Where should I live? These are examples of simple and common personal challenges that require effective problem-solving skills
- Organizations — Businesses also face many decisions that are not trivial to answer. Should we expand into new markets this year? How can we enhance the quality of our product development? Will our office accommodate the upcoming year’s growth in terms of capacity?
- Societal issues — The biggest world challenges are also complex problems that can be addressed with the same technique. How can we minimize the impact of climate change? How do we fight cancer?
Despite the variation in domains and contexts, the fundamental approach to solving these questions remains the same. It starts with gaining a clear understanding of the problem, followed by decomposition, conducting analysis of the decomposed branches, and synthesizing it into a result that answers the initial problem.
Real-world examples of problem-solving
Let’s now explore some examples where we can apply the problem solving framework.
Problem: In the production of electronic devices, you observe an increasing number of defects. How can you reduce the error rate and improve the quality?
Before delving into analysis, you can deprioritize branches that you already have information for or ones you deem less important. For instance, while transportation delays may occur, the resulting material degradation is likely negligible. For other branches, additional research and data gathering may be necessary.
Once results are obtained, synthesis is crucial to address the core question: How can you decrease the defect rate?
While all factors listed may play a role, their significance varies. Your task is to prioritize effectively. Through data analysis, you may discover that altering the equipment would bring the most substantial positive outcome. However, executing a solution isn’t always straightforward. In prioritizing, you should consider both the potential impact and the level of effort needed for implementation.
By evaluating impact and effort, you can systematically prioritize areas for improvement, focusing on those with high impact and requiring minimal effort to address. This approach ensures efficient allocation of resources towards improvements that offer the greatest return on investment.
Problem : What should be my next job role?
When breaking down this problem, you need to consider various factors that are important for your future happiness in the role. This includes aspects like the company culture, our interest in the work itself, and the lifestyle that you can afford with the role.
However, not all factors carry the same weight for us. To make sense of the results, we can assign a weight factor to each branch. For instance, passion for the job role may have a weight factor of 1, while interest in the industry may have a weight factor of 0.5, because that is less important for you.
By applying these weights to a specific role and summing the values, you can have an estimate of how suitable that role is for you. Moreover, you can compare two roles and make an informed decision based on these weighted indicators.
Key problem-solving skills
This framework provides the foundation and guidance needed to effectively solve problems. However, successfully applying this framework requires the following:
- Creativity — During the decomposition phase, it’s essential to approach the problem from various perspectives and think outside the box to generate innovative ideas for breaking down the problem tree
- Decision-making — Throughout the process, decisions must be made, even when full confidence is lacking. Employing rules of thumb to simplify analysis or selecting one tree cut over another requires decisiveness and comfort with choices made
- Analytical skills — Analytical and research skills are necessary for the phase following decomposition, involving data gathering and analysis on selected tree branches
- Teamwork — Collaboration and teamwork are crucial when working within a team setting. Solving problems effectively often requires collective effort and shared responsibility
- Communication — Clear and structured communication is essential to convey the problem solution to stakeholders and decision-makers and build trust
How to enhance your problem-solving skills
Problem-solving requires practice and a certain mindset. The more you practice, the easier it becomes. Here are some strategies to enhance your skills:
- Practice structured thinking in your daily life — Break down problems or questions into manageable parts. You don’t need to go through the entire problem-solving process and conduct detailed analysis. When conveying a message, simplify the conversation by breaking the message into smaller, more understandable segments
- Regularly challenging yourself with games and puzzles — Solving puzzles, riddles, or strategy games can boost your problem-solving skills and cognitive agility.
- Engage with individuals from diverse backgrounds and viewpoints — Conversing with people who offer different perspectives provides fresh insights and alternative solutions to problems. This boosts creativity and helps in approaching challenges from new angles
Final thoughts
Problem-solving extends far beyond mathematics or scientific fields; it’s a critical skill for making informed decisions in every area of life and work. The seven-step framework presented here provides a systematic approach to problem-solving, relevant across various domains.
Now, consider this: What’s one question currently on your mind? Grab a piece of paper and try to apply the problem-solving framework. You might uncover fresh insights you hadn’t considered before.
Featured image source: IconScout
LogRocket generates product insights that lead to meaningful action
Get your teams on the same page — try LogRocket today.
Share this:
- Click to share on Twitter (Opens in new window)
- Click to share on Reddit (Opens in new window)
- Click to share on LinkedIn (Opens in new window)
- Click to share on Facebook (Opens in new window)
- #career development
- #tools and resources
Stop guessing about your digital experience with LogRocket
Recent posts:.
How failure to recall products can lead to liability claims
To proactively address liability concerns, you can create an internal product recall team for dealing with risks and ensuring quality.
Introducing Galileo AI Fall ‘24: Galileo Highlights is GA; announcing Ask Galileo
Our Galileo AI Fall ’24 release makes Highlights available to all Pro and Enterprise customers. We’re also debuting Ask Galileo, which enables you to directly ask questions about what you see in session replays.
Leader Spotlight: Adapting product strategies for B2B2C, with Mark Kamyszek
Mark Kamyszek, Vice President of Product Management at TeamSnap, talks about the product launch process for B2B2C companies.
A guide to context switching
Continuously switching between various tasks and activities strains cognitive resources and leads to feelings of fatigue and overwhelm.
Leave a Reply Cancel reply
2.1 Computational Thinking
Learning objectives.
By the end of this section, you will be able to:
- Define computational thinking
- Discuss computational thinking examples
This chapter presents key aspects of computational thinking, including logical thinking, assessment, decomposition, pattern recognition, abstraction, generalization, componentization, and automation. These elements guide how computer scientists approach problems and create well-designed solution building blocks at both the business and technical levels. Computational thinking often involves a bottom-up approach, focusing on computing in smaller contexts, and seeks to generate innovative solutions by utilizing data structures and algorithms. Additionally, it may make use of existing design building blocks like design patterns and abstract data types to expedite the development of optimal combinations of data structures and algorithms.
What Is Computational Thinking?
The problem-solving and cognitive process, known as computational thinking, is rooted in principles derived from computer science. Be sure to retain key word tagging on computational thinking when sentence is revised. It involves breaking down complex problems into smaller, more manageable parts and devising systematic approaches to solve them. Complex problems are situations that are difficult because they involve many different interrelated parts or factors. These problems can be hard to understand and often don’t have simple solutions.
While “computational thinking” is still perceived by some as an abstract concept without a universally accepted definition, its core value is to facilitate the application of separate strategies and tools to address complex problems. In problem-solving, computers play a central role, but their effectiveness centers on a prior comprehension of the problem and its potential solutions. Computational thinking serves as the bridge between the problem and its resolution. It empowers solution designers to navigate the complexity of a given problem, separate its components, and formulate possible solutions. These solutions, once developed, can be communicated in a manner that is comprehensible to both computers and humans, adopting effective problem-solving.
Link to Learning
Computational thinking serves as the intermediary that helps us read complex problems, formulate solutions, and then express those solutions in a manner that computers, humans, or a collaboration of both can implement. Read this article for a good introduction to computational thinking from the BBC.
To further qualify computational thinking, Al Aho of the Columbia University Computer Science Department describes computational thinking as “the thought processes involved in formulating problems so their solutions can be represented as computational steps and algorithms.” Jeannette Wing, also of Columbia University, brought the idea of computational thinking to prominence in a paper she wrote in 2006 while at Carnegie Mellon University. She believes that computational thinking details the mental acts needed to compute a solution to a problem either by human actions or machine. Computational thinking encompasses a collection of methods and approaches for resolving (and acquiring the skills to resolve) complex challenges, closely aligned with mathematical thinking through its utilization of abstraction, generalization, modeling, and measurement ( Figure 2.2 ). However, it differentiates itself by being more definitely aware than mathematics alone in its capacity for computation and the potential advantages it offers.
Critical thinking is an important skill that can help with computational thinking. It boils down to understanding concepts rather than just mastering technical details for using software, prioritizing comprehension over rote learning. It’s a core skill, not an extra burden on a curriculum checklist, and it uniquely involves humans, not computers, blending problem-solving and critical thinking. Critical thinking focuses on ideas, not tangible items, applying advanced thinking to devise solutions. Critical thinking is essential for everyone and is, comparable to foundational abilities like reading, writing, and arithmetic.
Computational Thinking Concepts
The description provided by the International Society for Technology in Education (ISTE) outlines the key components and dispositions of computational thinking. Let’s explore each characteristic in more detail:
- Decomposition: The analytical process of breaking down complex concepts or problems into smaller parts is called decomposition . This approach helps analyze and solve problems more effectively.
- Pattern recognition (logically organizing and analyzing data): Computational thinking emphasizes the logical organization and analysis of data. This includes the ability to structure information in a way that facilitates effective problem-solving.
- Representing data through abstractions: An abstraction is a simplified representation of complex systems or phenomena. Computational thinking involves representing data through an abstraction, such as a simulation, which uses models as surrogates for real systems.
- Automation through algorithmic thinking: Using a program or computer application to perform repetitive tasks or calculations is considered automation .
- Identification, analysis, and implementation of solutions: Computational thinking emphasizes identification, analysis, and implementation of potential solutions to achieve optimal efficiency and effectiveness through a combination of steps and resources.
- Generalization and transferability: Generalizing and transferring this problem-solving process across a wide variety of problems showcases the adaptability and applicability of computational thinking.
These abilities are supported and enriched by fundamental abilities integral to computational thinking. These abilities involve the following characteristics: confidence in navigating complexity, resilience in tackling challenging problems, an acceptance of ambiguity, adeptness in addressing open-ended issues, and proficiency in collaborating with others to attain shared objectives or solutions. Another illustration of computational thinking is the three As, which is organized into three phases, as visualized in Figure 2.3 :
- Abstraction: The initial step involves problem formulation.
- Automation: Next, the focus shifts to expressing the solution.
- Analysis: Finally, the process encompasses solution execution and evaluation.
Computational Thinking Techniques
In today’s technology world, mastering computational thinking techniques is important. These techniques offer a systematic way to solve problems using tools like data structures, which are like containers used to organize and store data efficiently in a computer. They define how data is logically arranged and manipulated, making it easier to access and work with information in algorithms and programs. There are four key techniques (cornerstones) to computational thinking, as illustrated in Figure 2.4 :
- Decomposition is a fundamental concept in computational thinking, representing the process of systematically breaking down a complex problem or system into smaller, more manageable parts or subproblems. By breaking down complexity into simpler elements, decomposition promotes a more organized approach to problem-solving.
- Logical thinking and pattern recognition is a computational thinking technique that involves the process of identifying similarities among and within problems. This computational thinking technique emphasizes the ability to recognize recurring structures, relationships, or sequences in various problem-solving situations.
- Abstraction is a computational thinking technique that centers on focusing on important information while ignoring irrelevant details. This technique enables a clearer understanding of the core issues.
- Algorithms are like detailed sets of instructions for solving a problem step-by-step. They help break down complex tasks into manageable actions, ensuring a clear path to problem-solving.
In addition to the four techniques, computational thinking involves essential steps such as testing and debugging. Testing is crucial for uncovering errors within the step-by-step instructions or algorithms employed to tackle a problem. On the other hand, debugging entails identifying and rectifying issues within the code.
A programmer is someone who writes instructions for a computer to follow. A typical example is that of a programmer who gives instructions to a robot and tells it to make a jam sandwich. In this case, applying computational techniques to give instructions to the robot entails the following techniques: decomposition, logical thinking and pattern recognition, abstraction, and algorithms. These techniques are explained in the following subsections as they apply to the jam sandwich example.
Technology in Everyday Life
Traffic accident data.
Analyzing data involves collecting and cleaning information, exploring patterns through visual and statistical methods, and forming hypotheses. Statistical analysis and visualization are used to draw conclusions, and findings are interpreted and communicated in reports or presentations to help in the process of decision-making. Analyze the patterns and trends in traffic accident data to understand the prevalence of road injuries and fatalities, and examine the progression of traffic incidents over time. To enhance road safety measures and policies, you should apply computational thinking skills to identify recurring patterns and abstract the most crucial information from the data. By extracting valuable insights, you can contribute to the development and refinement of strategies that effectively improve road safety.
Decomposition
Decomposition involves solving a complex problem by breaking it up into smaller, more manageable tasks. Decomposition enables the consideration of various components essential for solving a seemingly complex task, allowing it to be redefined into a more manageable problem. In the case of the jam sandwich example, decomposition involves identifying all the required ingredients and the steps the robot must take to successfully create a jam sandwich.
Logical Thinking and Pattern Recognition
Pattern recognition makes it possible to group all the different features considered in decomposition into categories. In the jam sandwich example, pattern recognition leads to grouping the various things identified via decomposition into categories, in this case, ingredients, equipment, and actions. Therefore, applying decomposition and pattern recognition will lead to thinking of as many things as possible that are required to make a jam sandwich. The more things that can be thought of (i.e., ingredients, equipment, and actions), the clearer the instructions will be. A first attempt at decomposition and pattern recognition is summarized in Table 2.1 .
The process of identifying patterns typically requires logical thinking such as inductive or deductive reasoning. Inductive reasoning makes it possible to go from specific examples to general principles. For example, recognizing that dividing any number by 1 results in the original number leads to the broader conclusion that holds true for any number. Similarly, understanding that the sum of two odd numbers yields an even number leads to the generalization that adding two odd numbers always results in an even number. Inductive reasoning turns an observation into a pattern, which allows making a tentative hypothesis that can be turned into a theory. Deductive reasoning is the process of drawing valid conclusions from premises given the fact that it is not possible for the premises to be true and the conclusion to be false. A traditional example illustrates how the premises “all men are mortal” and “Socrates is a man” lead to the deductively correct conclusion that “Socrates is mortal.”
Computational Thinking in Our Life
Computational thinking is a method of problem-solving that is extremely useful in everyday life. It involves breaking down complex issues into manageable parts, identifying patterns, extracting essential information, and devising systematic solutions. This process not only applies to technical fields, but also to everyday situations.
For example, imagine someone trying to manage their monthly expenses within a tight budget. Here's how you might apply computational thinking to this common problem of managing a monthly budget:
- Decomposition: Break down the financial challenge into different categories such as rent, groceries, utilities, and entertainment.
- Pattern recognition: Analyze past spending to identify patterns.
- Abstraction: Focus on key areas where costs can be reduced.
- Algorithmic thinking: Develop a systematic approach to allocate monthly income.
By using computational thinking, you can manage your finances more effectively, ensuring they cover essential costs while maximizing their savings.
Abstraction
Abstraction makes it possible to pull out the important details and identify principles that apply to other problems or situations. When applying abstraction, it may be useful to write down some notes or draw diagrams to help understand how to resolve the problem. In the jam sandwich example, abstraction means forming an idea of what the sandwich should look like. To apply abstraction here, you would create a model or draw a picture representing the final appearance of the jam sandwich once it is made. This simplifies the details, providing a clearer image of the desired outcome. Simple tools like the Windows Paint program can be used to do this, as shown in Figure 2.5 .
In technology, data are represented at different levels of abstraction to simplify user interaction and manage complex operations efficiently. Users interact with a web application through a straightforward interface, like requesting help from a GenAI tool, without seeing the underlying complexity. This GenAI prompt is then processed by the application’s logic, which validates and directs it appropriately, often invisibly to the user. Finally, at the back end, the prompt is processed and a GenAI-generated response is provided. Each layer of abstraction serves a separate role, making the entire process efficient for both the user and the system ( Figure 2.6 ).
An algorithm is a sequence of steps/instructions that must be followed in a specific order to solve a problem. Algorithms make it possible to describe a solution to a problem by writing down the instructions that are required to solve the problem. Computer programs typically execute algorithms to perform certain tasks. In the jam sandwich example, the algorithm technique is about writing instructions that the robot can follow to make the jam sandwich. As you will learn in Chapter 3 Data Structures and Algorithms , algorithms are most commonly written as either pseudocode or a flowchart. An outline of the logic of algorithms using a combination of language and high-level programming concepts is called pseudocode . Each step is shown in a clearly ordered, written structure. A flowchart clearly shows the flow and direction of decisions in a visual way using a diagram. Either way is fine, and it is a matter of personal preference. Basic templates for the flowchart and pseudocode are in Figure 2.7 .
Writing algorithms requires practice. Not everyone likes butter in their jam sandwich. The robot needs a method of making sure it adds or does not add butter, depending on preferences. It is therefore necessary to account for the following steps in the pseudocode and flowchart:
- Ask whether there should be butter on the bread.
- Either spread butter on the bread,
- Or, do not use butter.
These steps can be added as actions in the table previously shown and expressed as steps in the pseudocode using programming keywords such as INPUT , OUTPUT , IF , THEN , ELSE , and START . The corresponding instructions can then be converted into a flowchart using the symbols in Figure 2.8 .
Algorithm Execution Model Patterns
Various patterns of execution models may be used to step through the instructions provided in an algorithm. So far, we have only considered the traditional sequential (i.e., step-by-step) execution model for algorithm instructions. However, it is also possible to leverage parallelism/concurrency and recursion as alternative models to drive the execution of algorithms’ instructions.
Parallel/concurrent execution models are typically used to optimize algorithm execution efficiency. As an example, if you and a friend are buying tickets for a movie and there are three independent lines, you may opt for a parallel processing model of execution by having you and your friend join two separate lines to buy the tickets. In that case, you are guaranteed to be able to obtain the tickets quicker assuming one of the lines operating in parallel with the other ends up serving customers faster, which is most often the case. Note that executing the same algorithm simultaneously on a computer may not be possible if you only have one central processing unit (CPU) in your machine. In that case, you can simulate parallelism by having the operating system running on the machine execute the two algorithms concurrently as separate tasks while sharing the single processor resources. This approach is less efficient than true parallelism. More detail on the differences between concurrency and parallelism will be provided in Chapter 4 Linguistic Realization of Algorithms: Low-Level Programming Languages .
Recursive models of execution provide another elegant and effective alternative to the traditional sequential model of execution. The problem-solving technique where a process calls itself in order to solve smaller instances of the same problem is called recursion . It can be a powerful tool in programming because it allows for elegant solutions to complex problems by breaking them down into smaller, more manageable parts. By leveraging recursion, programmers can write concise and efficient code to solve a wide range of problems.
One of the key advantages of recursion is its ability to handle complex tasks with minimal code. Instead of writing lengthy iterative loops to solve repetitive tasks, recursion allows programmers to define a process that calls itself with modified input parameters, effectively reducing the amount of code needed. However, it’s essential to be cautious when using recursion, as improper implementation can lead to stack overflow errors due to excessive process calls. Programmers should ensure that recursive processes have proper base cases to terminate the recursion and avoid infinite loops. Example:
In this scenario, the process involves gradually adding values to the total variable as you iterate through a loop. However, a different approach involves leveraging computational thinking to deconstruct the problem, breaking it down into smaller subcomponents. This method tackles these subcomponents individually to address the overarching issue. When these smaller parts represent scaled-down versions of the original problem, recursion becomes a valuable tool.
In practical scenarios, recursion often manifests as a function , which is a set of commands that can be repeatedly executed. It may accept an input and may return an output. The base case represents the function’s most straightforward operation for a given input. To effectively implement recursion, two primary steps must be followed: (a) identify the base case, and (b) outline the recursive steps. In the context of a recursive function, when n is 0, the cumulative sum from 0 to 0 is intuitively 0, representing the most fundamental subproblem of the main issue. Armed with this base case, you can commence crafting the initial part of the function.
Recursion operates through a process of simplification, progressively reducing the value of x until it meets the base condition, where x equals 0. This technique presents an alternative method, offering a refined and effective algorithmic solution for the current problem:
While it looks like recursion amounts to calling the same function repeatedly, it is only partially true, and you should not think about it that way. What happens is much more than repeating the call of a function. It is more useful to think of it as a chain of deferred operations. These deferred operations are not visible in your code or your output—they are in memory. The program needs to hold them somehow, to be able to execute them at the end. In fact, if you had not specified the base case, the recursive process would never end. Figure 2.9 illustrates a flowchart for an iterative solution that adds N numbers.
Concepts In Practice
Computational thinking for chess problem-solving.
Computers can be used to help us solve problems. However, before a problem can be tackled, the problem itself and how it could be solved need to be understood. Computational thinking transcends mere programming; it doesn’t equate to thinking in the binary fashion of computers, as they fundamentally lack the capacity for thought. Rather, while programming is the craft of instructing a computer on the actions to execute, computational thinking empowers you to meticulously determine what those instructions should be. Take, for instance, the strategic gameplay involved in chess. To excel in a chess match, a player must:
- Understand the unique movements and strategic values of each piece, recognizing how each can be maneuvered to control the board.
- Visualize the board’s layout, identifying potential threats and opportunities, and planning moves several steps ahead to secure an advantageous position.
- Recognize patterns from previous games, understanding common tactics and counters, to formulate a robust, adaptable strategy.
In devising a winning strategy, computational thinking is the underpinning framework:
- The complex game is dissected into smaller, more manageable components (e.g., the function of each chess piece, the state of the board)—this is decomposition.
- Attention is concentrated on pivotal elements that influence the game’s outcome, such as the positioning of key pieces and the opponent’s tendencies, sidelining less critical factors—this is an abstraction.
- Drawing from prior knowledge and experiences in similar scenarios, a step-by-step approach is developed to navigate through the game—this is algorithmic thinking.
Should you venture into developing your own chess program or strategy, these are precisely the types of considerations you would deliberate on and resolve before actual programming.
Testing and Debugging
Testing and debugging are techniques used to identify flaws in algorithms and defects in code to be able to correct them. Test cases rely on providing specific input data to check whether a software program functions correctly and meets its designed requirements. Test cases need to be identified to drive tests. If a test associated with a test case fails, debugging needs to be conducted to identify the source of the problem and correct it. In other words, debugging is about locating and fixing defects (i.e., bugs) in algorithms and processes to make them behave as expected. In programming, everyone makes mistakes, they are part of the learning process. The important thing is to identify the mistake and work out how to overcome it. There are those who feel that the deepest learning takes place when mistakes are made.
In the jam sandwich algorithm, testing can be facilitated by taking turns to play the role of the programmer who gives instructions as well as the robot. If you are a programmer, your job is to read out the instructions and follow each step. You can choose to follow your pseudocode or your flowchart. Each instruction becomes a test case, and the test succeeds if the robot can follow every instruction exactly and successfully. In the alternative, you will need to debug the instruction to identify the source of the problem and correct it. Table 2.2 can be used to record problems encountered and improvements that need to be made.
Industry Spotlight
Dna sequencing.
Computational thinking is important in every industry today. In DNA sequencing, computational thinking helps manage the massive and complex data involved. It starts by breaking the large DNA sequence into smaller pieces. Then, it involves identifying patterns or sequences within these pieces, which might indicate genetic information like the presence of certain genes. The focus is on the most relevant parts of the sequence, discarding unnecessary data to concentrate on potentially significant genetic regions. Finally, refined algorithms process and reconstruct the original sequence to identify genetic variations. This approach is used for efficiently handling massive datasets in DNA sequencing and extracting meaningful insights. The parts of computational thinking (CT) can be identified and highlighted in the process of DNA sequencing, a complex task within the field of genomics:
- Decomposition: Break down the DNA sequencing process into specific steps such as sample collection and DNA extraction.
- Pattern recognition: Identify similarities in DNA sequences that could indicate genetic traits or anomalies.
- Abstraction: Focus on the essential parts of the genetic information that are relevant for the study at hand.
- Algorithms: Create step-by-step protocols for each part of the sequencing process.
- Logical thinking: Determine the most accurate methods for sequencing based on the type of sample and the required depth of sequence analysis.
- Evaluation: Assess the quality and accuracy of the sequencing data obtained.
- Debugging: Identify issues that may arise during the sequencing process.
Practical Computational Thinking Examples
Here are different real-life scenarios of practical applications of computational thinking with suggested solution approaches to provide problem-solving and decision-making:
- Organizing a city’s recycling program to maximize efficiency. How can you ensure the most effective collection routes and times?
- Solution: Use a route optimization algorithm to analyze and plan the most efficient paths for collection trucks, considering factors like distance and traffic patterns.
- Planning the layout of a community garden to optimize space and sunlight exposure for different plant types. How do you decide where to plant each type of vegetable or flower?
- Solution: Employ a simulation algorithm that models sunlight patterns, plant growth rates, and space requirements to design a garden layout that maximizes space and plant health.
- Creating a schedule for a multistage music festival to minimize overlaps and ensure a smooth flow of audiences. How do you schedule the performances across different stages?
- Solution: Implement a scheduling algorithm that considers audience preferences, artist availability, and stage logistics to create a timetable that maximizes attendee satisfaction and minimizes conflicts.
- Determining the most efficient way to allocate computer resources in a cloud computing environment to handle varying user demands. How do you manage the computational load?
- Solution: Use load balancing algorithms to distribute tasks across servers dynamically, ensuring optimal resource utilization and maintaining system performance.
This book may not be used in the training of large language models or otherwise be ingested into large language models or generative AI offerings without OpenStax's permission.
Want to cite, share, or modify this book? This book uses the Creative Commons Attribution License and you must attribute OpenStax.
Access for free at https://openstax.org/books/introduction-computer-science/pages/1-introduction
- Authors: Dr. Jean-Claude Franchitti
- Publisher/website: OpenStax
- Book title: Introduction to Computer Science
- Publication date: Nov 13, 2024
- Location: Houston, Texas
- Book URL: https://openstax.org/books/introduction-computer-science/pages/1-introduction
- Section URL: https://openstax.org/books/introduction-computer-science/pages/2-1-computational-thinking
© Oct 29, 2024 OpenStax. Textbook content produced by OpenStax is licensed under a Creative Commons Attribution License . The OpenStax name, OpenStax logo, OpenStax book covers, OpenStax CNX name, and OpenStax CNX logo are not subject to the Creative Commons license and may not be reproduced without the prior and express written consent of Rice University.
IMAGES
VIDEO
COMMENTS
Complete sets of materials from select Second Step curricula, the Second Step® Bullying Prevention Unit, and the Second Step® Child Protection Unit are available for Early Learning through Grade 8. ... In this lesson, students will learn about apologizing as a way of showing kindness and as a tool for problem-solving in a variety of scenarios.
Discover Second Step, an evidence-based social-emotional learning curriculum that fosters students' emotional intelligence, empathy, and problem-solving skills. Discover Second Step, an evidence-based social-emotional learning curriculum for PreK-12 that fosters students' emotional intelligence, empathy, and problem-solving skills.
Second Step programs combine discussions with fun activities and family resources. The programs help children learn social-emotional skills such as responsible decision-making, working together to solve problems, managing strong emotions, and getting along with others. These skills can help children succeed academically and socially.
This video excerpt from the Second Step program focuses on problem-solving steps, such as calming down, saying the problem without blame, proposing possible ...
Basha Elementary's 4 Classrooms, Ms. Barton, Ms. Brekke, Ms. Mehl and Ms. Pennington, share the Second Step Problem Solving steps.
At McKinsey, there's a proven problem solving method that every associate learns from day one — a structured, step-by-step approach that can be applied to almost any business problem. ... Step 2: Structure the problem. After defining the problem, the next step is to structure the problem effectively. This involves breaking down the main ...
Finding a suitable solution for issues can be accomplished by following the basic four-step problem-solving process and methodology outlined below. Step. Characteristics. 1. Define the problem. Differentiate fact from opinion. Specify underlying causes. Consult each faction involved for information. State the problem specifically.
When it comes to problem-solving there are seven key steps that you should follow: define the problem, disaggregate, prioritize problem branches, create an analysis plan, conduct analysis, synthesis, and communication. 1. Define the problem. Problem-solving begins with a clear understanding of the issue at hand.
Algorithms are like detailed sets of instructions for solving a problem step-by-step. They help break down complex tasks into manageable actions, ensuring a clear path to problem-solving. Figure 2.4 Users can explore the essence of computational thinking through decomposition, logical thinking, abstraction, and algorithms. (attribution ...
4. Implement the Solution. At this stage of problem solving, be prepared for feedback, and plan for this. When you roll out the solution, request feedback on the success of the change made. 5. Review, Iterate, and Improve. Making a change shouldn't be a one time action.