the computer problem solving process requires

Home » Tech Basics » Digital Literacy » Troubleshooting Basic Computer Problems

How to Troubleshoot Basic Computer Problems to Fix Your Computer

How to Troubleshoot Computer Problems header

A big reason that discourages some people from trying to become familiar with computers and other digital technology devices is that they seem far too complex to understand. While that can be true in some respects, in a lot of other ways, it’s not. In fact, most consumer-grade digital technology is being made more accessible and intuitive all the time.

Just a heads-up that some of the services we’re reviewing here have affiliate partnerships with us, so we may earn a commission if you visit one of them and buy something. You can read more about how this works at https://techboomers.com/how-to-support-techboomers .

Part of that is making computers easier to fix when something doesn’t work correctly. And even computer troubleshooting isn’t always as difficult as you might think. To demonstrate, this article will give you some simple tips and techniques for how to fix a computer. Here’s a quick rundown of our agenda:

What is troubleshooting?

10 common computer problems and how to troubleshoot them, 7 general tips for troubleshooting computer problems.

Stick with us, and soon you’ll be a basic computer troubleshooting whiz!

“Troubleshooting” usually describes the act of fixing problems that cause machines (especially computers) to stop working, work sub-optimally, or otherwise do something irregular. Specifically, though, it actually refers to a particular problem-solving system that works through several steps.

A basic representation of the troubleshooting process looks something like this:

  • Identify the specific problem – Determine exactly what it is your computer is not doing that you want it to do, or doing that you don’t want it to do.
  • Consider relations to similar scenarios – Think about problems that you may have had with your computer before that were like your current one. Recall how those problems were solved, and consider what was the same or different in those instances.
  • Hypothesize and treat common causes – Brainstorm some simple things that could make your computer not act in the particular way you want it to. Check and fix these things, and then see if that stops the problem and keeps it from coming back soon afterward. If it does, you’re done! If not, proceed to step 4.
  • Test relevant components – If none of the common solutions work, methodically check parts (all of them, if you have to) of each system on your computer that could be responsible for the problem.
  • Implement a solution on the problem component – If you think you’ve narrowed down what part of your computer is causing your issue, come up with a strategy for how to fix it, and then test it out.
  • Verify that the issue is resolved – After working on the allegedly faulty computer component, if the problem is gone and doesn’t quickly start reoccurring (and, therefore, your computer is working normally again), you’re done! If not, go back to step 4.

Now that you know what the troubleshooting process is and how it works, let’s see it in action! Here are some common computer maladies and how to work through them.

1. My computer runs slowly.

Waiting on a slow computer

General description:

Your computer takes a long time to boot up, programs take a long time to open, and both system and application functions take longer than usual to respond to your inputs.

Common causes:

  • You have too many windows open at once, or too many programs running at once.
  • Your computer’s registry is fragmented or corrupted.
  • Your computer has installed a virus or other malware program.
  • Your computer doesn’t have enough RAM to run all the programs you want it to.

Troubleshooting suggestions:

  • Close any windows and quit any programs that you aren’t immediately using.
  • Go to your Control Panel and uninstall old programs that you don’t use anymore.
  • Open your Task Manager and stop programs or processes that don’t need to be running.
  • Install and run an antivirus program to repair infected files.
  • Take your computer to a repair shop to get its RAM upgraded.

2. I’m stuck on the “Blue Screen of Death.”

A "STOP" error, or the Blue Screen of Death

This is more officially known as a “STOP error,” and it shows up when your computer’s operating system determines that it can’t run your computer safely at the moment. It has various causes, some of which are more serious than others. Be sure to read the specific error message for hints on what went wrong.

  • A piece of hardware on your computer is malfunctioning or is not compatible.
  • The software controlling a piece of hardware (i.e. “driver” or “firmware”) is out of date.
  • Your main hard disk doesn’t have enough free memory space available on it.
  • Your BIOS or other hardware settings are misconfigured.
  • Use System Restore to revert your computer to a state where it was working.
  • Install updates for your operating system, device drivers, BIOS, and other programs.
  • Change the settings for your BIOS and hardware back to their defaults.
  • Make sure all hardware components of your computer are properly installed.
  • Test your computer’s hardware for failures (likely RAM or hard disk ), and replace if necessary.

3. My computer won’t turn on.

Female businessperson frustrated that her computer won't turn on

You press the power button and your computer won’t turn on, or it powers up and then promptly shuts down. The good news (if you can call it that) is that this is almost always a hardware problem, so you can usually immediately rule out any software-related culprits.

  • One or more power switches to your computer system aren’t turned on.
  • Your computer’s power supply or power cord is missing, unplugged, or faulty.
  • One or more of your computer’s hardware components are improperly connected or faulty.
  • Your computer’s CMOS battery is out of power.
  • The power button itself isn’t working.
  • Make sure each switch leading to your computer’s power supply is on.
  • Make sure all power cables on your computer are connected and set to the correct voltage.
  • Remove all intermediary power sources and plug your computer directly into an outlet.
  • Disconnect all peripheral devices (mouse, keyboard, etc.) before trying to start your computer.
  • Open your computer case and make sure all hardware components are properly connected.
  • Replace your CMOS battery .
  • Replace your hard drive or motherboard.

4. My computer continually or randomly restarts or shuts down, especially while it’s booting.

Computer needing to restart

Your computer randomly restarts or shuts down on you while you’re using it. Or, shortly after booting up, your computer crashes and shuts down or forces you to restart it. Like the “Blue Screen of Death” (which is sometimes associated with this problem), this can be caused by a few different things, and some of them require more work to fix than others.

  • Your operating system is missing a key update.
  • One or more of your computer’s device driver programs are out of date.
  • Your computer’s motherboard, RAM, and/or hard disk are damaged.

How to troubleshoot it:

  • Make sure you have installed all recommended update packages for your operating system.
  • Make sure the device drivers for your computer’s hardware components are all up-to-date.
  • Install, update, and run an antivirus program to repair infected files.
  • Take out a RAM module and start your computer. If it doesn’t work, put it back and try another.
  • Replace your hard drive and/or RAM modules, with an experienced repair person if necessary.

5. Parts of my computer are beeping or making strange noises.

A computer beeping as it experiences an error

You should hear minimal noise coming from your computer if it’s running optimally. But if the hard drive starts beeping, or other hardware parts start making more noise than usual, it could be a sign of a problem with your computer.

  • A CD/DVD-ROM or external disk drive may be trying to access files (most of which is normal).
  • One or more of your computer’s cooling fans are broken or working sub-optimally.
  • A RAM module or other piece of hardware is malfunctioning or is incorrectly installed.
  • The hard drive is close to failing.
  • The motherboard has detected some other manner of problem .
  • Remove any disks from your CD/DVD-ROM drive and disconnect any external disk drives.
  • Clean your computer fans with something, like a compressed air can, or repair or replace them.
  • Check the BIOS settings to make sure they’re running the fans correctly.
  • Remove all RAM modules and then properly re-insert them.
  • Remove any newly-installed hardware components and re-insert, repair, or replace them.
  • Back up the files on your hard drive and then get it replaced.

6. My computer is overheating.

A computer's CPU overheating until it's on fire

Parts of your computer feel abnormally hot when you touch them or put your extremities near them. This is usually a problem with your computer’s fans or other cooling systems, but that may have indirect causes as well, such as putting a bigger data load on your computer than it can handle.

  • The airflow through your computer’s case is restricted or blocked.
  • Your BIOS settings are running your computer faster than it can handle (“overclocking”).
  • Adjust the BIOS settings to run the fans correctly and not run your CPU faster than it can handle.
  • Make sure the vents to and from your computer’s fans aren’t blocked.
  • Install and use a program that can control the speed of your computer’s fans.

7. My computer’s peripheral devices, like the mouse and keyboard, aren’t working.

Broken computer keyboard and mouse with screwdrivers

Extra hardware devices that you attach to your computer – like a keyboard, mouse, or external disk drive ­– aren’t working or are acting differently than they normally do. This is mainly a connection or driver issue, but it may be something else.

  • One or more of your computer’s connection ports aren’t working properly.
  • Settings on your computer regarding the device have been improperly configured.
  • The component itself isn’t working due to being damaged or dirty.
  • Unplug the faulty device from your computer, then plug it back in (to another port, if you can).
  • Go to your Control Panel and change your settings (start with “Ease of Access”).
  • Clean the faulty device (taking it apart if you need to), or get it repaired or replaced.

8. My computer suddenly freezes while I’m using it.

Male businessman's computer repeatedly freezing

You’re using your computer normally, when all of a sudden, the screen stops moving and your input devices don’t respond. It happens to most of us every once in a while, but if it happens repeatedly, you may have a bigger problem on your hands.

  • A software program on your computer has experienced an error.
  • One or more of your computer’s processes is taking up too much memory and CPU power.
  • Open your Task Manager and stop programs that aren’t responding.
  • Open your Task Manager and stop processes that are taking up a lot of memory or CPU power.

9. I think my computer has installed a virus or other form of malware.

Concept of a virus or malware computer program

As we’ve discussed, a virus or malware program can be responsible for all sorts of nasty things that happen to your computer: it slows down, unwantedly runs or changes programs, sporadically restarts or shuts down, repeatedly crashes, and more. Fortunately, its possible causes are relatively limited, and there’s quite a bit that you can do about one.

  • You opened or downloaded a file that contained a malware program.
  • You connected a device to your computer whose files were infected with malware.
  • You visited a website that was infected with malware.
  • Disconnect all removable disk drives from your computer.
  • Download, install, and update the Microsoft Malicious Software Removal Tool .
  • Download, install, and update a leading antivirus program .
  • Disconnect your computer from the Internet.
  • Reboot your computer in Safe Mode .
  • Run the Malicious Software Removal Tool and the antivirus program you installed.
  • Re-connect to the Internet.
  • Make sure your computer’s built-in Microsoft Security Features are operating and up-to-date.
  • Know how to spot and avoid unsafe files and sites on the Internet .
  • Install browser extensions to detect and block malware before it reaches your computer.

10. My computer can’t maintain a connection to the Internet.

Internet connection to man's tablet interrupted

You can’t use a web browser or other Internet-related service because you can’t connect to the Internet. Or, while you’re using the Internet, you get an error message because your computer has disconnected.

  • Your Internet router may not be plugged in or working properly.
  • There may be too much distance or interference between your computer and your router.
  • The driver for your computer’s network card may be out of date.
  • Your computer’s network card may not be receiving the power it needs.
  • Make sure your Internet router is plugged in and working. If not, repair or replace it.
  • Move your computer closer to your router, and/or move obstacles out of the way.
  • Update the driver program for your computer’s network card.
  • Go to “Wireless Adapter Settings” in “Power Options” and set to “Maximum Performance.”
  • Call your Internet Service Provider and inquire about the problem.

If you’re not quite sure what the problem is, or none of those solutions worked for you, our tips below might help you get your computer up and running again.

1. Turn it off, and then turn it on again.

Shutting down and restarting your computer resets programs and processes that may have been experiencing errors or glitches. This will usually solve minor problems quickly and easily.

2. If you don’t know something, ask!

Write down information that you don’t quite understand as it appears while you troubleshoot, like error messages. Then, discuss it with a computer-savvy friend or family member, or look it up online. Chances are good that someone else knows what it means and what to do about it.

3. Start with simple fixes, and then rule out possibilities from there.

Save yourself time, money, and hassle by starting with the easy solutions first, then trying more complicated fixes if those don’t work.

4. Check your device connections.

Something on your computer may not be working simply because it isn’t plugged in properly, or at all. Make sure all parts are secured snugly to each other and that all sockets are working normally.

5. Boot your computer in Safe Mode.

Starting your computer in Safe Mode disables some advanced functions of your computer. If Safe Mode works fine but a normal boot-up doesn’t, you’ll know that your computer has a problem with something like its device drivers, a rogue start-up program, or a faulty peripheral device.

6. Keep your programs up-to-date.

Updating your software can not only potentially fix current computer problems, but it may prevent future ones by fixing glitches and other security vulnerabilities that can be exploited.

7. If all else fails, re-install the operating system.

This will reset everything, including (theoretically) any programs, malware, or faulty settings that were giving your computer trouble. Make sure to back up your data before you do this, though, because you’ll need to load it back onto the system afterwards.

Now you have some basic knowledge for how to fix your computer if something goes wrong with it! For more info on how to make your computer and Internet experiences as smooth as possible, visit our Internet 101 section. Or check out our entire Technology Basics  category, which includes the Digital Literacy section with information and tips on mastering all things digital!

More Great Related Articles

Exploring the Problem Solving Cycle in Computer Science – Strategies, Techniques, and Tools

  • Post author By bicycle-u
  • Post date 08.12.2023

The world of computer science is built on the foundation of problem solving. Whether it’s finding a solution to a complex algorithm or analyzing data to make informed decisions, the problem solving cycle is at the core of every computer science endeavor.

At its essence, problem solving in computer science involves breaking down a complex problem into smaller, more manageable parts. This allows for a systematic approach to finding a solution by analyzing each part individually. The process typically starts with gathering and understanding the data or information related to the problem at hand.

Once the data is collected, computer scientists use various techniques and algorithms to analyze and explore possible solutions. This involves evaluating different approaches and considering factors such as efficiency, accuracy, and scalability. During this analysis phase, it is crucial to think critically and creatively to come up with innovative solutions.

After a thorough analysis, the next step in the problem solving cycle is designing and implementing a solution. This involves creating a detailed plan of action, selecting the appropriate tools and technologies, and writing the necessary code to bring the solution to life. Attention to detail and precision are key in this stage to ensure that the solution functions as intended.

The final step in the problem solving cycle is evaluating the solution and its effectiveness. This includes testing the solution against different scenarios and data sets to ensure its reliability and performance. If any issues or limitations are discovered, adjustments and optimizations are made to improve the solution.

In conclusion, the problem solving cycle is a fundamental process in computer science, involving analysis, data exploration, algorithm development, solution implementation, and evaluation. It is through this cycle that computer scientists are able to tackle complex problems and create innovative solutions that drive progress in the field of computer science.

Understanding the Importance

In computer science, problem solving is a crucial skill that is at the core of the problem solving cycle. The problem solving cycle is a systematic approach to analyzing and solving problems, involving various stages such as problem identification, analysis, algorithm design, implementation, and evaluation. Understanding the importance of this cycle is essential for any computer scientist or programmer.

Data Analysis and Algorithm Design

The first step in the problem solving cycle is problem identification, which involves recognizing and defining the issue at hand. Once the problem is identified, the next crucial step is data analysis. This involves gathering and examining relevant data to gain insights and understand the problem better. Data analysis helps in identifying patterns, trends, and potential solutions.

After data analysis, the next step is algorithm design. An algorithm is a step-by-step procedure or set of rules to solve a problem. Designing an efficient algorithm is crucial as it determines the effectiveness and efficiency of the solution. A well-designed algorithm takes into consideration the constraints, resources, and desired outcomes while implementing the solution.

Implementation and Evaluation

Once the algorithm is designed, the next step in the problem solving cycle is implementation. This involves translating the algorithm into a computer program using a programming language. The implementation phase requires coding skills and expertise in a specific programming language.

After implementation, the solution needs to be evaluated to ensure that it solves the problem effectively. Evaluation involves testing the program and verifying its correctness and efficiency. This step is critical to identify any errors or issues and to make necessary improvements or adjustments.

In conclusion, understanding the importance of the problem solving cycle in computer science is essential for any computer scientist or programmer. It provides a systematic and structured approach to analyze and solve problems, ensuring efficient and effective solutions. By following the problem solving cycle, computer scientists can develop robust algorithms, implement them in efficient programs, and evaluate their solutions to ensure their correctness and efficiency.

Identifying the Problem

In the problem solving cycle in computer science, the first step is to identify the problem that needs to be solved. This step is crucial because without a clear understanding of the problem, it is impossible to find a solution.

Identification of the problem involves a thorough analysis of the given data and understanding the goals of the task at hand. It requires careful examination of the problem statement and any constraints or limitations that may affect the solution.

During the identification phase, the problem is broken down into smaller, more manageable parts. This can involve breaking the problem down into sub-problems or identifying the different aspects or components that need to be addressed.

Identifying the problem also involves considering the resources and tools available for solving it. This may include considering the specific tools and programming languages that are best suited for the problem at hand.

By properly identifying the problem, computer scientists can ensure that they are focused on the right goals and are better equipped to find an effective and efficient solution. It sets the stage for the rest of the problem solving cycle, including the analysis, design, implementation, and evaluation phases.

Gathering the Necessary Data

Before finding a solution to a computer science problem, it is essential to gather the necessary data. Whether it’s writing a program or developing an algorithm, data serves as the backbone of any solution. Without proper data collection and analysis, the problem-solving process can become inefficient and ineffective.

The Importance of Data

In computer science, data is crucial for a variety of reasons. First and foremost, it provides the information needed to understand and define the problem at hand. By analyzing the available data, developers and programmers can gain insights into the nature of the problem and determine the most efficient approach for solving it.

Additionally, data allows for the evaluation of potential solutions. By collecting and organizing relevant data, it becomes possible to compare different algorithms or strategies and select the most suitable one. Data also helps in tracking progress and measuring the effectiveness of the chosen solution.

Data Gathering Process

The process of gathering data involves several steps. Firstly, it is necessary to identify the type of data needed for the particular problem. This may include numerical values, textual information, or other types of data. It is important to determine the sources of data and assess their reliability.

Once the required data has been identified, it needs to be collected. This can be done through various methods, such as surveys, experiments, observations, or by accessing existing data sets. The collected data should be properly organized, ensuring its accuracy and validity.

Data cleaning and preprocessing are vital steps in the data gathering process. This involves removing any irrelevant or erroneous data and transforming it into a suitable format for analysis. Properly cleaned and preprocessed data will help in generating reliable and meaningful insights.

Data Analysis and Interpretation

After gathering and preprocessing the data, the next step is data analysis and interpretation. This involves applying various statistical and analytical methods to uncover patterns, trends, and relationships within the data. By analyzing the data, programmers can gain valuable insights that can inform the development of an effective solution.

During the data analysis process, it is crucial to remain objective and unbiased. The analysis should be based on sound reasoning and logical thinking. It is also important to communicate the findings effectively, using visualizations or summaries to convey the information to stakeholders or fellow developers.

In conclusion, gathering the necessary data is a fundamental step in solving computer science problems. It provides the foundation for understanding the problem, evaluating potential solutions, and tracking progress. By following a systematic and rigorous approach to data gathering and analysis, developers can ensure that their solutions are efficient, effective, and well-informed.

Analyzing the Data

Once you have collected the necessary data, the next step in the problem-solving cycle is to analyze it. Data analysis is a crucial component of computer science, as it helps us understand the problem at hand and develop effective solutions.

To analyze the data, you need to break it down into manageable pieces and examine each piece closely. This process involves identifying patterns, trends, and outliers that may be present in the data. By doing so, you can gain insights into the problem and make informed decisions about the best course of action.

There are several techniques and tools available for data analysis in computer science. Some common methods include statistical analysis, data visualization, and machine learning algorithms. Each approach has its own strengths and limitations, so it’s essential to choose the most appropriate method for the problem you are solving.

Statistical Analysis

Statistical analysis involves using mathematical models and techniques to analyze data. It helps in identifying correlations, distributions, and other statistical properties of the data. By applying statistical tests, you can determine the significance and validity of your findings.

Data Visualization

Data visualization is the process of presenting data in a visual format, such as charts, graphs, or maps. It allows for a better understanding of complex data sets and facilitates the communication of findings. Through data visualization, patterns and trends can become more apparent, making it easier to derive meaningful insights.

Machine Learning Algorithms

Machine learning algorithms are powerful tools for analyzing large and complex data sets. These algorithms can automatically detect patterns and relationships in the data, leading to the development of predictive models and solutions. By training the algorithm on a labeled dataset, it can learn from the data and make accurate predictions or classifications.

In conclusion, analyzing the data is a critical step in the problem-solving cycle in computer science. It helps us gain a deeper understanding of the problem and develop effective solutions. Whether through statistical analysis, data visualization, or machine learning algorithms, data analysis plays a vital role in transforming raw data into actionable insights.

Exploring Possible Solutions

Once you have gathered data and completed the analysis, the next step in the problem-solving cycle is to explore possible solutions. This is where the true power of computer science comes into play. With the use of algorithms and the application of scientific principles, computer scientists can develop innovative solutions to complex problems.

During this stage, it is important to consider a variety of potential solutions. This involves brainstorming different ideas and considering their feasibility and potential effectiveness. It may be helpful to consult with colleagues or experts in the field to gather additional insights and perspectives.

Developing an Algorithm

One key aspect of exploring possible solutions is the development of an algorithm. An algorithm is a step-by-step set of instructions that outlines a specific process or procedure. In the context of problem solving in computer science, an algorithm provides a clear roadmap for implementing a solution.

The development of an algorithm requires careful thought and consideration. It is important to break down the problem into smaller, manageable steps and clearly define the inputs and outputs of each step. This allows for the creation of a logical and efficient solution.

Evaluating the Solutions

Once you have developed potential solutions and corresponding algorithms, the next step is to evaluate them. This involves analyzing each solution to determine its strengths, weaknesses, and potential impact. Consider factors such as efficiency, scalability, and resource requirements.

It may be helpful to conduct experiments or simulations to further assess the effectiveness of each solution. This can provide valuable insights and data to support the decision-making process.

Ultimately, the goal of exploring possible solutions is to find the most effective and efficient solution to the problem at hand. By leveraging the power of data, analysis, algorithms, and scientific principles, computer scientists can develop innovative solutions that drive progress and solve complex problems in the world of technology.

Evaluating the Options

Once you have identified potential solutions and algorithms for a problem, the next step in the problem-solving cycle in computer science is to evaluate the options. This evaluation process involves analyzing the potential solutions and algorithms based on various criteria to determine the best course of action.

Consider the Problem

Before evaluating the options, it is important to take a step back and consider the problem at hand. Understand the requirements, constraints, and desired outcomes of the problem. This analysis will help guide the evaluation process.

Analyze the Options

Next, it is crucial to analyze each solution or algorithm option individually. Look at factors such as efficiency, accuracy, ease of implementation, and scalability. Consider whether the solution or algorithm meets the specific requirements of the problem, and if it can be applied to related problems in the future.

Additionally, evaluate the potential risks and drawbacks associated with each option. Consider factors such as cost, time, and resources required for implementation. Assess any potential limitations or trade-offs that may impact the overall effectiveness of the solution or algorithm.

Select the Best Option

Based on the analysis, select the best option that aligns with the specific problem-solving goals. This may involve prioritizing certain criteria or making compromises based on the limitations identified during the evaluation process.

Remember that the best option may not always be the most technically complex or advanced solution. Consider the practicality and feasibility of implementation, as well as the potential impact on the overall system or project.

In conclusion, evaluating the options is a critical step in the problem-solving cycle in computer science. By carefully analyzing the potential solutions and algorithms, considering the problem requirements, and considering the limitations and trade-offs, you can select the best option to solve the problem at hand.

Making a Decision

Decision-making is a critical component in the problem-solving process in computer science. Once you have analyzed the problem, identified the relevant data, and generated a potential solution, it is important to evaluate your options and choose the best course of action.

Consider All Factors

When making a decision, it is important to consider all relevant factors. This includes evaluating the potential benefits and drawbacks of each option, as well as understanding any constraints or limitations that may impact your choice.

In computer science, this may involve analyzing the efficiency of different algorithms or considering the scalability of a proposed solution. It is important to take into account both the short-term and long-term impacts of your decision.

Weigh the Options

Once you have considered all the factors, it is important to weigh the options and determine the best approach. This may involve assigning weights or priorities to different factors based on their importance.

Using techniques such as decision matrices or cost-benefit analysis can help you systematically compare and evaluate different options. By quantifying and assessing the potential risks and rewards, you can make a more informed decision.

Remember: Decision-making in computer science is not purely subjective or based on personal preference. It is crucial to use analytical and logical thinking to select the most optimal solution.

In conclusion, making a decision is a crucial step in the problem-solving process in computer science. By considering all relevant factors and weighing the options using logical analysis, you can choose the best possible solution to a given problem.

Implementing the Solution

Once the problem has been analyzed and a solution has been proposed, the next step in the problem-solving cycle in computer science is implementing the solution. This involves turning the proposed solution into an actual computer program or algorithm that can solve the problem.

In order to implement the solution, computer science professionals need to have a strong understanding of various programming languages and data structures. They need to be able to write code that can manipulate and process data in order to solve the problem at hand.

During the implementation phase, the proposed solution is translated into a series of steps or instructions that a computer can understand and execute. This involves breaking down the problem into smaller sub-problems and designing algorithms to solve each sub-problem.

Computer scientists also need to consider the efficiency of their solution during the implementation phase. They need to ensure that the algorithm they design is able to handle large amounts of data and solve the problem in a reasonable amount of time. This often requires optimization techniques and careful consideration of the data structures used.

Once the code has been written and the algorithm has been implemented, it is important to test and debug the solution. This involves running test cases and checking the output to ensure that the program is working correctly. If any errors or bugs are found, they need to be fixed before the solution can be considered complete.

In conclusion, implementing the solution is a crucial step in the problem-solving cycle in computer science. It requires strong programming skills and a deep understanding of algorithms and data structures. By carefully designing and implementing the solution, computer scientists can solve problems efficiently and effectively.

Testing and Debugging

In computer science, testing and debugging are critical steps in the problem-solving cycle. Testing helps ensure that a program or algorithm is functioning correctly, while debugging analyzes and resolves any issues or bugs that may arise.

Testing involves running a program with specific input data to evaluate its output. This process helps verify that the program produces the expected results and handles different scenarios correctly. It is important to test both the normal and edge cases to ensure the program’s reliability.

Debugging is the process of identifying and fixing errors or bugs in a program. When a program does not produce the expected results or crashes, it is necessary to go through the code to find and fix the problem. This can involve analyzing the program’s logic, checking for syntax errors, and using debugging tools to trace the flow of data and identify the source of the issue.

Data analysis plays a crucial role in both testing and debugging. It helps to identify patterns, anomalies, or inconsistencies in the program’s behavior. By analyzing the data, developers can gain insights into potential issues and make informed decisions on how to improve the program’s performance.

In conclusion, testing and debugging are integral parts of the problem-solving cycle in computer science. Through testing and data analysis, developers can verify the correctness of their programs and identify and resolve any issues that may arise. This ensures that the algorithms and programs developed in computer science are robust, reliable, and efficient.

Iterating for Improvement

In computer science, problem solving often involves iterating through multiple cycles of analysis, solution development, and evaluation. This iterative process allows for continuous improvement in finding the most effective solution to a given problem.

The problem solving cycle starts with problem analysis, where the specific problem is identified and its requirements are understood. This step involves examining the problem from various angles and gathering all relevant information.

Once the problem is properly understood, the next step is to develop an algorithm or a step-by-step plan to solve the problem. This algorithm is a set of instructions that, when followed correctly, will lead to the solution.

After the algorithm is developed, it is implemented in a computer program. This step involves translating the algorithm into a programming language that a computer can understand and execute.

Once the program is implemented, it is then tested and evaluated to ensure that it produces the correct solution. This evaluation step is crucial in identifying any errors or inefficiencies in the program and allows for further improvement.

If any issues or problems are found during testing, the cycle iterates, starting from problem analysis again. This iterative process allows for refinement and improvement of the solution until the desired results are achieved.

Iterating for improvement is a fundamental concept in computer science problem solving. By continually analyzing, developing, and evaluating solutions, computer scientists are able to find the most optimal and efficient approaches to solving problems.

Documenting the Process

Documenting the problem-solving process in computer science is an essential step to ensure that the cycle is repeated successfully. The process involves gathering information, analyzing the problem, and designing a solution.

During the analysis phase, it is crucial to identify the specific problem at hand and break it down into smaller components. This allows for a more targeted approach to finding the solution. Additionally, analyzing the data involved in the problem can provide valuable insights and help in designing an effective solution.

Once the analysis is complete, it is important to document the findings. This documentation can take various forms, such as written reports, diagrams, or even code comments. The goal is to create a record that captures the problem, the analysis, and the proposed solution.

Documenting the process serves several purposes. Firstly, it allows for easy communication and collaboration between team members or future developers. By documenting the problem, analysis, and solution, others can easily understand the thought process behind the solution and potentially build upon it.

Secondly, documenting the process provides an opportunity for reflection and improvement. By reviewing the documentation, developers can identify areas where the problem-solving cycle can be strengthened or optimized. This continuous improvement is crucial in the field of computer science, as new challenges and technologies emerge rapidly.

In conclusion, documenting the problem-solving process is an integral part of the computer science cycle. It allows for effective communication, collaboration, and reflection on the solutions devised. By taking the time to document the process, developers can ensure a more efficient and successful problem-solving experience.

Communicating the Solution

Once the problem solving cycle is complete, it is important to effectively communicate the solution. This involves explaining the analysis, data, and steps taken to arrive at the solution.

Analyzing the Problem

During the problem solving cycle, a thorough analysis of the problem is conducted. This includes understanding the problem statement, gathering relevant data, and identifying any constraints or limitations. It is important to clearly communicate this analysis to ensure that others understand the problem at hand.

Presenting the Solution

The next step in communicating the solution is presenting the actual solution. This should include a detailed explanation of the steps taken to solve the problem, as well as any algorithms or data structures used. It is important to provide clear and concise descriptions of the solution, so that others can understand and reproduce the results.

Overall, effective communication of the solution in computer science is essential to ensure that others can understand and replicate the problem solving process. By clearly explaining the analysis, data, and steps taken, the solution can be communicated in a way that promotes understanding and collaboration within the field of computer science.

Reflecting and Learning

Reflecting and learning are crucial steps in the problem solving cycle in computer science. Once a problem has been solved, it is essential to reflect on the entire process and learn from the experience. This allows for continuous improvement and growth in the field of computer science.

During the reflecting phase, one must analyze and evaluate the problem solving process. This involves reviewing the initial problem statement, understanding the constraints and requirements, and assessing the effectiveness of the chosen algorithm and solution. It is important to consider the efficiency and accuracy of the solution, as well as any potential limitations or areas for optimization.

By reflecting on the problem solving cycle, computer scientists can gain valuable insights into their own strengths and weaknesses. They can identify areas where they excelled and areas where improvement is needed. This self-analysis helps in honing problem solving skills and becoming a better problem solver.

Learning from Mistakes

Mistakes are an integral part of the problem solving cycle, and they provide valuable learning opportunities. When a problem is not successfully solved, it is essential to analyze the reasons behind the failure and learn from them. This involves identifying errors in the algorithm or solution, understanding the underlying concepts or principles that were misunderstood, and finding alternative approaches or strategies.

Failure should not be seen as a setback, but rather as an opportunity for growth. By learning from mistakes, computer scientists can improve their problem solving abilities and expand their knowledge and understanding of computer science. It is through these failures and the subsequent learning process that new ideas and innovations are often born.

Continuous Improvement

Reflecting and learning should not be limited to individual problem solving experiences, but should be an ongoing practice. As computer science is a rapidly evolving field, it is crucial to stay updated with new technologies, algorithms, and problem solving techniques. Continuous learning and improvement contribute to staying competitive and relevant in the field.

Computer scientists can engage in continuous improvement by seeking feedback from peers, participating in research and development activities, attending conferences and workshops, and actively seeking new challenges and problem solving opportunities. This dedication to learning and improvement ensures that one’s problem solving skills remain sharp and effective.

In conclusion, reflecting and learning are integral parts of the problem solving cycle in computer science. They enable computer scientists to refine their problem solving abilities, learn from mistakes, and continuously improve their skills and knowledge. By embracing these steps, computer scientists can stay at the forefront of the ever-changing world of computer science and contribute to its advancements.

Applying Problem Solving in Real Life

In computer science, problem solving is not limited to the realm of programming and algorithms. It is a skill that can be applied to various aspects of our daily lives, helping us to solve problems efficiently and effectively. By using the problem-solving cycle and applying the principles of analysis, data, solution, algorithm, and cycle, we can tackle real-life challenges with confidence and success.

The first step in problem-solving is to analyze the problem at hand. This involves breaking it down into smaller, more manageable parts and identifying the key issues or goals. By understanding the problem thoroughly, we can gain insights into its root causes and potential solutions.

For example, let’s say you’re facing a recurring issue in your daily commute – traffic congestion. By analyzing the problem, you may discover that the main causes are a lack of alternative routes and a lack of communication between drivers. This analysis helps you identify potential solutions such as using navigation apps to find alternate routes or promoting carpooling to reduce the number of vehicles on the road.

Gathering and Analyzing Data

Once we have identified the problem, it is important to gather relevant data to support our analysis. This may involve conducting surveys, collecting statistics, or reviewing existing research. By gathering data, we can make informed decisions and prioritize potential solutions based on their impact and feasibility.

Continuing with the traffic congestion example, you may gather data on the average commute time, the number of vehicles on the road, and the impact of carpooling on congestion levels. This data can help you analyze the problem more accurately and determine the most effective solutions.

Generating and Evaluating Solutions

After analyzing the problem and gathering data, the next step is to generate potential solutions. This can be done through brainstorming, researching best practices, or seeking input from experts. It is important to consider multiple options and think outside the box to find innovative and effective solutions.

For our traffic congestion problem, potential solutions can include implementing a smart traffic management system that optimizes traffic flow or investing in public transportation to incentivize people to leave their cars at home. By evaluating each solution’s potential impact, cost, and feasibility, you can make an informed decision on the best course of action.

Implementing and Iterating

Once a solution has been chosen, it is time to implement it in real life. This may involve developing a plan, allocating resources, and executing the solution. It is important to monitor the progress and collect feedback to learn from the implementation and make necessary adjustments.

For example, if the chosen solution to address traffic congestion is implementing a smart traffic management system, you would work with engineers and transportation authorities to develop and deploy the system. Regular evaluation and iteration of the system’s performance would ensure that it is effective and making a positive impact on reducing congestion.

By applying the problem-solving cycle derived from computer science to real-life situations, we can approach challenges with a systematic and analytical mindset. This can help us make better decisions, improve our problem-solving skills, and ultimately achieve more efficient and effective solutions.

Building Problem Solving Skills

In the field of computer science, problem-solving is a fundamental skill that is crucial for success. Whether you are a computer scientist, programmer, or student, developing strong problem-solving skills will greatly benefit your work and studies. It allows you to approach challenges with a logical and systematic approach, leading to efficient and effective problem resolution.

The Problem Solving Cycle

Problem-solving in computer science involves a cyclical process known as the problem-solving cycle. This cycle consists of several stages, including problem identification, data analysis, solution development, implementation, and evaluation. By following this cycle, computer scientists are able to tackle complex problems and arrive at optimal solutions.

Importance of Data Analysis

Data analysis is a critical step in the problem-solving cycle. It involves gathering and examining relevant data to gain insights and identify patterns that can inform the development of a solution. Without proper data analysis, computer scientists may overlook important information or make unfounded assumptions, leading to subpar solutions.

To effectively analyze data, computer scientists can employ various techniques such as data visualization, statistical analysis, and machine learning algorithms. These tools enable them to extract meaningful information from large datasets and make informed decisions during the problem-solving process.

Developing Effective Solutions

Developing effective solutions requires creativity, critical thinking, and logical reasoning. Computer scientists must evaluate multiple approaches, consider various factors, and assess the feasibility of different solutions. They should also consider potential limitations and trade-offs to ensure that the chosen solution addresses the problem effectively.

Furthermore, collaboration and communication skills are vital when building problem-solving skills. Computer scientists often work in teams and need to effectively communicate their ideas, propose solutions, and address any challenges that arise during the problem-solving process. Strong interpersonal skills facilitate collaboration and enhance problem-solving outcomes.

  • Mastering programming languages and algorithms
  • Staying updated with technological advancements in the field
  • Practicing problem solving through coding challenges and projects
  • Seeking feedback and learning from mistakes
  • Continuing to learn and improve problem-solving skills

By following these strategies, individuals can strengthen their problem-solving abilities and become more effective computer scientists or programmers. Problem-solving is an essential skill in computer science and plays a central role in driving innovation and advancing the field.

Questions and answers:

What is the problem solving cycle in computer science.

The problem solving cycle in computer science refers to a systematic approach that programmers use to solve problems. It involves several steps, including problem definition, algorithm design, implementation, testing, and debugging.

How important is the problem solving cycle in computer science?

The problem solving cycle is extremely important in computer science as it allows programmers to effectively tackle complex problems and develop efficient solutions. It helps in organizing the thought process and ensures that the problem is approached in a logical and systematic manner.

What are the steps involved in the problem solving cycle?

The problem solving cycle typically consists of the following steps: problem definition and analysis, algorithm design, implementation, testing, and debugging. These steps are repeated as necessary until a satisfactory solution is achieved.

Can you explain the problem definition and analysis step in the problem solving cycle?

During the problem definition and analysis step, the programmer identifies and thoroughly understands the problem that needs to be solved. This involves analyzing the requirements, constraints, and possible inputs and outputs. It is important to have a clear understanding of the problem before proceeding to the next steps.

Why is testing and debugging an important step in the problem solving cycle?

Testing and debugging are important steps in the problem solving cycle because they ensure that the implemented solution functions as intended and is free from errors. Through testing, the programmer can identify and fix any issues or bugs in the code, thereby improving the quality and reliability of the solution.

What is the problem-solving cycle in computer science?

The problem-solving cycle in computer science refers to the systematic approach that computer scientists use to solve problems. It involves various steps, including problem analysis, algorithm design, coding, testing, and debugging.

Related posts:

  • The Stages of the Problem Solving Cycle in Cognitive Psychology – Understanding, Planning, Execution, Evaluation, and Reflection
  • A Comprehensive Guide to the Problem Solving Cycle in Psychology – Strategies, Techniques, and Applications
  • The Step-by-Step Problem Solving Cycle for Effective Solutions
  • The Importance of Implementing the Problem Solving Cycle in Education to Foster Critical Thinking and Problem-Solving Skills in Students
  • The Importance of the Problem Solving Cycle in Business Studies – Strategies for Success
  • The Comprehensive Guide to the Problem Solving Cycle in PDF Format
  • A Comprehensive Guide on the Problem Solving Cycle – Step-by-Step Approach with Real-Life Example
  • The Seven Essential Steps of the Problem Solving Cycle

breadcrumb

  • Exploring Computational Thinking

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

International Society for Technology in Education (ISTE)

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

Australian Digital Technologies Hub

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

CT Overview

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

CT involves a number of skills, including:

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

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

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

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

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

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

CT Materials

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

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

Core Subject: All

Subject: All

Suggested Age: 8-18

Type: Reference

Computational Thinking Concepts Guide

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

Differentiation Strategies Guide

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

Student Engagement Strategies Guide

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

Pseudocode Guide

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

Introduction to Python

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

Python Basics Quick Reference

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

Core Subject: Computer Science

Subject: Algorithms and Complexity

Suggested Age: 14-18

Type: Lesson

Measuring the Complexity of a Function or Algorithm

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

Suggested Age: 8-12

Ciphering a Sentence

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

Suggested Age: 11-18

Algorithmic Thinking

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

Suggested Age: 11-14

Divide and Conquer

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

Water Water Everywhere!

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

Data Compression

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

Subject: Data Analysis

Suggested Age: 8-15

Describing an Everyday Object

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

Exploring Your Environment

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

Subject: Logic

Suggested Age: 9-12

Machine Testing

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

Solving a Guessing Game with Data

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

Subject: Software Development

Suggested Age: 13-18

Functions and Algorithms

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

Core Subject: English-Language Arts

Subject: Language

Indefinite Articles

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

Suggested Age: 8-10

Mystery Word X

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

Present Participle

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

Finding Patterns in Spelling Errors and History

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

Suggested Age: 10-14

Writing a Story

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

Type: Program

Interactive Fiction

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

Interactive Mad Libs

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

Interactive Mad Libs (Variation)

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

Lady Macbeth Chat Bot

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

Stroke Order of a Chinese Character

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

Type: Exploration

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

Core Subject: History Social Science

Subject: US History

Map Visualization

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

Population Statistics

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

Core Subject: Mathematics

Subject: Algebra

Suggested Age: 12-15

Linear Association

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

Degrees and Radians

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

Slope and Y-Intercept

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

Suggested Age: 13-16

Two Workers

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

Three Workers

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

Savings and Interest

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

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

DVD Rentals

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

Theme Park Ride

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

T Tables for Simple Functions

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

Suggested Age: 12-16

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

Quadratic Formula

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

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

Factoring Perfect Square Binomial Expressions

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

Distance, Rate, Time

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

Binomial Products

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

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

Properties of Quadratic Equations

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

Substitution with Two Equations

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

Pascal’s Triangle

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

Vertex of a Quadratic

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

Roots of an Equation

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

Conic Sections

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

Combinations: n choose k

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

Matrix Multiplication

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

Logarithm Notation

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

Determinant of a 3x3 Matrix

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

Determinant of a 2x2 Matrix

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

Subject: Arithmetic

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

Graphing Sums of Dice Rolls

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

Random Number Illustrator

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

Sum of Two Dice

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

Subject: Calculus

Suggested Age: 16-18

Instantaneous Rate of Change

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

Calculating Definite Integrals

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

Fundamental Theorem of Calculus

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

Mean and Standard Deviation

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

Application and Modeling of Standard Deviation

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

Using Data from Sensors - Introduction

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

Using Data from Sensors - Filters and Functions

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

Continuous vs Discrete Data - Introduction

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

Continuous vs Discrete Data - Modeling Continuous Functions

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

Subject: Geometry

Turtle Geometry

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

Suggested Age: 13-17

Area of a Circle

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

Finding the Shortest Path

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

Suggested Age: 11-16

Pythagorean Theorem - Pencil Code

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

Acute, Obtuse, and Right Triangles

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

Calculating Surface Area

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

Pythagorean Theorem - Python

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

Polygonal Formulas

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

Distance Between Two Points

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

Area Calculations

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

Suggested Age: 12-14

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

Pattern Machine

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

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

Suggested Age: 10-12

Logic Party

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

Subject: Pre-Algebra

Fraction Addition and Common Denominators

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

Multiplication with Fractions

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

Suggested Age: 11-13

Ratios and Proportions

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

Multiplying by Numbers Between Zero and One

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

Dividing by Numbers Between Zero and One

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

Common Fractions and Equivalent Percentages

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

Percent Change

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

Scientific Notation

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

Percentages

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

Long Multiplication on Two-Digit Numbers - Pencil Code

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

Long Multiplication on Two-Digit Numbers - Python

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

Fractions and Proportions

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

Lemonade and Glasses

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

Evaluating Expressions

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

Midpoint Between Two Points

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

Complementary and Supplementary Angles

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

Populations

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

Rock Climber, Cliff, and Shadows

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

Basketball Hoops and Buildings

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

Fractional Exponents

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

Subject: Statistics and Probability

Combinations with Repeats

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

Factorials with Names

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

Sorting Data

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

Surveys and Estimating Large Quantities

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

Randomness in Stochastic Models

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

Stochastic and Deterministic Modeling

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

Analyzing Discrete and Continuous Data in a Spreadsheet

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

Analyzing Discrete and Continuous Data in a Map

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

Correlation vs Causation

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

Data Aggregation and Decomposition (Advanced Python)

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

Data Aggregation and Decomposition (Google Sheets)

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

The Law of Large Numbers and Probability

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

Generating Complex Behavior with Algorithms

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

Subject: Trigonometry

Suggested Age: 12-17

Application of Sin(x) and Cos(x)

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

Core Subject: Music

Subject: Music

Making Music with Algorithms

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

Core Subject: Science

Subject: Biology

Modeling the Genome using Computational Thinking

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

Modeling GDP and Waste using Computational Thinking

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

Modeling Natural Selection using Computational Thinking

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

Suggested Age: 14-17

Cell Biology - Filters

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

Cell Biology - Filter Design and Construction

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

Classifying Objects with Computational Thinking

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

Subject: Chemistry

Modeling Electron Configuration using Computational Thinking

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

Modeling Radioactive Decay using Computational Thinking

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

Modeling Boyle's Law using Computational Thinking

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

Patterns in the Periodic Table

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

Sorting the World's Cities (Google Sheets)

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

Sorting the World's Cities (Advanced Python)

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

What is Data? - Introduction

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

What is Data? - Code Breaking and Patterns

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

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

Subject: Earth Science

Energy Analysis

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

Subject: Physics

Modeling Projectile Motion using Computational Thinking

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

Modeling Pendulums using Computational Thinking

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

Modeling Free Fall using Computational Thinking

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

Working with Large Tables of Data

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

Simulating a Bouncing Ball

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

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

For educators

General CT Resources

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

CT Tips and Strategies

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

CT in Computer Science

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

CT in Science

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

CT in English/Language Arts

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

CT in Art, Design, Media

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

CT in Music

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

For administrators

CT for School Leaders

  • ISTE Computational Thinking Leadership Toolkit

CT in the Science Classroom

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

Computer Science Education Standards

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

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

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

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

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

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

How do I install Python on my computer?

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

  • About Google

Problem-Solving Strategies

  • First Online: 06 August 2020

Cite this chapter

the computer problem solving process requires

  • Orit Hazzan   ORCID: orcid.org/0000-0002-8627-0997 4 ,
  • Noa Ragonis   ORCID: orcid.org/0000-0002-8163-0199 5 &
  • Tami Lapidot 4  

1388 Accesses

Problem-solving is generally considered as one of the most important and challenging cognitive activities in everyday as well as in any professional contexts. Specifically, it is one of the central activities performed by computer scientists as well as by computer science learners. However, it is not a uniform or linear process that can be taught as an algorithm to be followed, and the understanding of this individual process is not always clear. Computer science learners often face difficulties in performing two of the main stages of a problem-solving process: problem analysis and solution construction. Therefore, it is important that computer science educators be aware of these difficulties and acquire appropriate pedagogical tools to guide and scaffold learners in learning these skills. This chapter is dedicated to such pedagogical tools. It presents several problem-solving strategies to address in the MTCS course together with appropriate activities that mediate them to the prospective computer science teachers by enabling them to experience the different strategies.

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

Access this chapter

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

Tax calculation will be finalised at checkout

Purchases are for personal use only

Institutional subscriptions

An algorithmic problem is defined by what is given – the initial conditions of the problem and its goals – the desired state, what should be accomplished. An algorithm problem can be solved with a series of actions formulated formally either by pseudo-code or a programming language. See Sect. 12.4.1 .

In advanced computer science classes, it is relevant to mention that in computer science, in addition to the development of problem-solving strategies, special emphasis is placed also on non-solvable problems (see Sect. 12.4.3 ).

Role of Variables in Python: http://www.cs.joensuu.fi/~saja/var_roles/stud_vers/stud_Python_eng.html

Roles of Variables with examples in Scratch: https://www.sisd.net/cms/lib/TX01001452/Centricity/domain/433/cse/1.1.5%20RolesOfVariables_UsedActivity1.2.4.pptx

The Roles of Variables home page ( http://saja.kapsi.fi/var_roles/ ) is a rich resource and contains different kinds of educational resources.

See http://www.cs.joensuu.fi/~saja/var_roles/role_intro.html

See http://www.cs.joensuu.fi/~saja/var_roles/try.html

See http://cs.uef.fi/~pgerdt/RAE/

See http://www.cs.joensuu.fi/~saja/var_roles/why_roles.html

See http://www.cs.joensuu.fi/~saja/var_roles/teaching.html

See http://saja.kapsi.fi/var_roles/literature.html

Ahrendt W, Bubel R, Hahnle R (2009) Integrated and tool-supported teaching of testing, debugging, and verification. In: Gibbons J, Oliveira JN (eds) Proceedings of the 2nd international conference on teaching formal methods (TFM ’09). Springer, Berlin/Heidelberg, pp 125–143

Google Scholar  

Alqadi BS, Maletic JI (2017) An empirical study of debugging patterns among novices programmers. In: Proceedings of the 2017 ACM SIGCSE technical symposium on computer science education (SIGCSE ’17). ACM, New York, pp 15–20

Arshad N (2009) Teaching programming and problem solving to CS2 students using think-alouds. SIGCSE Bull 41(1):372–376

Astrachan O, Berry G, Cox L, Mitchener G (1998) Design patterns: an essential component of CS curricula. In: Proceeding of SIGCSE, pp 153–160

Batory D, Sarvela JN, Rauschmayer A (2004) Scaling stepwise refinement. IEEE Trans Softw Eng 30(6):355–371

Bauer A, Popović Z (2017) Collaborative problem solving in an open-ended scientific discovery game. In: Proceedings of the ACM Human-Computer Interaction 1, CSCW, Article 22 (December 2017)

Ben-Ari M, Sajaniemi J (2003) Roles of variables from the perspective of computer science educators. University of Joensuu, Department of Computer Science, Technical Report, Series A-2003–6

Börstler J, Hilburn TB (2016) Team projects in computing education. ACM Trans Comput Educ 16(2), Article 4 (March 2016)

Byckling P, Sajaniemi J (2006) Roles of variables and programming skills improvement. SIGCSE Bull 38(1):413–417

Carver S, McCoy (1988) Learning and transfer of debugging skills: applying task analysis to curriculum design and assessment. In Mayer RE (ed) Teaching and learning computer programming, multiple research perspectives. Lawrence Erlbaum Associates, Inc., Chapter 11

Celepkolu M, Boyer KE (2018) The importance of producing shared code through pair programming. In: Proceedings of the 49th ACM technical symposium on computer science education (SIGCSE ’18). ACM, New York, pp 765–770

Clancy MJ, Linn M C (1999) Patterns and pedagogy. In: Proceedings of the SIGCSE’99, pp 37–42

Cosmides L, Tooby J (1997) Evolutionary psychology: a primer. Retrieved 24 October 2004, from http://www.psych.ucsb.edu/research/cep/primer.html

Dijkstra EW (1976) A discipline of programming. Prentice-Hall, Englewood Cliffs

MATH   Google Scholar  

East JP, Thomas SR, Wallingford E, Beck W, Drake J (1996) Pattern-based programming instruction. In: Proceedings of ASEE annual conference and exposition, Washington, DC

Ginat D (2003) The greedy trap and learning from mistakes. SIGCSE Bull 35(1):11–15

Ginat D (2004) Algorithmic patterns and the case of the sliding delta. SIGCSE Bull 36(2):29–33

Ginat D (2008) Learning from wrong and creative algorithm design. SIGCSE Bull 40(1):26–30

Ginat D (2009) Interleaved pattern composition and scaffolded learning. In: Proceedings of the 14th Annual ACM SIGCSE Conference on Innovation and Technology in Computer Science Education – ITiCSE ‘09, Paris, France, pp 109–113

Ginat D, Shmalo R (2013) Constructive use of errors in teaching CS1. In: Proceedings of the 44th ACM technical symposium on Computer science education (SIGCSE ’13). ACM, New York, pp 353–358

Hasni TF, Lodhi F (2011) Teaching problem solving effectively. ACM Inroads 2(3):58–62

Hazzan O, Leron U (2006) Why do we resist testing? Syst Des Front Exclus Front Cover Syst Des 3(7):20–23

Johnson DW, Johanson RT (2017) Cooperative learning. Retrieved from: https://2017.congresoinnovacion.educa.aragon.es/documents/48/David_Johnson.pdf

Jonassen DH (2000) Toward a design theory of problem solving. Educ Technol Res Dev 48(4):63–85

Kiesmüller U (2009) Diagnosing learners’ problem-solving strategies using learning environments with algorithmic problems in secondary education. Trans Comput Educ 9(3), Article 17 (September 2009), 26 pages

Laakso MJ, Malmi L, Korhonen A, Rajala T, Kaila E, Salakoski T (2008) Using roles of variables to enhance novice’s debugging work. Issues Informing Sci Inf Technol 5:281–295

Lapidot T, Hazzan O (2005) Song debugging: merging content and pedagogy in computer science education. Inroads SIGCSE Bull 37(4):79–83

Lieberman H (1997) The debugging scandal and what to do about it (special section). Comm ACM 40(4):27–29

Lishinski A, Yadav A, Enbody R, Good J (2016) The influence of problem solving abilities on Students’ performance on different assessment tasks in CS1. In: Proceedings of the 47th ACM technical symposium on computing science education (SIGCSE ’16). ACM, New York, pp 329–334

Muller O (2005) Pattern oriented instruction and the enhancement of analogical reasoning. In: Proceedings of the first International Workshop on Computer Education Research ICER ‘05, Seattle, WA, USA, pp 57–67

Muller O, Haberman B, Averbuch H (2004) (An almost) pedagogical pattern for pattern-based problem solving instruction. In: Proceedings of the 9th Annual SIGCSE Conference on Innovation and Technology in Computer Science. Education, pp 102–106

Muller O, Ginat D, Haberman B (2007) Pattern-oriented instruction and its influence on problem decomposition and solution construction. ACM SIGCSE Bull 39(3):151–155

Murphy L, Lewandowski G, McCauley R, Simon B, Thomas L, Zander C (2008) Debugging: the good, the bad, and the quirky – a qualitative analysis of novices’ strategies. SIGCSE Bull 40(1):163–167

Nagvajara P, Taskin B (2007) Design-for-debug: a vital aspect in education. In: Proceedings of the 2007 IEEE international conference on microelectronic systems education (MSE ’07). IEEE Computer Society, Washington, DC, USA, pp 65–66

Papert S (1980) Mindstorms: children, computers and powerful ideas. Basic Books Inc, New York

Polya G (1957) How to solve it. Doubleday and Co., Inc, Garden City

Polya G (1981) Mathematical discovery on understanding learning and teaching problem solving. Wiley, New York

Popper KR (1992/1959) Logic of scientific discovery. Harper and Row, New York

Proulx VK (2000) Programming patterns and design patterns in the introductory computer science course. Proc SIGCSE 32(1):80–84

Ragonis N (2012) Integrating the teaching of algorithmic patterns into computer science teacher preparation programs. In: Proceedings of the 17th ACM annual conference on Innovation and technology in computer science education (ITiCSE ’12). ACM, New York, pp 339–344

Raman K, Svore KM, Gilad-Bachrach R, Burges CJC (2012) Learning from mistakes: towards a correctable learning algorithm. In: Proceedings of the 21st ACM international conference on information and knowledge management (CIKM ’12). ACM, New York, pp 1930–1934

Reed D (1999) Incorporating problem-solving patterns in CS1. J Comput Sci Edu 13(1):6–13

Reynolds RG, Maletic JI, Porvin SE (1992) Stepwise refinement and problem solving. IEEE Softw 9(5):79–88

Robins A, Rountree J, Rountree N (2003) Learning and teaching programming: a review and discussion. Comput Sci Edu 13(2):137–172

Sajaniemi J (2005) Roles of variables and learning to program. In: Jimoyiannis A (ed) Proceedings of the 3rd Panhellenic conference didactics of informatics, University of Peloponnese, Korinthos, Greece. http://cs.joensuu.fi/~saja/var_roles/abstracts/didinf05.pdf . Accessed 3 July 2010

Santos AL, Sousa J (2017) An exploratory study of how programming instructors illustrate variables and control flow. In: Proceedings of the 17th Koli calling international conference on computing education research (Koli Calling ’17). ACM, New York, pp 173–177

Schoenfeld AH (1983) Episodes and executive decisions in mathematical problem-solving. In: Lesh R, Landaue M (eds) Acquisition of mathematics concepts and processes. Academic Press Inc, New York

Schön DA (1983) The reflective practitioner. BasicBooks

Seta K, Kajino T, Umano M, Ikeda M (2006) An ontology based reflection support system to encourage learning from mistakes. In: Deved V (ed) Proceedings of the 24th IASTED international conference on artificial intelligence and applications (AIA’06). ACTA Press, Anaheim, pp 142–149

Soloway E (1986) Learning to program = learning to construct mechanisms and explanations. CACM 29(1):850–858

Spohrer JG, Soloway E (1986) Analyzing the high frequency bugs in novice programs. In: Soloway E, Iyengar S (eds) Empirical studies of programmers. Ablex, Norwood, pp 230–251

Stoeffler K, Rosen Y, von Davier A (2017) Exploring the measurement of collaborative problem solving using a human-agent educational game. In: Proceedings of the seventh international learning analytics & knowledge conference (LAK ‘17). ACM, New York, pp 570–571

Vainio V, Sajaniemi J (2007) Factors in novice programmers’ poor tracing skills. SIGCSE Bull 39(3):236–240

Vasconcelos J (2007) Basic strategy for algorithmic problem solving. http://www.cs.jhu.edu/~jorgev/cs106/ProblemSolving.html . Accessed 2 June 2010

Vírseda R d V, Orna EP, Berbis E, Guerrero S d L (2011) A logic teaching tool based on tableaux for verification and debugging of algorithms. In: Blackburn P, van Ditmarsch H, Soler-Toscano F, Manzano M (eds) Proceedings of the third international congress conference on tools for teaching logic (TICTTL’11). Springer, Berlin/Heidelberg, pp 239–248

Von Davier AA, Halpin PF (2013) Collaborative problem solving and the assessment of cognitive skills: psychometric considerations. ETS Res Rep Ser 2013(2):1–36

Wallingford E (1996) Toward a first course based on object-oriented patterns. In: Proceedings of the SIGCSE, pp 27–31

Wirth N (1971) Program development by stepwise refinement. CACM 14(4):221–227. http://sunnyday.mit.edu/16.355/wirth-refinement.html . Accessed 13 Nov 2010

Download references

Author information

Authors and affiliations.

Department of Education in Science & Technology, Technion–Israel Institute of Technology, Haifa, Israel

Orit Hazzan & Tami Lapidot

Faculty of Education, Beit Berl College, Doar Beit Berl, Israel

Noa Ragonis

You can also search for this author in PubMed   Google Scholar

Rights and permissions

Reprints and permissions

Copyright information

© 2020 Springer Nature Switzerland AG

About this chapter

Hazzan, O., Ragonis, N., Lapidot, T. (2020). Problem-Solving Strategies. In: Guide to Teaching Computer Science. Springer, Cham. https://doi.org/10.1007/978-3-030-39360-1_8

Download citation

DOI : https://doi.org/10.1007/978-3-030-39360-1_8

Published : 06 August 2020

Publisher Name : Springer, Cham

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

Online ISBN : 978-3-030-39360-1

eBook Packages : Computer Science Computer Science (R0)

Share this chapter

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

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

Provided by the Springer Nature SharedIt content-sharing initiative

  • Publish with us

Policies and ethics

  • Find a journal
  • Track your research

GCFGlobal Logo

  • Get started with computers
  • Learn Microsoft Office
  • Apply for a job
  • Improve my work skills
  • Design nice-looking docs
  • Getting Started
  • Smartphones & Tablets
  • Typing Tutorial
  • Online Learning
  • Basic Internet Skills
  • Online Safety
  • Social Media
  • Zoom Basics
  • Google Docs
  • Google Sheets
  • Career Planning
  • Resume Writing
  • Cover Letters
  • Job Search and Networking
  • Business Communication
  • Entrepreneurship 101
  • Careers without College
  • Job Hunt for Today
  • 3D Printing
  • Freelancing 101
  • Personal Finance
  • Sharing Economy
  • Decision-Making
  • Graphic Design
  • Photography
  • Image Editing
  • Learning WordPress
  • Language Learning
  • Critical Thinking
  • For Educators
  • Translations
  • Staff Picks
  • English expand_more expand_less

Computer Basics  - Basic Troubleshooting Techniques

Computer basics  -, basic troubleshooting techniques, computer basics basic troubleshooting techniques.

GCFLearnFree Logo

Computer Basics: Basic Troubleshooting Techniques

Lesson 19: basic troubleshooting techniques.

/en/computerbasics/creating-a-safe-workspace/content/

Troubleshooting

Do you know what to do if your screen goes blank? What if you can't seem to close an application, or can't hear any sound from your speakers? Whenever you have a problem with your computer, don't panic! There are many basic troubleshooting techniques you can use to fix issues like this. In this lesson, we'll show you some simple things to try when troubleshooting, as well as how to solve common problems you may encounter.

General tips to keep in mind

There are many different things that could cause a problem with your computer. No matter what's causing the issue, troubleshooting will always be a process of trial and error —in some cases, you may need to use several different approaches before you can find a solution; other problems may be easy to fix. We recommend starting by using the following tips.

  • Write down your steps : Once you start troubleshooting, you may want to write down each step you take. This way, you'll be able to remember exactly what you've done and can avoid repeating the same mistakes. If you end up asking other people for help, it will be much easier if they know exactly what you've tried already.
  • Take notes about error messages : If your computer gives you an error message , be sure to write down as much information as possible. You may be able to use this information later to find out if other people are having the same error.

cables

  • Restart the computer : When all else fails, restarting the computer is a good thing to try. This can solve a lot of basic issues you may experience with your computer.

Using the process of elimination

If you're having an issue with your computer, you may be able to find out what's wrong using the process of elimination . This means you'll make a list of things that could be causing the problem and then test them out one by one to eliminate them. Once you've identified the source of your computer issue, it will be easier to find a solution.

Let's say you're trying to print out invitations for a birthday party, but the printer won't print. You have some ideas about what could be causing this, so you go through them one by one to see if you can eliminate any possible causes.

First, you check the printer to see that it's turned on and plugged in to the surge protector . It is, so that's not the issue. Next, you check to make sure the printer's ink cartridge still has ink and that there is paper loaded in the paper tray . Things look good in both cases, so you know the issue has nothing to do with ink or paper.

Now you want to make sure the printer and computer are communicating correctly . If you recently downloaded an update to your operating system , it might interfere with the printer. But you know there haven't been any recent updates and the printer was working yesterday, so you'll have to look elsewhere.

You check the printer's USB cord and find that it's not plugged in. You must have unplugged it accidentally when you plugged something else into the computer earlier. Once you plug in the USB cord, the printer starts working again. It looks like this printer issue is solved!

This is just one example of an issue you might encounter while using a computer. In the rest of this lesson, we'll talk about other common computer problems and some ways to solve them.

Simple solutions to common problems

Most of the time, problems can be fixed using simple troubleshooting techniques, like closing and reopening the program. It's important to try these simple solutions before resorting to more extreme measures. If the problem still isn't fixed, you can try other troubleshooting techniques.

Problem: Power button will not start computer

  • Solution 1 : If your computer does not start , begin by checking the power cord to confirm that it is plugged securely into the back of the computer case and the power outlet.
  • Solution 2 : If it is plugged into an outlet, make sure it is a working outlet . To check your outlet, you can plug in another electrical device , such as a lamp .

surge protector

  • Solution 4 : If you are using a laptop , the battery may not be charged. Plug the AC adapter into the wall, then try to turn on the laptop. If it still doesn't start up, you may need to wait a few minutes and try again.

Problem: An application is running slowly

  • Solution 1 : Close and reopen the application.

Checking for updates

Problem: An application is frozen

Sometimes an application may become stuck, or frozen . When this happens, you won't be able to close the window or click any buttons within the application.

task manager in Windows 10

  • Solution 2 : Restart the computer. If you are unable to force quit an application, restarting your computer will close all open apps.

Problem: All programs on the computer run slowly

virus scanner

  • Solution 2 : Your computer may be running out of hard drive space. Try deleting any files or programs you don't need.
  • Solution 3 : If you're using a PC , you can run Disk Defragmenter . To learn more about Disk Defragmenter , check out our lesson on Protecting Your Computer .

Problem: The computer is frozen

Sometimes your computer may become completely unresponsive, or frozen . When this happens, you won't be able to click anywhere on the screen, open or close applications, or access shut-down options.

restarting Windows Explorer in Windows 10

  • Solution 3 : Press and hold the Power button. The Power button is usually located on the front or side of the computer, typically indicated by the power symbol . Press and hold the Power button for 5 to 10 seconds to force the computer to shut down.
  • Solution 4 : If the computer still won't shut down, you can unplug the power cable from the electrical outlet. If you're using a laptop, you may be able to remove the battery to force the computer to turn off. Note : This solution should be your last resort after trying the other suggestions above.

Problem: The mouse or keyboard has stopped working

wired mouse or keyboard

  • Solution 2 : If you're using a wireless mouse or keyboard, make sure it's turned on and that its batteries are charged.

Problem: The sound isn't working

  • Solution 1 : Check the volume level. Click the audio button in the top-right or bottom-right corner of the screen to make sure the sound is turned on and that the volume is up.
  • Solution 2 : Check the audio player controls. Many audio and video players will have their own separate audio controls. Make sure the sound is turned on and that the volume is turned up in the player.
  • Solution 3 : Check the cables. Make sure external speakers are plugged in, turned on, and connected to the correct audio port or a USB port. If your computer has color-coded ports, the audio output port will usually be green .

headphones and speakers

Problem: The screen is blank

  • Solution 1 : The computer may be in Sleep mode. Click the mouse or press any key on the keyboard to wake it.
  • Solution 2 : Make sure the monitor is plugged in and turned on .
  • Solution 3 : Make sure the computer is plugged in and turned on .
  • Solution 4 : If you're using a desktop, make sure the monitor cable is properly connected to the computer tower and the monitor.

Solving more difficult problems

If you still haven't found a solution to your problem, you may need to ask someone else for help. As an easy starting point, we'd recommend searching the Web . It's possible that other users have had similar problems, and solutions to these problems are often posted online. Also, if you have a friend or family member who knows a lot about computers, they may be able to help you.

Google search of Windows 10

Keep in mind that most computer problems have simple solutions, although it may take some time to find them. For difficult problems, a more drastic solution may be required, like reformatting your hard drive or reinstalling your operating system. If you think you might need a solution like this, we recommend consulting a professional first. If you're not a computer expert, it's possible that attempting these solutions could make the situation worse.

previous

/en/computerbasics/how-to-use-your-computers-builtin-help/content/

  • Articles Automation Career Cloud Containers Kubernetes Linux Programming Security

Sysadmin careers: The 5 steps of problem solving

%t min read | by David Both (Sudoer alumni)

5 steps to problem solving

Photo by  Robin Schreiner  from  Pexels

In the previous article, 4 problem-solving strategies for sysadmins , we looked at methods of reasoning about problems that relate to computer hardware and software. We saw that problem-solving approaches like MAPs and other symptom-fix methods have significant limitations. It is also clear that proprietary, closed software systems do not lend themselves to reasoned approaches, while open systems like Linux and open source software, in general, are intimately knowable and thus tractable to reason and logic.

One of the best things that my mentors helped me with was the formulation of a defined reasoning process that I could always use for solving problems of nearly any type. That process, the algorithm, is very closely related to the scientific method and is what we will cover in this article.

During the research for my book,  The Linux Philosophy for SysAdmins , I discovered a short article titled,  How the Scientific Method Works , that describes the scientific method using a diagram very much like the one I have created for my "five steps of problem-solving."

Solving problems of any kind is art, science, and—some would say—perhaps a bit of magic, too. Solving technical problems, such as those that occur with computers, requires a good deal of specialized knowledge as well. Any approach to solving problems of any nature —including problems with Linux—must include more than just a list of symptoms and the steps necessary to fix or circumvent the problems that caused the symptoms. This so-called "symptom-fix" approach looks good on paper to many managers, but it really sucks in practice. The best way to approach problem-solving is with a large base of knowledge of the subject and a strong methodology.

The five steps of problem-solving

There are five basic steps that are involved in the problem-solving process, as shown in Figure 1. This algorithm is very similar to that of the scientific method but is specifically intended for solving technical problems.

5 steps of problem solving

You probably already follow these steps when you troubleshoot a problem but do not even realize it. These steps are universal and apply to solving most any type of problem, not just problems with computers or Linux. I used these steps for years with various types of problems without realizing it. Having them codified for me made me much more effective at solving problems because, when I became stuck, I could review the steps I had taken, verify where I was in the process, and restart at any appropriate step.

You may have heard a couple of other terms applied to problem-solving in the past. The first three steps of this process are also known as problem determination, that is, finding the root cause of the problem. The last two steps are problem resolution, which is actually fixing the problem.

The next sections cover each of these five steps in more detail.

Knowledge of the subject in which you are attempting to solve a problem is the first step. All of the articles I have seen about the scientific method seem to assume this as a prerequisite. However, the acquisition of knowledge is an ongoing process, driven by curiosity and augmented by the knowledge gained from using the scientific method to explore and learn more through experimentation. You must be knowledgeable about Linux at the very least, and furthermore, you must be knowledgeable about the other factors that can interact with and affect Linux. Hardware, the network, and even environmental factors like temperature, humidity, and the electrical environment in which the Linux system operates can affect it.

Knowledge can be gained by reading books and web sites about Linux and those other topics. You can attend classes, seminars, and conferences. You can also set up a number of physical or virtual Linux computers in a networked environment. And, of course, there is much to learn through interaction with other knowledgeable people. You learn when you resolve a problem or discover a new cause for a particular type of problem, even when an attempt to fix a problem results in a temporary failure.

Classes are also valuable in providing us with new information. My personal preference is to play—uh, experiment—with Linux or a particular piece such as networking, name services, DHCP, Chrony, and more. Then I take a class or two to help me internalize the knowledge I have gained.

Remember, "without knowledge, resistance is futile," to paraphrase the Borg. Knowledge is power.

Observation

The second step in solving the problem is to observe its symptoms. It is important to take note of all of the problem symptoms, but also to observe what is working properly. This is not the time to try to fix the problem; merely observe. Another important part of observation is to ask yourself questions about what you see and what you do not see. Aside from the questions you need to ask that are specific to the problem, there are some general questions to ask:

  • Is this problem caused by hardware, Linux, application software, or perhaps by lack of user knowledge or training?
  • Is this problem similar to others I have seen?
  • Is there an error message?
  • Are there any log entries pertaining to the problem?
  • What was taking place on the computer just before the error occurred?
  • What did I expect to happen if the error had not occurred?
  • Has anything about the system hardware or software changed recently?

Other questions will reveal themselves as you work to answer these. The important thing to remember here is not these specific questions, but rather to gather as much information as possible. This increases the knowledge you have about this specific problem instance and aids in finding the solution.

As you gather data, never assume that the information obtained from someone else is correct. Observe everything yourself. This can be a major problem if you are working with someone who is at a remote location. Careful questioning is essential, and tools that allow remote access to the system in question are extremely helpful when attempting to confirm the information that you are given.

Tip: When questioning a person at a remote site, never ask leading questions; they will try to be helpful by answering with what they think you want to hear.

At other times the answers you receive will depend upon how much or how little knowledge the person has of Linux and computers in general. When a person knows—or thinks they know—about computers, the answers you receive may contain assumptions that can be difficult to disprove. Rather than ask. "Did you check…," it is better to have the other person actually perform the task required to check the item. And rather than telling the person what they should see, simply have the user explain or describe to you what they do see. Again, remote access to the machine can allow you to confirm the information you are given.

The best problem solvers are those who never take anything for granted. They never assume that the information they have is 100% accurate or complete. When the information you have seems to contradict itself or the symptoms, start over from the beginning as if you have no information at all.

In almost all of the jobs I have had in the computer business, we have always tried to help each other out, and this was true when I was at IBM. I have always been very good at fixing things, and there were times when I would show up to support another CE who was having a particularly difficult time finding the source of a problem. The first thing I would do is assess the situation. I would ask the primary CE what they had done so far to locate the problem. After that, I would start over from the beginning. I always wanted to see the results myself. Many times that paid off because I would observe something that others had missed. In one very strange incident, I fixed a large computer by sitting on it.

This took place while I was an IBM CE in Lima, Ohio, in about 1976. Two of us were installing an IBM System/3, which was smaller than an IBM mainframe, like a 360 or 370, but still large enough to need a room of its own, high voltage power, and significant air cooling.

We had assembled the main CPU and had started to attach the IBM 1403 line printer controller when we ran into the problem. The printer controller was contained in a slightly lower than desktop-height unit to the left of the CPU. That nice large work surface is just the right height to sit on.

We had just bolted the printer controller to the frame of the CPU and were doing one of the very many checks built into the installation instructions. We connected the leads of an Ohm meter between the frame of the CPU and a specific terminal on the power supply of the printer controller. The result was supposed to be an open circuit, that is, infinite resistance, which would indicate that the hot leads of the power supply were not shorted to the frame. In this case, there was a short—zero resistance—which was bad.

There would not have been a spectacular display of noise and fireworks like you see on TV, but it would have been a problem as it would prevent the computer from powering up. Best to catch this while it was still being assembled rather than later. After an hour of trying to find the problem, we were unable to do so. We called the support center for the System/3 in Boca Raton, Florida, and were guided through several further problem determination steps that were unsuccessful.

A bit frustrated, I sat on the printer control unit. Out of the corner of my eye, I saw the needle on the Ohm meter swing to indicate an open circuit. I mentioned this to the other CE and to Vern in Boca Raton, who would later be one of my own mentors when I went down there for a few years as a Course Development Representative (CSR).

We removed the top, where I had perched, from the controller, and with a bit of luck, found that one of the bolts holding the top to the frame of the printer controller had come loose and fallen into the power supply and caused the short. When I sat on the top of the controller, the frame moved just enough to cause the bolt to no longer make the contact required to produce the short. Removing that loose bolt from the power supply fixed the problem.

Vern, who was responsible for the System/3 support at that time, made some changes to the instructions to cover this problem in case it happened again. He also worked with the manufacturing people to ensure that it did not happen again, putting in place a check to ensure that the bolt was properly tightened during the build process.

The thing to remember is to really observe what is going on in all parts of the system. Pay attention to everything, and don't ignore the slightest clue. Sometimes watching  top ,  htop ,  glances , or one of the other utilities used to monitor the internal functioning of the kernel or the network can provide a momentary glimpse of something—a clue—that gets us started in the right direction.

And sometimes it takes just a bit of luck, like sitting on the printer control unit.

Use reasoning skills to take the information from your observations of the symptoms, your knowledge to determine a probable cause for the problem. We discussed the different types of reasoning in some detail in my previous article  Sysadmin careers:  4 problem-solving strategies . The process of reasoning through your observations of the problem, your knowledge, and your past experience is where art and science combine to produce inspiration, intuition, or some other mystical mental insight into the root cause of the problem.

In some cases, this is a fairly easy process. You can see an error code and look up its meaning from the sources available to you. Or perhaps you observe a symptom that is familiar, and you know what steps might resolve it. You can then apply the vast knowledge you have gained by reading about Linux and the documentation provided with Linux to reason your way to the cause of the problem.

In other cases, it can be a very difficult and lengthy part of the problem determination process. These are the types of cases that can be the most difficult—symptoms you have never seen or a problem that is not resolved by any of the methods you have used. It is these difficult ones that require more work and especially more reasoning applied to them.

It helps to remember that the symptom is not the problem. The problem causes the symptom. You want to discover the true problem, not just the symptom.

Now is the time to perform the appropriate repair action. This is usually the simple part. The hard part is what came before—figuring out what to do. After you know the cause of the problem, it is easy to determine the correct repair action to take. The specific action you take will depend upon the cause(s) of the problem.

Remember, we are fixing the root cause, not just trying to get rid of or cover up the symptom.

Make only one change at a time. If there are several actions that can be taken that might correct the cause of a problem, only make the one change or take the one action that is most likely to resolve the root cause. The selection of the corrective action with the highest probability of fixing the problem is what you are trying to do here. Whether it is your own experience telling you which action to take, or the experiences of others, move down the list from highest to lowest probability, one action at a time. Test the results after each action.

After taking some overt repair action, the repair should be tested. This usually means performing the task that failed in the first place, but it could also be a single, simple command that illustrates the problem.

We make a single change, taking one potential corrective action, and then testing the results of that action. This is the only way we can be certain which corrective action fixed the problem. If we were to take several corrective actions and then test one time, there is no way to know which action was responsible for fixing the problem. This is especially important if we want to walk back those ineffective changes we made after finding the solution.

If the repair action has not been successful, you should begin the procedure over again. If there are additional corrective actions you can take, return to that step and continue doing so until you have run out of possibilities or have learned with to a certainty that you are on the wrong track.

Be sure to check the original observed symptoms when testing. It is possible that they have changed due to the action you have taken, and you need to be aware of this in order to make informed decisions during the next iteration of the process. Even if the problem has not been resolved, the altered symptom could be very valuable in determining how to proceed.

As you work through a problem, it will be necessary to iterate through at least some of the steps. If, for example, performing a given corrective action does not resolve the problem, you may need to try another action that has also been known to resolve the problem in the past. Figure 1 shows that you may need to iterate to any previous step in order to continue. It may be necessary to go back to the observation step and gather more information about the problem. I have also found that sometimes it was a good idea to go back to the knowledge step and gather more basic knowledge. This includes reading or rereading manuals and man pages, using search engines, whatever is necessary to gain the knowledge required to continue past the point where I was blocked.

Be flexible, and don't hesitate to step back and start over if nothing else produces some forward progress.

Concluding thoughts

In this article, we have looked at one way to approach fixing problems that applies to many non-technical things as well as to computer hardware and software. What we have discussed here is one algorithm for problem-solving that can be used with the reasoning methodologies we explored in the first article. The flexibility of this particular combination is extremely powerful.

I am not telling you that you "should" use this method. However, if you go all Zen and analyze your own method for solving problems, you will very likely find that it is already very close to the algorithm I describe here. I suggest that you do take the time to analyze your own methods. I think you will find it a productive use of time that will be quite enlightening.

Skills You Need website,  Critical Thinking Skills

Wikipedia,  Reason

Butte College,  Deductive, Inductive, and Abductive Reasoning

Harris, William,  How the Scientific Method Works

Both, David,  The Linux Philosophy for SysAdmins , Ch23.

[ Want to test your sysadmin skills? Take a skills assessment today. ]

Author’s photo

David Both is an open source software and GNU/Linux advocate, trainer, writer, and speaker who lives in Raleigh, NC. He is a strong proponent of and evangelist for the "Linux Philosophy." David has been in the IT industry for over 50 years. More about me

What is computer programming, exactly? A techie's guide

genevieve-carlton

The 21st-century world runs on computers. And computers run on programs. Understanding computer programming unlocks the power of computing systems -- and programming opens career doors.

Computer programs communicate information to computing devices. Computers then carry out tasks based on the program instructions. Simple programs tell computers to run calculations, while complex programs can run video games, analyze big data, or drive a car.

Our guide defines computer programs, explores uses of programming, and looks at the knowledge and skills required for careers in programming. 

What is computer programming?

What is computer programming? Programming, also known as coding, refers to the process of writing instructions for computing devices and systems. A computer program translates those instructions into a language that computers can understand.  

Computer programmers use many different languages to command computers. Popular programming languages include Python, JavaScript, Java, and the C-languages. 

The tech industry relies on computer programming to create innovative new uses for computers. Groundbreaking fields like machine learning and artificial intelligence depend on computer programming.

Computer users interact with programs frequently. Web browsers, for example, are specialized computer programs. These user-facing programs fall into the category of front-end development . In contrast, back-end development creates programs for tasks the user does not see, including server communication. 

How is computer programming used?

Computer programmers created every application that computers run -- from photo editing software to word processors and web browsers. Programming languages unlock the power of computing systems. And without computer programming, our computing devices would not function. 

In addition to the uses of programming visible to users, programming languages also manage the hidden side of computing. Programs pull information from databases, implement security procedures to protect private data, and operate memory backup systems.

What computer programmers do

Computer programmers write code in languages like JavaScript, Python , and C++. Depending on their focus area -- web development, mobile application development, software engineering, and so on -- they use different languages. 

Computer programmers need more than fluency in one or more programming languages. They also need to know how to debug and modify code. Programmers often work in teams. 

The process of creating a program is complex and involves steps such as:

Conceptualizing the goal of the application

Building a layout of the different parts of the program

Writing code

Debugging the code and resolving any errors

Testing the application 

Releasing the program to beta users

Computer programming jobs

Many tech jobs require programming skills. For example, computer programmers , web developers , software developers , and software engineers all use coding skills regularly. 

According to the Bureau of Labor Statistics , the median annual wage for computer and information technology occupations was $91,250 in May 2020, more than twice the $41,950 median annual wage for all occupations. The best computer science jobs also show growth above the national average.

Other computer programming jobs include:

Database administrator

Computer systems analyst

Information security analyst

Data scientist

Network architect

Becoming a computer programmer

Computer programmers gain coding skills through college programs, coding bootcamps , and self-study. A degree in computer science or programming builds strong coding skills. If you're wondering how to become a software engineer , researching training options is a good place to start.

Students can also enroll in online courses, certificate programs, or bootcamps focused on particular programming languages.

Prospective programmers should consider their strengths and career goals when choosing languages to learn. The easiest programming languages have simple syntax and can provide an entry point for tackling more complex languages. Note that different career paths require different programming languages.

What is computer programming used for?

Programming languages tell computing systems to perform tasks. Programmers code software, hardware, and other applications that allow people to use computers. 

Is computer programming hard?

Learning a programming language requires attention to detail and strong problem-solving skills. Focusing on an easier programming language helps new learners master core programming skills.

What language is used for computer programming?

Computer programmers use many different languages, including JavaScript, Python, C++, and Java. Tech professionals use different languages depending on their goals and focus areas.

This article was reviewed by Monali Mirel Chuatico

In 2019, Monali Mirel Chuatico graduated with her bachelor's in computer science, which gave her the foundation that she needed to excel in roles such as a data engineer, front-end developer, UX designer, and computer science instructor. Monali is currently a data engineer at Mission Lane. As a data analytics captain at a nonprofit called COOP Careers, Monali helps new grads and young professionals overcome underemployment by teaching them data analytics tools and mentoring them on their professional development journey. Monali is passionate about implementing creative solutions, building community, advocating for mental health, empowering women, and educating youth.  Monali Mirel Chuatico is a paid member of the Red Ventures Education freelance review network.  

ZDNET Recommends

  • Bipolar Disorder
  • Therapy Center
  • When To See a Therapist
  • Types of Therapy
  • Best Online Therapy
  • Best Couples Therapy
  • Best Family Therapy
  • Managing Stress
  • Sleep and Dreaming
  • Understanding Emotions
  • Self-Improvement
  • Healthy Relationships
  • Student Resources
  • Personality Types
  • Guided Meditations
  • Verywell Mind Insights
  • 2024 Verywell Mind 25
  • Mental Health in the Classroom
  • Editorial Process
  • Meet Our Review Board
  • Crisis Support

Overview of the Problem-Solving Mental Process

Kendra Cherry, MS, is a psychosocial rehabilitation specialist, psychology educator, and author of the "Everything Psychology Book."

the computer problem solving process requires

Rachel Goldman, PhD FTOS, is a licensed psychologist, clinical assistant professor, speaker, wellness expert specializing in eating behaviors, stress management, and health behavior change.

the computer problem solving process requires

  • Identify the Problem
  • Define the Problem
  • Form a Strategy
  • Organize Information
  • Allocate Resources
  • Monitor Progress
  • Evaluate the Results

Frequently Asked Questions

Problem-solving is a mental process that involves discovering, analyzing, and solving problems. The ultimate goal of problem-solving is to overcome obstacles and find a solution that best resolves the issue.

The best strategy for solving a problem depends largely on the unique situation. In some cases, people are better off learning everything they can about the issue and then using factual knowledge to come up with a solution. In other instances, creativity and insight are the best options.

It is not necessary to follow problem-solving steps sequentially, It is common to skip steps or even go back through steps multiple times until the desired solution is reached.

In order to correctly solve a problem, it is often important to follow a series of steps. Researchers sometimes refer to this as the problem-solving cycle. While this cycle is portrayed sequentially, people rarely follow a rigid series of steps to find a solution.

The following steps include developing strategies and organizing knowledge.

1. Identifying the Problem

While it may seem like an obvious step, identifying the problem is not always as simple as it sounds. In some cases, people might mistakenly identify the wrong source of a problem, which will make attempts to solve it inefficient or even useless.

Some strategies that you might use to figure out the source of a problem include :

  • Asking questions about the problem
  • Breaking the problem down into smaller pieces
  • Looking at the problem from different perspectives
  • Conducting research to figure out what relationships exist between different variables

2. Defining the Problem

After the problem has been identified, it is important to fully define the problem so that it can be solved. You can define a problem by operationally defining each aspect of the problem and setting goals for what aspects of the problem you will address

At this point, you should focus on figuring out which aspects of the problems are facts and which are opinions. State the problem clearly and identify the scope of the solution.

3. Forming a Strategy

After the problem has been identified, it is time to start brainstorming potential solutions. This step usually involves generating as many ideas as possible without judging their quality. Once several possibilities have been generated, they can be evaluated and narrowed down.

The next step is to develop a strategy to solve the problem. The approach used will vary depending upon the situation and the individual's unique preferences. Common problem-solving strategies include heuristics and algorithms.

  • Heuristics are mental shortcuts that are often based on solutions that have worked in the past. They can work well if the problem is similar to something you have encountered before and are often the best choice if you need a fast solution.
  • Algorithms are step-by-step strategies that are guaranteed to produce a correct result. While this approach is great for accuracy, it can also consume time and resources.

Heuristics are often best used when time is of the essence, while algorithms are a better choice when a decision needs to be as accurate as possible.

4. Organizing Information

Before coming up with a solution, you need to first organize the available information. What do you know about the problem? What do you not know? The more information that is available the better prepared you will be to come up with an accurate solution.

When approaching a problem, it is important to make sure that you have all the data you need. Making a decision without adequate information can lead to biased or inaccurate results.

5. Allocating Resources

Of course, we don't always have unlimited money, time, and other resources to solve a problem. Before you begin to solve a problem, you need to determine how high priority it is.

If it is an important problem, it is probably worth allocating more resources to solving it. If, however, it is a fairly unimportant problem, then you do not want to spend too much of your available resources on coming up with a solution.

At this stage, it is important to consider all of the factors that might affect the problem at hand. This includes looking at the available resources, deadlines that need to be met, and any possible risks involved in each solution. After careful evaluation, a decision can be made about which solution to pursue.

6. Monitoring Progress

After selecting a problem-solving strategy, it is time to put the plan into action and see if it works. This step might involve trying out different solutions to see which one is the most effective.

It is also important to monitor the situation after implementing a solution to ensure that the problem has been solved and that no new problems have arisen as a result of the proposed solution.

Effective problem-solvers tend to monitor their progress as they work towards a solution. If they are not making good progress toward reaching their goal, they will reevaluate their approach or look for new strategies .

7. Evaluating the Results

After a solution has been reached, it is important to evaluate the results to determine if it is the best possible solution to the problem. This evaluation might be immediate, such as checking the results of a math problem to ensure the answer is correct, or it can be delayed, such as evaluating the success of a therapy program after several months of treatment.

Once a problem has been solved, it is important to take some time to reflect on the process that was used and evaluate the results. This will help you to improve your problem-solving skills and become more efficient at solving future problems.

A Word From Verywell​

It is important to remember that there are many different problem-solving processes with different steps, and this is just one example. Problem-solving in real-world situations requires a great deal of resourcefulness, flexibility, resilience, and continuous interaction with the environment.

Get Advice From The Verywell Mind Podcast

Hosted by therapist Amy Morin, LCSW, this episode of The Verywell Mind Podcast shares how you can stop dwelling in a negative mindset.

Follow Now : Apple Podcasts / Spotify / Google Podcasts

You can become a better problem solving by:

  • Practicing brainstorming and coming up with multiple potential solutions to problems
  • Being open-minded and considering all possible options before making a decision
  • Breaking down problems into smaller, more manageable pieces
  • Asking for help when needed
  • Researching different problem-solving techniques and trying out new ones
  • Learning from mistakes and using them as opportunities to grow

It's important to communicate openly and honestly with your partner about what's going on. Try to see things from their perspective as well as your own. Work together to find a resolution that works for both of you. Be willing to compromise and accept that there may not be a perfect solution.

Take breaks if things are getting too heated, and come back to the problem when you feel calm and collected. Don't try to fix every problem on your own—consider asking a therapist or counselor for help and insight.

If you've tried everything and there doesn't seem to be a way to fix the problem, you may have to learn to accept it. This can be difficult, but try to focus on the positive aspects of your life and remember that every situation is temporary. Don't dwell on what's going wrong—instead, think about what's going right. Find support by talking to friends or family. Seek professional help if you're having trouble coping.

Davidson JE, Sternberg RJ, editors.  The Psychology of Problem Solving .  Cambridge University Press; 2003. doi:10.1017/CBO9780511615771

Sarathy V. Real world problem-solving .  Front Hum Neurosci . 2018;12:261. Published 2018 Jun 26. doi:10.3389/fnhum.2018.00261

By Kendra Cherry, MSEd Kendra Cherry, MS, is a psychosocial rehabilitation specialist, psychology educator, and author of the "Everything Psychology Book."

35 problem-solving techniques and methods for solving complex problems

Problem solving workshop

Design your next session with SessionLab

Join the 150,000+ facilitators 
using SessionLab.

Recommended Articles

A step-by-step guide to planning a workshop, how to create an unforgettable training session in 8 simple steps, 47 useful online tools for workshop planning and meeting facilitation.

All teams and organizations encounter challenges as they grow. There are problems that might occur for teams when it comes to miscommunication or resolving business-critical issues . You may face challenges around growth , design , user engagement, and even team culture and happiness. In short, problem-solving techniques should be part of every team’s skillset.

Problem-solving methods are primarily designed to help a group or team through a process of first identifying problems and challenges , ideating possible solutions , and then evaluating the most suitable .

Finding effective solutions to complex problems isn’t easy, but by using the right process and techniques, you can help your team be more efficient in the process.

So how do you develop strategies that are engaging, and empower your team to solve problems effectively?

In this blog post, we share a series of problem-solving tools you can use in your next workshop or team meeting. You’ll also find some tips for facilitating the process and how to enable others to solve complex problems.

Let’s get started! 

How do you identify problems?

How do you identify the right solution.

  • Tips for more effective problem-solving

Complete problem-solving methods

  • Problem-solving techniques to identify and analyze problems
  • Problem-solving techniques for developing solutions

Problem-solving warm-up activities

Closing activities for a problem-solving process.

Before you can move towards finding the right solution for a given problem, you first need to identify and define the problem you wish to solve. 

Here, you want to clearly articulate what the problem is and allow your group to do the same. Remember that everyone in a group is likely to have differing perspectives and alignment is necessary in order to help the group move forward. 

Identifying a problem accurately also requires that all members of a group are able to contribute their views in an open and safe manner. It can be scary for people to stand up and contribute, especially if the problems or challenges are emotive or personal in nature. Be sure to try and create a psychologically safe space for these kinds of discussions.

Remember that problem analysis and further discussion are also important. Not taking the time to fully analyze and discuss a challenge can result in the development of solutions that are not fit for purpose or do not address the underlying issue.

Successfully identifying and then analyzing a problem means facilitating a group through activities designed to help them clearly and honestly articulate their thoughts and produce usable insight.

With this data, you might then produce a problem statement that clearly describes the problem you wish to be addressed and also state the goal of any process you undertake to tackle this issue.  

Finding solutions is the end goal of any process. Complex organizational challenges can only be solved with an appropriate solution but discovering them requires using the right problem-solving tool.

After you’ve explored a problem and discussed ideas, you need to help a team discuss and choose the right solution. Consensus tools and methods such as those below help a group explore possible solutions before then voting for the best. They’re a great way to tap into the collective intelligence of the group for great results!

Remember that the process is often iterative. Great problem solvers often roadtest a viable solution in a measured way to see what works too. While you might not get the right solution on your first try, the methods below help teams land on the most likely to succeed solution while also holding space for improvement.

Every effective problem solving process begins with an agenda . A well-structured workshop is one of the best methods for successfully guiding a group from exploring a problem to implementing a solution.

In SessionLab, it’s easy to go from an idea to a complete agenda . Start by dragging and dropping your core problem solving activities into place . Add timings, breaks and necessary materials before sharing your agenda with your colleagues.

The resulting agenda will be your guide to an effective and productive problem solving session that will also help you stay organized on the day!

the computer problem solving process requires

Tips for more effective problem solving

Problem-solving activities are only one part of the puzzle. While a great method can help unlock your team’s ability to solve problems, without a thoughtful approach and strong facilitation the solutions may not be fit for purpose.

Let’s take a look at some problem-solving tips you can apply to any process to help it be a success!

Clearly define the problem

Jumping straight to solutions can be tempting, though without first clearly articulating a problem, the solution might not be the right one. Many of the problem-solving activities below include sections where the problem is explored and clearly defined before moving on.

This is a vital part of the problem-solving process and taking the time to fully define an issue can save time and effort later. A clear definition helps identify irrelevant information and it also ensures that your team sets off on the right track.

Don’t jump to conclusions

It’s easy for groups to exhibit cognitive bias or have preconceived ideas about both problems and potential solutions. Be sure to back up any problem statements or potential solutions with facts, research, and adequate forethought.

The best techniques ask participants to be methodical and challenge preconceived notions. Make sure you give the group enough time and space to collect relevant information and consider the problem in a new way. By approaching the process with a clear, rational mindset, you’ll often find that better solutions are more forthcoming.  

Try different approaches  

Problems come in all shapes and sizes and so too should the methods you use to solve them. If you find that one approach isn’t yielding results and your team isn’t finding different solutions, try mixing it up. You’ll be surprised at how using a new creative activity can unblock your team and generate great solutions.

Don’t take it personally 

Depending on the nature of your team or organizational problems, it’s easy for conversations to get heated. While it’s good for participants to be engaged in the discussions, ensure that emotions don’t run too high and that blame isn’t thrown around while finding solutions.

You’re all in it together, and even if your team or area is seeing problems, that isn’t necessarily a disparagement of you personally. Using facilitation skills to manage group dynamics is one effective method of helping conversations be more constructive.

Get the right people in the room

Your problem-solving method is often only as effective as the group using it. Getting the right people on the job and managing the number of people present is important too!

If the group is too small, you may not get enough different perspectives to effectively solve a problem. If the group is too large, you can go round and round during the ideation stages.

Creating the right group makeup is also important in ensuring you have the necessary expertise and skillset to both identify and follow up on potential solutions. Carefully consider who to include at each stage to help ensure your problem-solving method is followed and positioned for success.

Document everything

The best solutions can take refinement, iteration, and reflection to come out. Get into a habit of documenting your process in order to keep all the learnings from the session and to allow ideas to mature and develop. Many of the methods below involve the creation of documents or shared resources. Be sure to keep and share these so everyone can benefit from the work done!

Bring a facilitator 

Facilitation is all about making group processes easier. With a subject as potentially emotive and important as problem-solving, having an impartial third party in the form of a facilitator can make all the difference in finding great solutions and keeping the process moving. Consider bringing a facilitator to your problem-solving session to get better results and generate meaningful solutions!

Develop your problem-solving skills

It takes time and practice to be an effective problem solver. While some roles or participants might more naturally gravitate towards problem-solving, it can take development and planning to help everyone create better solutions.

You might develop a training program, run a problem-solving workshop or simply ask your team to practice using the techniques below. Check out our post on problem-solving skills to see how you and your group can develop the right mental process and be more resilient to issues too!

Design a great agenda

Workshops are a great format for solving problems. With the right approach, you can focus a group and help them find the solutions to their own problems. But designing a process can be time-consuming and finding the right activities can be difficult.

Check out our workshop planning guide to level-up your agenda design and start running more effective workshops. Need inspiration? Check out templates designed by expert facilitators to help you kickstart your process!

In this section, we’ll look at in-depth problem-solving methods that provide a complete end-to-end process for developing effective solutions. These will help guide your team from the discovery and definition of a problem through to delivering the right solution.

If you’re looking for an all-encompassing method or problem-solving model, these processes are a great place to start. They’ll ask your team to challenge preconceived ideas and adopt a mindset for solving problems more effectively.

  • Six Thinking Hats
  • Lightning Decision Jam
  • Problem Definition Process
  • Discovery & Action Dialogue
Design Sprint 2.0
  • Open Space Technology

1. Six Thinking Hats

Individual approaches to solving a problem can be very different based on what team or role an individual holds. It can be easy for existing biases or perspectives to find their way into the mix, or for internal politics to direct a conversation.

Six Thinking Hats is a classic method for identifying the problems that need to be solved and enables your team to consider them from different angles, whether that is by focusing on facts and data, creative solutions, or by considering why a particular solution might not work.

Like all problem-solving frameworks, Six Thinking Hats is effective at helping teams remove roadblocks from a conversation or discussion and come to terms with all the aspects necessary to solve complex problems.

2. Lightning Decision Jam

Featured courtesy of Jonathan Courtney of AJ&Smart Berlin, Lightning Decision Jam is one of those strategies that should be in every facilitation toolbox. Exploring problems and finding solutions is often creative in nature, though as with any creative process, there is the potential to lose focus and get lost.

Unstructured discussions might get you there in the end, but it’s much more effective to use a method that creates a clear process and team focus.

In Lightning Decision Jam, participants are invited to begin by writing challenges, concerns, or mistakes on post-its without discussing them before then being invited by the moderator to present them to the group.

From there, the team vote on which problems to solve and are guided through steps that will allow them to reframe those problems, create solutions and then decide what to execute on. 

By deciding the problems that need to be solved as a team before moving on, this group process is great for ensuring the whole team is aligned and can take ownership over the next stages. 

Lightning Decision Jam (LDJ)   #action   #decision making   #problem solving   #issue analysis   #innovation   #design   #remote-friendly   The problem with anything that requires creative thinking is that it’s easy to get lost—lose focus and fall into the trap of having useless, open-ended, unstructured discussions. Here’s the most effective solution I’ve found: Replace all open, unstructured discussion with a clear process. What to use this exercise for: Anything which requires a group of people to make decisions, solve problems or discuss challenges. It’s always good to frame an LDJ session with a broad topic, here are some examples: The conversion flow of our checkout Our internal design process How we organise events Keeping up with our competition Improving sales flow

3. Problem Definition Process

While problems can be complex, the problem-solving methods you use to identify and solve those problems can often be simple in design. 

By taking the time to truly identify and define a problem before asking the group to reframe the challenge as an opportunity, this method is a great way to enable change.

Begin by identifying a focus question and exploring the ways in which it manifests before splitting into five teams who will each consider the problem using a different method: escape, reversal, exaggeration, distortion or wishful. Teams develop a problem objective and create ideas in line with their method before then feeding them back to the group.

This method is great for enabling in-depth discussions while also creating space for finding creative solutions too!

Problem Definition   #problem solving   #idea generation   #creativity   #online   #remote-friendly   A problem solving technique to define a problem, challenge or opportunity and to generate ideas.

4. The 5 Whys 

Sometimes, a group needs to go further with their strategies and analyze the root cause at the heart of organizational issues. An RCA or root cause analysis is the process of identifying what is at the heart of business problems or recurring challenges. 

The 5 Whys is a simple and effective method of helping a group go find the root cause of any problem or challenge and conduct analysis that will deliver results. 

By beginning with the creation of a problem statement and going through five stages to refine it, The 5 Whys provides everything you need to truly discover the cause of an issue.

The 5 Whys   #hyperisland   #innovation   This simple and powerful method is useful for getting to the core of a problem or challenge. As the title suggests, the group defines a problems, then asks the question “why” five times, often using the resulting explanation as a starting point for creative problem solving.

5. World Cafe

World Cafe is a simple but powerful facilitation technique to help bigger groups to focus their energy and attention on solving complex problems.

World Cafe enables this approach by creating a relaxed atmosphere where participants are able to self-organize and explore topics relevant and important to them which are themed around a central problem-solving purpose. Create the right atmosphere by modeling your space after a cafe and after guiding the group through the method, let them take the lead!

Making problem-solving a part of your organization’s culture in the long term can be a difficult undertaking. More approachable formats like World Cafe can be especially effective in bringing people unfamiliar with workshops into the fold. 

World Cafe   #hyperisland   #innovation   #issue analysis   World Café is a simple yet powerful method, originated by Juanita Brown, for enabling meaningful conversations driven completely by participants and the topics that are relevant and important to them. Facilitators create a cafe-style space and provide simple guidelines. Participants then self-organize and explore a set of relevant topics or questions for conversation.

6. Discovery & Action Dialogue (DAD)

One of the best approaches is to create a safe space for a group to share and discover practices and behaviors that can help them find their own solutions.

With DAD, you can help a group choose which problems they wish to solve and which approaches they will take to do so. It’s great at helping remove resistance to change and can help get buy-in at every level too!

This process of enabling frontline ownership is great in ensuring follow-through and is one of the methods you will want in your toolbox as a facilitator.

Discovery & Action Dialogue (DAD)   #idea generation   #liberating structures   #action   #issue analysis   #remote-friendly   DADs make it easy for a group or community to discover practices and behaviors that enable some individuals (without access to special resources and facing the same constraints) to find better solutions than their peers to common problems. These are called positive deviant (PD) behaviors and practices. DADs make it possible for people in the group, unit, or community to discover by themselves these PD practices. DADs also create favorable conditions for stimulating participants’ creativity in spaces where they can feel safe to invent new and more effective practices. Resistance to change evaporates as participants are unleashed to choose freely which practices they will adopt or try and which problems they will tackle. DADs make it possible to achieve frontline ownership of solutions.

7. Design Sprint 2.0

Want to see how a team can solve big problems and move forward with prototyping and testing solutions in a few days? The Design Sprint 2.0 template from Jake Knapp, author of Sprint, is a complete agenda for a with proven results.

Developing the right agenda can involve difficult but necessary planning. Ensuring all the correct steps are followed can also be stressful or time-consuming depending on your level of experience.

Use this complete 4-day workshop template if you are finding there is no obvious solution to your challenge and want to focus your team around a specific problem that might require a shortcut to launching a minimum viable product or waiting for the organization-wide implementation of a solution.

8. Open space technology

Open space technology- developed by Harrison Owen – creates a space where large groups are invited to take ownership of their problem solving and lead individual sessions. Open space technology is a great format when you have a great deal of expertise and insight in the room and want to allow for different takes and approaches on a particular theme or problem you need to be solved.

Start by bringing your participants together to align around a central theme and focus their efforts. Explain the ground rules to help guide the problem-solving process and then invite members to identify any issue connecting to the central theme that they are interested in and are prepared to take responsibility for.

Once participants have decided on their approach to the core theme, they write their issue on a piece of paper, announce it to the group, pick a session time and place, and post the paper on the wall. As the wall fills up with sessions, the group is then invited to join the sessions that interest them the most and which they can contribute to, then you’re ready to begin!

Everyone joins the problem-solving group they’ve signed up to, record the discussion and if appropriate, findings can then be shared with the rest of the group afterward.

Open Space Technology   #action plan   #idea generation   #problem solving   #issue analysis   #large group   #online   #remote-friendly   Open Space is a methodology for large groups to create their agenda discerning important topics for discussion, suitable for conferences, community gatherings and whole system facilitation

Techniques to identify and analyze problems

Using a problem-solving method to help a team identify and analyze a problem can be a quick and effective addition to any workshop or meeting.

While further actions are always necessary, you can generate momentum and alignment easily, and these activities are a great place to get started.

We’ve put together this list of techniques to help you and your team with problem identification, analysis, and discussion that sets the foundation for developing effective solutions.

Let’s take a look!

  • The Creativity Dice
  • Fishbone Analysis
  • Problem Tree
  • SWOT Analysis
  • Agreement-Certainty Matrix
  • The Journalistic Six
  • LEGO Challenge
  • What, So What, Now What?
  • Journalists

Individual and group perspectives are incredibly important, but what happens if people are set in their minds and need a change of perspective in order to approach a problem more effectively?

Flip It is a method we love because it is both simple to understand and run, and allows groups to understand how their perspectives and biases are formed. 

Participants in Flip It are first invited to consider concerns, issues, or problems from a perspective of fear and write them on a flip chart. Then, the group is asked to consider those same issues from a perspective of hope and flip their understanding.  

No problem and solution is free from existing bias and by changing perspectives with Flip It, you can then develop a problem solving model quickly and effectively.

Flip It!   #gamestorming   #problem solving   #action   Often, a change in a problem or situation comes simply from a change in our perspectives. Flip It! is a quick game designed to show players that perspectives are made, not born.

10. The Creativity Dice

One of the most useful problem solving skills you can teach your team is of approaching challenges with creativity, flexibility, and openness. Games like The Creativity Dice allow teams to overcome the potential hurdle of too much linear thinking and approach the process with a sense of fun and speed. 

In The Creativity Dice, participants are organized around a topic and roll a dice to determine what they will work on for a period of 3 minutes at a time. They might roll a 3 and work on investigating factual information on the chosen topic. They might roll a 1 and work on identifying the specific goals, standards, or criteria for the session.

Encouraging rapid work and iteration while asking participants to be flexible are great skills to cultivate. Having a stage for idea incubation in this game is also important. Moments of pause can help ensure the ideas that are put forward are the most suitable. 

The Creativity Dice   #creativity   #problem solving   #thiagi   #issue analysis   Too much linear thinking is hazardous to creative problem solving. To be creative, you should approach the problem (or the opportunity) from different points of view. You should leave a thought hanging in mid-air and move to another. This skipping around prevents premature closure and lets your brain incubate one line of thought while you consciously pursue another.

11. Fishbone Analysis

Organizational or team challenges are rarely simple, and it’s important to remember that one problem can be an indication of something that goes deeper and may require further consideration to be solved.

Fishbone Analysis helps groups to dig deeper and understand the origins of a problem. It’s a great example of a root cause analysis method that is simple for everyone on a team to get their head around. 

Participants in this activity are asked to annotate a diagram of a fish, first adding the problem or issue to be worked on at the head of a fish before then brainstorming the root causes of the problem and adding them as bones on the fish. 

Using abstractions such as a diagram of a fish can really help a team break out of their regular thinking and develop a creative approach.

Fishbone Analysis   #problem solving   ##root cause analysis   #decision making   #online facilitation   A process to help identify and understand the origins of problems, issues or observations.

12. Problem Tree 

Encouraging visual thinking can be an essential part of many strategies. By simply reframing and clarifying problems, a group can move towards developing a problem solving model that works for them. 

In Problem Tree, groups are asked to first brainstorm a list of problems – these can be design problems, team problems or larger business problems – and then organize them into a hierarchy. The hierarchy could be from most important to least important or abstract to practical, though the key thing with problem solving games that involve this aspect is that your group has some way of managing and sorting all the issues that are raised.

Once you have a list of problems that need to be solved and have organized them accordingly, you’re then well-positioned for the next problem solving steps.

Problem tree   #define intentions   #create   #design   #issue analysis   A problem tree is a tool to clarify the hierarchy of problems addressed by the team within a design project; it represents high level problems or related sublevel problems.

13. SWOT Analysis

Chances are you’ve heard of the SWOT Analysis before. This problem-solving method focuses on identifying strengths, weaknesses, opportunities, and threats is a tried and tested method for both individuals and teams.

Start by creating a desired end state or outcome and bare this in mind – any process solving model is made more effective by knowing what you are moving towards. Create a quadrant made up of the four categories of a SWOT analysis and ask participants to generate ideas based on each of those quadrants.

Once you have those ideas assembled in their quadrants, cluster them together based on their affinity with other ideas. These clusters are then used to facilitate group conversations and move things forward. 

SWOT analysis   #gamestorming   #problem solving   #action   #meeting facilitation   The SWOT Analysis is a long-standing technique of looking at what we have, with respect to the desired end state, as well as what we could improve on. It gives us an opportunity to gauge approaching opportunities and dangers, and assess the seriousness of the conditions that affect our future. When we understand those conditions, we can influence what comes next.

14. Agreement-Certainty Matrix

Not every problem-solving approach is right for every challenge, and deciding on the right method for the challenge at hand is a key part of being an effective team.

The Agreement Certainty matrix helps teams align on the nature of the challenges facing them. By sorting problems from simple to chaotic, your team can understand what methods are suitable for each problem and what they can do to ensure effective results. 

If you are already using Liberating Structures techniques as part of your problem-solving strategy, the Agreement-Certainty Matrix can be an invaluable addition to your process. We’ve found it particularly if you are having issues with recurring problems in your organization and want to go deeper in understanding the root cause. 

Agreement-Certainty Matrix   #issue analysis   #liberating structures   #problem solving   You can help individuals or groups avoid the frequent mistake of trying to solve a problem with methods that are not adapted to the nature of their challenge. The combination of two questions makes it possible to easily sort challenges into four categories: simple, complicated, complex , and chaotic .  A problem is simple when it can be solved reliably with practices that are easy to duplicate.  It is complicated when experts are required to devise a sophisticated solution that will yield the desired results predictably.  A problem is complex when there are several valid ways to proceed but outcomes are not predictable in detail.  Chaotic is when the context is too turbulent to identify a path forward.  A loose analogy may be used to describe these differences: simple is like following a recipe, complicated like sending a rocket to the moon, complex like raising a child, and chaotic is like the game “Pin the Tail on the Donkey.”  The Liberating Structures Matching Matrix in Chapter 5 can be used as the first step to clarify the nature of a challenge and avoid the mismatches between problems and solutions that are frequently at the root of chronic, recurring problems.

Organizing and charting a team’s progress can be important in ensuring its success. SQUID (Sequential Question and Insight Diagram) is a great model that allows a team to effectively switch between giving questions and answers and develop the skills they need to stay on track throughout the process. 

Begin with two different colored sticky notes – one for questions and one for answers – and with your central topic (the head of the squid) on the board. Ask the group to first come up with a series of questions connected to their best guess of how to approach the topic. Ask the group to come up with answers to those questions, fix them to the board and connect them with a line. After some discussion, go back to question mode by responding to the generated answers or other points on the board.

It’s rewarding to see a diagram grow throughout the exercise, and a completed SQUID can provide a visual resource for future effort and as an example for other teams.

SQUID   #gamestorming   #project planning   #issue analysis   #problem solving   When exploring an information space, it’s important for a group to know where they are at any given time. By using SQUID, a group charts out the territory as they go and can navigate accordingly. SQUID stands for Sequential Question and Insight Diagram.

16. Speed Boat

To continue with our nautical theme, Speed Boat is a short and sweet activity that can help a team quickly identify what employees, clients or service users might have a problem with and analyze what might be standing in the way of achieving a solution.

Methods that allow for a group to make observations, have insights and obtain those eureka moments quickly are invaluable when trying to solve complex problems.

In Speed Boat, the approach is to first consider what anchors and challenges might be holding an organization (or boat) back. Bonus points if you are able to identify any sharks in the water and develop ideas that can also deal with competitors!   

Speed Boat   #gamestorming   #problem solving   #action   Speedboat is a short and sweet way to identify what your employees or clients don’t like about your product/service or what’s standing in the way of a desired goal.

17. The Journalistic Six

Some of the most effective ways of solving problems is by encouraging teams to be more inclusive and diverse in their thinking.

Based on the six key questions journalism students are taught to answer in articles and news stories, The Journalistic Six helps create teams to see the whole picture. By using who, what, when, where, why, and how to facilitate the conversation and encourage creative thinking, your team can make sure that the problem identification and problem analysis stages of the are covered exhaustively and thoughtfully. Reporter’s notebook and dictaphone optional.

The Journalistic Six – Who What When Where Why How   #idea generation   #issue analysis   #problem solving   #online   #creative thinking   #remote-friendly   A questioning method for generating, explaining, investigating ideas.

18. LEGO Challenge

Now for an activity that is a little out of the (toy) box. LEGO Serious Play is a facilitation methodology that can be used to improve creative thinking and problem-solving skills. 

The LEGO Challenge includes giving each member of the team an assignment that is hidden from the rest of the group while they create a structure without speaking.

What the LEGO challenge brings to the table is a fun working example of working with stakeholders who might not be on the same page to solve problems. Also, it’s LEGO! Who doesn’t love LEGO! 

LEGO Challenge   #hyperisland   #team   A team-building activity in which groups must work together to build a structure out of LEGO, but each individual has a secret “assignment” which makes the collaborative process more challenging. It emphasizes group communication, leadership dynamics, conflict, cooperation, patience and problem solving strategy.

19. What, So What, Now What?

If not carefully managed, the problem identification and problem analysis stages of the problem-solving process can actually create more problems and misunderstandings.

The What, So What, Now What? problem-solving activity is designed to help collect insights and move forward while also eliminating the possibility of disagreement when it comes to identifying, clarifying, and analyzing organizational or work problems. 

Facilitation is all about bringing groups together so that might work on a shared goal and the best problem-solving strategies ensure that teams are aligned in purpose, if not initially in opinion or insight.

Throughout the three steps of this game, you give everyone on a team to reflect on a problem by asking what happened, why it is important, and what actions should then be taken. 

This can be a great activity for bringing our individual perceptions about a problem or challenge and contextualizing it in a larger group setting. This is one of the most important problem-solving skills you can bring to your organization.

W³ – What, So What, Now What?   #issue analysis   #innovation   #liberating structures   You can help groups reflect on a shared experience in a way that builds understanding and spurs coordinated action while avoiding unproductive conflict. It is possible for every voice to be heard while simultaneously sifting for insights and shaping new direction. Progressing in stages makes this practical—from collecting facts about What Happened to making sense of these facts with So What and finally to what actions logically follow with Now What . The shared progression eliminates most of the misunderstandings that otherwise fuel disagreements about what to do. Voila!

20. Journalists  

Problem analysis can be one of the most important and decisive stages of all problem-solving tools. Sometimes, a team can become bogged down in the details and are unable to move forward.

Journalists is an activity that can avoid a group from getting stuck in the problem identification or problem analysis stages of the process.

In Journalists, the group is invited to draft the front page of a fictional newspaper and figure out what stories deserve to be on the cover and what headlines those stories will have. By reframing how your problems and challenges are approached, you can help a team move productively through the process and be better prepared for the steps to follow.

Journalists   #vision   #big picture   #issue analysis   #remote-friendly   This is an exercise to use when the group gets stuck in details and struggles to see the big picture. Also good for defining a vision.

Problem-solving techniques for developing solutions 

The success of any problem-solving process can be measured by the solutions it produces. After you’ve defined the issue, explored existing ideas, and ideated, it’s time to narrow down to the correct solution.

Use these problem-solving techniques when you want to help your team find consensus, compare possible solutions, and move towards taking action on a particular problem.

  • Improved Solutions
  • Four-Step Sketch
  • 15% Solutions
  • How-Now-Wow matrix
  • Impact Effort Matrix

21. Mindspin  

Brainstorming is part of the bread and butter of the problem-solving process and all problem-solving strategies benefit from getting ideas out and challenging a team to generate solutions quickly. 

With Mindspin, participants are encouraged not only to generate ideas but to do so under time constraints and by slamming down cards and passing them on. By doing multiple rounds, your team can begin with a free generation of possible solutions before moving on to developing those solutions and encouraging further ideation. 

This is one of our favorite problem-solving activities and can be great for keeping the energy up throughout the workshop. Remember the importance of helping people become engaged in the process – energizing problem-solving techniques like Mindspin can help ensure your team stays engaged and happy, even when the problems they’re coming together to solve are complex. 

MindSpin   #teampedia   #idea generation   #problem solving   #action   A fast and loud method to enhance brainstorming within a team. Since this activity has more than round ideas that are repetitive can be ruled out leaving more creative and innovative answers to the challenge.

22. Improved Solutions

After a team has successfully identified a problem and come up with a few solutions, it can be tempting to call the work of the problem-solving process complete. That said, the first solution is not necessarily the best, and by including a further review and reflection activity into your problem-solving model, you can ensure your group reaches the best possible result. 

One of a number of problem-solving games from Thiagi Group, Improved Solutions helps you go the extra mile and develop suggested solutions with close consideration and peer review. By supporting the discussion of several problems at once and by shifting team roles throughout, this problem-solving technique is a dynamic way of finding the best solution. 

Improved Solutions   #creativity   #thiagi   #problem solving   #action   #team   You can improve any solution by objectively reviewing its strengths and weaknesses and making suitable adjustments. In this creativity framegame, you improve the solutions to several problems. To maintain objective detachment, you deal with a different problem during each of six rounds and assume different roles (problem owner, consultant, basher, booster, enhancer, and evaluator) during each round. At the conclusion of the activity, each player ends up with two solutions to her problem.

23. Four Step Sketch

Creative thinking and visual ideation does not need to be confined to the opening stages of your problem-solving strategies. Exercises that include sketching and prototyping on paper can be effective at the solution finding and development stage of the process, and can be great for keeping a team engaged. 

By going from simple notes to a crazy 8s round that involves rapidly sketching 8 variations on their ideas before then producing a final solution sketch, the group is able to iterate quickly and visually. Problem-solving techniques like Four-Step Sketch are great if you have a group of different thinkers and want to change things up from a more textual or discussion-based approach.

Four-Step Sketch   #design sprint   #innovation   #idea generation   #remote-friendly   The four-step sketch is an exercise that helps people to create well-formed concepts through a structured process that includes: Review key information Start design work on paper,  Consider multiple variations , Create a detailed solution . This exercise is preceded by a set of other activities allowing the group to clarify the challenge they want to solve. See how the Four Step Sketch exercise fits into a Design Sprint

24. 15% Solutions

Some problems are simpler than others and with the right problem-solving activities, you can empower people to take immediate actions that can help create organizational change. 

Part of the liberating structures toolkit, 15% solutions is a problem-solving technique that focuses on finding and implementing solutions quickly. A process of iterating and making small changes quickly can help generate momentum and an appetite for solving complex problems.

Problem-solving strategies can live and die on whether people are onboard. Getting some quick wins is a great way of getting people behind the process.   

It can be extremely empowering for a team to realize that problem-solving techniques can be deployed quickly and easily and delineate between things they can positively impact and those things they cannot change. 

15% Solutions   #action   #liberating structures   #remote-friendly   You can reveal the actions, however small, that everyone can do immediately. At a minimum, these will create momentum, and that may make a BIG difference.  15% Solutions show that there is no reason to wait around, feel powerless, or fearful. They help people pick it up a level. They get individuals and the group to focus on what is within their discretion instead of what they cannot change.  With a very simple question, you can flip the conversation to what can be done and find solutions to big problems that are often distributed widely in places not known in advance. Shifting a few grains of sand may trigger a landslide and change the whole landscape.

25. How-Now-Wow Matrix

The problem-solving process is often creative, as complex problems usually require a change of thinking and creative response in order to find the best solutions. While it’s common for the first stages to encourage creative thinking, groups can often gravitate to familiar solutions when it comes to the end of the process. 

When selecting solutions, you don’t want to lose your creative energy! The How-Now-Wow Matrix from Gamestorming is a great problem-solving activity that enables a group to stay creative and think out of the box when it comes to selecting the right solution for a given problem.

Problem-solving techniques that encourage creative thinking and the ideation and selection of new solutions can be the most effective in organisational change. Give the How-Now-Wow Matrix a go, and not just for how pleasant it is to say out loud. 

How-Now-Wow Matrix   #gamestorming   #idea generation   #remote-friendly   When people want to develop new ideas, they most often think out of the box in the brainstorming or divergent phase. However, when it comes to convergence, people often end up picking ideas that are most familiar to them. This is called a ‘creative paradox’ or a ‘creadox’. The How-Now-Wow matrix is an idea selection tool that breaks the creadox by forcing people to weigh each idea on 2 parameters.

26. Impact and Effort Matrix

All problem-solving techniques hope to not only find solutions to a given problem or challenge but to find the best solution. When it comes to finding a solution, groups are invited to put on their decision-making hats and really think about how a proposed idea would work in practice. 

The Impact and Effort Matrix is one of the problem-solving techniques that fall into this camp, empowering participants to first generate ideas and then categorize them into a 2×2 matrix based on impact and effort.

Activities that invite critical thinking while remaining simple are invaluable. Use the Impact and Effort Matrix to move from ideation and towards evaluating potential solutions before then committing to them. 

Impact and Effort Matrix   #gamestorming   #decision making   #action   #remote-friendly   In this decision-making exercise, possible actions are mapped based on two factors: effort required to implement and potential impact. Categorizing ideas along these lines is a useful technique in decision making, as it obliges contributors to balance and evaluate suggested actions before committing to them.

27. Dotmocracy

If you’ve followed each of the problem-solving steps with your group successfully, you should move towards the end of your process with heaps of possible solutions developed with a specific problem in mind. But how do you help a group go from ideation to putting a solution into action? 

Dotmocracy – or Dot Voting -is a tried and tested method of helping a team in the problem-solving process make decisions and put actions in place with a degree of oversight and consensus. 

One of the problem-solving techniques that should be in every facilitator’s toolbox, Dot Voting is fast and effective and can help identify the most popular and best solutions and help bring a group to a decision effectively. 

Dotmocracy   #action   #decision making   #group prioritization   #hyperisland   #remote-friendly   Dotmocracy is a simple method for group prioritization or decision-making. It is not an activity on its own, but a method to use in processes where prioritization or decision-making is the aim. The method supports a group to quickly see which options are most popular or relevant. The options or ideas are written on post-its and stuck up on a wall for the whole group to see. Each person votes for the options they think are the strongest, and that information is used to inform a decision.

All facilitators know that warm-ups and icebreakers are useful for any workshop or group process. Problem-solving workshops are no different.

Use these problem-solving techniques to warm up a group and prepare them for the rest of the process. Activating your group by tapping into some of the top problem-solving skills can be one of the best ways to see great outcomes from your session.

  • Check-in/Check-out
  • Doodling Together
  • Show and Tell
  • Constellations
  • Draw a Tree

28. Check-in / Check-out

Solid processes are planned from beginning to end, and the best facilitators know that setting the tone and establishing a safe, open environment can be integral to a successful problem-solving process.

Check-in / Check-out is a great way to begin and/or bookend a problem-solving workshop. Checking in to a session emphasizes that everyone will be seen, heard, and expected to contribute. 

If you are running a series of meetings, setting a consistent pattern of checking in and checking out can really help your team get into a groove. We recommend this opening-closing activity for small to medium-sized groups though it can work with large groups if they’re disciplined!

Check-in / Check-out   #team   #opening   #closing   #hyperisland   #remote-friendly   Either checking-in or checking-out is a simple way for a team to open or close a process, symbolically and in a collaborative way. Checking-in/out invites each member in a group to be present, seen and heard, and to express a reflection or a feeling. Checking-in emphasizes presence, focus and group commitment; checking-out emphasizes reflection and symbolic closure.

29. Doodling Together  

Thinking creatively and not being afraid to make suggestions are important problem-solving skills for any group or team, and warming up by encouraging these behaviors is a great way to start. 

Doodling Together is one of our favorite creative ice breaker games – it’s quick, effective, and fun and can make all following problem-solving steps easier by encouraging a group to collaborate visually. By passing cards and adding additional items as they go, the workshop group gets into a groove of co-creation and idea development that is crucial to finding solutions to problems. 

Doodling Together   #collaboration   #creativity   #teamwork   #fun   #team   #visual methods   #energiser   #icebreaker   #remote-friendly   Create wild, weird and often funny postcards together & establish a group’s creative confidence.

30. Show and Tell

You might remember some version of Show and Tell from being a kid in school and it’s a great problem-solving activity to kick off a session.

Asking participants to prepare a little something before a workshop by bringing an object for show and tell can help them warm up before the session has even begun! Games that include a physical object can also help encourage early engagement before moving onto more big-picture thinking.

By asking your participants to tell stories about why they chose to bring a particular item to the group, you can help teams see things from new perspectives and see both differences and similarities in the way they approach a topic. Great groundwork for approaching a problem-solving process as a team! 

Show and Tell   #gamestorming   #action   #opening   #meeting facilitation   Show and Tell taps into the power of metaphors to reveal players’ underlying assumptions and associations around a topic The aim of the game is to get a deeper understanding of stakeholders’ perspectives on anything—a new project, an organizational restructuring, a shift in the company’s vision or team dynamic.

31. Constellations

Who doesn’t love stars? Constellations is a great warm-up activity for any workshop as it gets people up off their feet, energized, and ready to engage in new ways with established topics. It’s also great for showing existing beliefs, biases, and patterns that can come into play as part of your session.

Using warm-up games that help build trust and connection while also allowing for non-verbal responses can be great for easing people into the problem-solving process and encouraging engagement from everyone in the group. Constellations is great in large spaces that allow for movement and is definitely a practical exercise to allow the group to see patterns that are otherwise invisible. 

Constellations   #trust   #connection   #opening   #coaching   #patterns   #system   Individuals express their response to a statement or idea by standing closer or further from a central object. Used with teams to reveal system, hidden patterns, perspectives.

32. Draw a Tree

Problem-solving games that help raise group awareness through a central, unifying metaphor can be effective ways to warm-up a group in any problem-solving model.

Draw a Tree is a simple warm-up activity you can use in any group and which can provide a quick jolt of energy. Start by asking your participants to draw a tree in just 45 seconds – they can choose whether it will be abstract or realistic. 

Once the timer is up, ask the group how many people included the roots of the tree and use this as a means to discuss how we can ignore important parts of any system simply because they are not visible.

All problem-solving strategies are made more effective by thinking of problems critically and by exposing things that may not normally come to light. Warm-up games like Draw a Tree are great in that they quickly demonstrate some key problem-solving skills in an accessible and effective way.

Draw a Tree   #thiagi   #opening   #perspectives   #remote-friendly   With this game you can raise awarness about being more mindful, and aware of the environment we live in.

Each step of the problem-solving workshop benefits from an intelligent deployment of activities, games, and techniques. Bringing your session to an effective close helps ensure that solutions are followed through on and that you also celebrate what has been achieved.

Here are some problem-solving activities you can use to effectively close a workshop or meeting and ensure the great work you’ve done can continue afterward.

  • One Breath Feedback
  • Who What When Matrix
  • Response Cards

How do I conclude a problem-solving process?

All good things must come to an end. With the bulk of the work done, it can be tempting to conclude your workshop swiftly and without a moment to debrief and align. This can be problematic in that it doesn’t allow your team to fully process the results or reflect on the process.

At the end of an effective session, your team will have gone through a process that, while productive, can be exhausting. It’s important to give your group a moment to take a breath, ensure that they are clear on future actions, and provide short feedback before leaving the space. 

The primary purpose of any problem-solving method is to generate solutions and then implement them. Be sure to take the opportunity to ensure everyone is aligned and ready to effectively implement the solutions you produced in the workshop.

Remember that every process can be improved and by giving a short moment to collect feedback in the session, you can further refine your problem-solving methods and see further success in the future too.

33. One Breath Feedback

Maintaining attention and focus during the closing stages of a problem-solving workshop can be tricky and so being concise when giving feedback can be important. It’s easy to incur “death by feedback” should some team members go on for too long sharing their perspectives in a quick feedback round. 

One Breath Feedback is a great closing activity for workshops. You give everyone an opportunity to provide feedback on what they’ve done but only in the space of a single breath. This keeps feedback short and to the point and means that everyone is encouraged to provide the most important piece of feedback to them. 

One breath feedback   #closing   #feedback   #action   This is a feedback round in just one breath that excels in maintaining attention: each participants is able to speak during just one breath … for most people that’s around 20 to 25 seconds … unless of course you’ve been a deep sea diver in which case you’ll be able to do it for longer.

34. Who What When Matrix 

Matrices feature as part of many effective problem-solving strategies and with good reason. They are easily recognizable, simple to use, and generate results.

The Who What When Matrix is a great tool to use when closing your problem-solving session by attributing a who, what and when to the actions and solutions you have decided upon. The resulting matrix is a simple, easy-to-follow way of ensuring your team can move forward. 

Great solutions can’t be enacted without action and ownership. Your problem-solving process should include a stage for allocating tasks to individuals or teams and creating a realistic timeframe for those solutions to be implemented or checked out. Use this method to keep the solution implementation process clear and simple for all involved. 

Who/What/When Matrix   #gamestorming   #action   #project planning   With Who/What/When matrix, you can connect people with clear actions they have defined and have committed to.

35. Response cards

Group discussion can comprise the bulk of most problem-solving activities and by the end of the process, you might find that your team is talked out! 

Providing a means for your team to give feedback with short written notes can ensure everyone is head and can contribute without the need to stand up and talk. Depending on the needs of the group, giving an alternative can help ensure everyone can contribute to your problem-solving model in the way that makes the most sense for them.

Response Cards is a great way to close a workshop if you are looking for a gentle warm-down and want to get some swift discussion around some of the feedback that is raised. 

Response Cards   #debriefing   #closing   #structured sharing   #questions and answers   #thiagi   #action   It can be hard to involve everyone during a closing of a session. Some might stay in the background or get unheard because of louder participants. However, with the use of Response Cards, everyone will be involved in providing feedback or clarify questions at the end of a session.

Save time and effort discovering the right solutions

A structured problem solving process is a surefire way of solving tough problems, discovering creative solutions and driving organizational change. But how can you design for successful outcomes?

With SessionLab, it’s easy to design engaging workshops that deliver results. Drag, drop and reorder blocks  to build your agenda. When you make changes or update your agenda, your session  timing   adjusts automatically , saving you time on manual adjustments.

Collaborating with stakeholders or clients? Share your agenda with a single click and collaborate in real-time. No more sending documents back and forth over email.

Explore  how to use SessionLab  to design effective problem solving workshops or  watch this five minute video  to see the planner in action!

the computer problem solving process requires

Over to you

The problem-solving process can often be as complicated and multifaceted as the problems they are set-up to solve. With the right problem-solving techniques and a mix of creative exercises designed to guide discussion and generate purposeful ideas, we hope we’ve given you the tools to find the best solutions as simply and easily as possible.

Is there a problem-solving technique that you are missing here? Do you have a favorite activity or method you use when facilitating? Let us know in the comments below, we’d love to hear from you! 

' src=

thank you very much for these excellent techniques

' src=

Certainly wonderful article, very detailed. Shared!

' src=

Your list of techniques for problem solving can be helpfully extended by adding TRIZ to the list of techniques. TRIZ has 40 problem solving techniques derived from methods inventros and patent holders used to get new patents. About 10-12 are general approaches. many organization sponsor classes in TRIZ that are used to solve business problems or general organiztational problems. You can take a look at TRIZ and dwonload a free internet booklet to see if you feel it shound be included per your selection process.

Leave a Comment Cancel reply

Your email address will not be published. Required fields are marked *

cycle of workshop planning steps

Going from a mere idea to a workshop that delivers results for your clients can feel like a daunting task. In this piece, we will shine a light on all the work behind the scenes and help you learn how to plan a workshop from start to finish. On a good day, facilitation can feel like effortless magic, but that is mostly the result of backstage work, foresight, and a lot of careful planning. Read on to learn a step-by-step approach to breaking the process of planning a workshop into small, manageable chunks.  The flow starts with the first meeting with a client to define the purposes of a workshop.…

the computer problem solving process requires

How does learning work? A clever 9-year-old once told me: “I know I am learning something new when I am surprised.” The science of adult learning tells us that, in order to learn new skills (which, unsurprisingly, is harder for adults to do than kids) grown-ups need to first get into a specific headspace.  In a business, this approach is often employed in a training session where employees learn new skills or work on professional development. But how do you ensure your training is effective? In this guide, we'll explore how to create an effective training session plan and run engaging training sessions. As team leader, project manager, or consultant,…

the computer problem solving process requires

Effective online tools are a necessity for smooth and engaging virtual workshops and meetings. But how do you choose the right ones? Do you sometimes feel that the good old pen and paper or MS Office toolkit and email leaves you struggling to stay on top of managing and delivering your workshop? Fortunately, there are plenty of online tools to make your life easier when you need to facilitate a meeting and lead workshops. In this post, we’ll share our favorite online tools you can use to make your job as a facilitator easier. In fact, there are plenty of free online workshop tools and meeting facilitation software you can…

Design your next workshop with SessionLab

Join the 150,000 facilitators using SessionLab

Sign up for free

Six Steps to Develop an Effective Problem-Solving Process

by Rawzaba Alhalabi Published on November 1, 2017

Problem-solving involves thought and understanding. Although it may appear simple, identifying a problem may be a challenging process.

“Problems are only opportunities in work clothes”, says American industrialist Henry Kaiser. According to Concise Oxford Dictionary (1995), a problem is “ doubtful or difficult matter requiring a solution” and “something hard to understand or accomplish or deal with.” Such situations are at the center of what many people do at work every day.

Whether to help a client solve a problem, support a problem-solver, or to discover new problems, problem-solving is a crucial element to the workplace ingredients. Everyone can benefit from effective problem-solving skills that would make people happier. Everyone wins. Hence, this approach is a critical element but how can you do it effectively? You need to find a solution, but not right away. People tend to put the solution at the beginning of the process but they actually needed it at the end of the process.

Here are six steps to an effective problem-solving process:

Identify the issues, understand everyone’s interests, list the possible solutions, make a decision, implement the solution.

By following the whole process, you will be able to enhance your problem-solving skills and increase your patience. Keep in mind that effective problem solving does take some time and attention. You have to always be ready to hit the brakes and slow down. A problem is like a bump road. Take it right and you’ll find yourself in good shape for the straightaway that follows. Take it too fast and you may not be in as good shape.

Case study 1:

According to Real Time Economics, there are industries that have genuinely evolved, with more roles for people with analytical and problem-solving skills. In healthcare, for example, a regulatory change requiring the digitization of health records has led to greater demand for medical records technicians. Technological change in the manufacturing industry has reduced routine factory jobs while demanding more skilled workers who can operate complex machinery.

Case study 2:

Yolanda was having a hard time dealing with difficult clients and dealing with her team at the office, so she decided to take a problem-solving course. “I was very pleased with the 2-day Problem Solving program at RSM.  It is an excellent investment for anyone involved in the strategic decision-making process—be it in their own company or as a consultant charged with supporting organizations facing strategic challenges.“

Yolanda Barreros Gutiérrez, B&C Consulting

As a response to the COVID-19 outbreak, Potential.com is offering individuals free access to our future skills library (20+ Courses) to support you during the COVID outbreak. It’s your chance to learn essential skills to help you prepare for future jobs. Register now for free using your details and coupon code: potentialreader .

Click here to register (coupon embedded) .

Having read this I believed it was extremely enlightening. I appreciate you taking the time and energy to put tis informative article together. I onc again findd myself spending a significant amount of time both reading and leavfing comments. But so what, it was still worth it!

Leave a Reply Cancel reply

Your email address will not be published. Required fields are marked *

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

Subscribe to our newsletter

COMMENTS

  1. How to Troubleshoot Basic Computer Problems to Fix Your Computer

    Unplug the faulty device from your computer, then plug it back in (to another port, if you can). Go to your Control Panel and change your settings (start with "Ease of Access"). Clean the faulty device (taking it apart if you need to), or get it repaired or replaced. 8.

  2. Computational Thinking for Problem Solving

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

  3. PDF First Four Steps: Problem Definition

    CS@VT Intro Problem Solving in Computer Science ©2012 McQuain 1. Collect and analyzeinformation and data. - List every releventthing you can think of. - Fill in missing gaps. 2. Talk with people familiar with the problem. - Look past the obvious. - Get clarifications when you don't understand. 3. If at all possible, view the problem ...

  4. Troubleshooting Methodology

    This troubleshooting process has been constructed over the years based on experience, and it serves as a guide for newer members of the IT community when problem-solving. Here is the CompTIA troubleshooting methodology: Identify the problem. Establish a theory of probable cause. Test the theory to determine the cause.

  5. The Problem Solving Cycle in Computer Science: A Complete Guide

    It requires careful examination of the problem statement and any constraints or limitations that may affect the solution. ... Documenting the problem-solving process in computer science is an essential step to ensure that the cycle is repeated successfully. The process involves gathering information, analyzing the problem, and designing a solution.

  6. Exploring Computational Thinking

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

  7. Problem-Solving Strategies

    Abstract. Problem-solving is generally considered as one of the most important and challenging cognitive activities in everyday as well as in any professional contexts. Specifically, it is one of the central activities performed by computer scientists as well as by computer science learners. However, it is not a uniform or linear process that ...

  8. PDF Computer Programming Problem Solving Process

    Example problem: Step 1 - Identify the problem that must be solved. The first step is to identify the problem that needs to be solved. In this example, the largest number in the list must be found and displayed. Step 2 - Understand what the problem presents. The problem presents a list of numbers.

  9. Computer Basics: Basic Troubleshooting Techniques

    Restart the computer: When all else fails, restarting the computer is a good thing to try. This can solve a lot of basic issues you may experience with your computer. Using the process of elimination. If you're having an issue with your computer, you may be able to find out what's wrong using the process of elimination.This means you'll make a list of things that could be causing the problem ...

  10. Problem solving

    Problem solving is the process of achieving a goal by overcoming obstacles, a frequent part of most activities. Problems in need of solutions range from simple personal tasks (e.g. how to turn on an appliance) to complex issues in business and technical fields. The former is an example of simple problem solving (SPS) addressing one issue ...

  11. Sysadmin careers: The 5 steps of problem solving

    The five steps of problem-solving. There are five basic steps that are involved in the problem-solving process, as shown in Figure 1. This algorithm is very similar to that of the scientific method but is specifically intended for solving technical problems. Figure 1: The five steps of problem-solving.

  12. CompTIA troubleshooting steps and solving common computer ...

    Step 3. Establish a theory of probable cause. Eliminate the simple and obvious possible causes. Consider factors that can indirectly cause problems. Step 4. Test the theory. Change and test only one potential solution at a time. Determine the root cause of the issue. Escalate the issue to a professional if necessary.

  13. Computer-Based Problem Solving Process

    Problem solving with computers has, in consequence, become more demanding; instead of focusing on the problem when conceptualizing strategies to solve them, users are side-tracked by the pursuit of even more programming tools (as available). Computer-Based Problem Solving Process is a work intended to offer a systematic treatment to the theory ...

  14. Computer-based Problem Solving Process

    Computer-based Problem Solving Process. Teodor Rus. World Scientific, Mar 19, 2015 - Computers - 368 pages. One side-effect of having made great leaps in computing over the last few decades, is the resulting over-abundance in software tools created to solve the diverse problems. Problem solving with computers has, in consequence, become more ...

  15. What is computer programming, exactly? A techie's guide

    Programming, also known as coding, refers to the process of writing instructions for computing devices and systems. A computer program translates those instructions into a language that computers ...

  16. The Problem-Solving Process

    Problem-solving is a mental process that involves discovering, analyzing, and solving problems. The ultimate goal of problem-solving is to overcome obstacles and find a solution that best resolves the issue. The best strategy for solving a problem depends largely on the unique situation. In some cases, people are better off learning everything ...

  17. PDF Problem Solving UNIT 1 PROBLEM SOLVING

    Problem-solving skills are recognized as an integral component of computer programming. It is a demand and intricate process which is equally important throughout the project life cycle especially - study, designing, development, testing and implementation stages. The computer problem solving process requires: • Problem anticipation

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

    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.

  19. The Art of Effective Problem Solving: A Step-by-Step Guide

    Table of Contents. Problem Solving Methodologies. A3 Problem Solving Method: Step 1 - Define the Problem. Step 2 - Gather Information and Brainstorm Ideas. Step 3 - Evaluate Options and Choose the Best Solution. Step 4 - Implement and Monitor the Solution. Conclusion.

  20. PDF Computer Integration within Problem Solving Process

    The computer based problem solving methodology provided by the creators of the original computer consists of: • Formulate the problem; • Develop a solution algorithm; • Encode the algorithm and its data into a program; • Let the computer execute the program; • Decode the result and extract the solution.

  21. 35 problem-solving techniques and methods for solving complex problems

    The problem-solving process is often creative, as complex problems usually require a change of thinking and creative response in order to find the best solutions. While it's common for the first stages to encourage creative thinking, groups can often gravitate to familiar solutions when it comes to the end of the process.

  22. Problem-Solving Process in 6 Steps

    Here are six steps to an effective problem-solving process: Identify the issues. The first phase of problem-solving requires thought and analysis. Problem identification may sound clear, but it actually can be a difficult task. So you should spend some time to define the problem and know people's different views on the issue.