• Python Programming
  • C Programming
  • Numerical Methods
  • Dart Language
  • Computer Basics
  • Deep Learning
  • C Programming Examples
  • Python Programming Examples

Problem Solving Using Computer (Steps)

Computer based problem solving is a systematic process of designing, implementing and using programming tools during the problem solving stage. This method enables the computer system to be more intuitive with human logic than machine logic. Final outcome of this process is software tools which is dedicated to solve the problem under consideration. Software is just a collection of computer programs and programs are a set of instructions which guides computer’s hardware. These instructions need to be well specified for solving the problem. After its creation, the software should be error free and well documented. Software development is the process of creating such software, which satisfies end user’s requirements and needs.

The following six steps must be followed to solve a problem using computer.

  • Problem Analysis
  • Program Design - Algorithm, Flowchart and Pseudocode
  • Compilation and Execution
  • Debugging and Testing
  • Program Documentation
  • Skip to content
  • Select language
  • Skip to search

The web browser you are using is out of date, please upgrade .

Please use a modern web browser with JavaScript enabled to visit OpenClassrooms.com

Think like a computer: the logic of programming

Free online content available in this course.

course.header.alt.is_video

course.header.alt.is_certifying

Last updated on 6/15/21

Discover how computers solve problems

Have you ever wondered how a computer solves a problem?  As humans, we learn problem-solving by watching others and through trial and error.  What makes a smart car smart? What is artificial intelligence and what makes it artificial?

Computers can’t actually think, but they can perform billions of logical operations per second. These logical operations are written by us and provide the computer with the instructions needed to perform the problem-solving.  This means you need to think like a computer and translate what you need it to do into program instructions it understands.

Solving a problem like a computer

Computers are basically toddlers. You have to explain everything to them. Take the simple task of watering flowers.  What tools do you need? What steps do you need?

Pick up a watering can by the handle.

Go to the faucet.

Put the opening of the watering can under the faucet.

Turn on the faucet.

Fill the watering can with water.

Turn off the faucet.

Go to your garden.

Tilt the spout of the watering can downwards.

Pour the water on your flowers.

This looks deceptively simple.  However, if you forget to tell your toddler...er...computer to pick up the watering can by the handle, it may try to pick it up by the spout.  If you don’t tell it to turn the faucet on, it will just sit there, staring at it. And if you don’t tell it to turn it off, it might just let the water run. 🚰 You can see where this is going.

Toddler watering flowers

Computers can’t make assumptions or guess what you want .  If you tell a computer to dust the furniture, it will actually put dust on your furniture, instead of removing it!  It can’t read context clues, so it will take all of your instructions literally. This is why it’s important to think through all the logical gaps in your instructions!

Try it out for yourself!

Write out the steps to making a cup of coffee or tea.  Write down everything that needs to be done. If you use milk or cream, don’t forget to say how to find it!  Once you’re done, test your instructions out on a friend. Tell them to follow the directions exactly.  Have you missed anything?

Computers can solve problems by performing billions of operations per second .

A programmer’s job is to find solutions . They do this by breaking down problems into easy-to-follow steps for a computer.

Programming languages allow people to communicate with computers.

Computers are literal and do exactly what you tell them to.

Example of certificate of achievement

Only Premium members can download videos from our courses. However, you can watch them online for free.

  • Problem Solving
  • Steps in Problem Solving
  • Edit on GitHub

Steps in Problem Solving ¶

There are many ways to solve a problem but having a process to follow can help make problem solving easier. If you do not think through a problem logically, then you end up just going around in circles and never solving it. The following is just one of many Six Step Problem Solving Systems , which can be used to solve any type of problem, not just ones that will be solved on a computer. The good thing is that the system translates nicely to computer problems, which is very useful, since the focus of the book is to solve problems on a computer.

The six steps in this system are:

What is the problem

Make a model

Analyze the model

Find the solution

Check the solution

Document the solution

What is the Problem ¶

Before you can solve a problem correctly, you have to ensure that you understand the problem thoroughly. Many times you will have to go back to the source of the problem and confirm information or ask additional questions. You might have to have them restate the problem so that it is very clear what they are asking. Here are things to remember:

What am I trying to find?

What do I know / don’t know?

State the problem in your own words.

Get them to restate the problem.

Make a Model ¶

Making a model of a problem is a great way to see what is really going on and to lead you to a solution. It can show you patterns or you might recognize the problem from before. The model might be a drawing, picture, chart, a physical 3D scale model, or something else. Most “good” problems are too complex to be solved simply, they need to be broken down into smaller pieces, solve each of the smaller pieces and then bring all the small solutions back together to solve the original problem. Here are things to remember:

Draw or create a model.

Break the problem down into pieces.

Is there a pattern?

Have you seen something similar?

Analyze the Model ¶

Once you have broken the problem down into more manageable pieces and made a model of the problem or the pieces of the problem, the next step is to understand what is really going on. If you do not become an expert at the problem, you might miss an important aspect. It is always a good idea to go back, not to the person that asked the question but the person that will be using the solution, to get information from them. Each piece might have a pattern that can be followed. You might have seen a solution for one of the pieces before. Here are things to remember:

Ensure the model does what you think it does.

Look for patterns you have seen before.

Go back to the user to get more information.

Find the Solution ¶

The hard part is now to find a solution. Hopefully you are well on your way by doing the above three steps. Can you find a pattern? Do you know the solution to one of the pieces? Can you find the solution somewhere (internet!)? In the world of programming there are books like, Patterns and Practices , that are full of common problems and their solutions. Once you have all your solutions, the next step is to bring them all together to a final overall solution to the original problem. Here are things to remember:

Find a solution to each piece of the problem.

Find other people’s solutions to similar problems.

Make sure all the pieces fit back together.

Check the Solution ¶

You now (hopefully) have a solution to the original problem that you are pretty sure works. The next step is to ensure it actually solves exactly what the problem was. You might need to go through, step by step, to ensure it works. You might need to work through the solution and confirm the answer you get is correct. You might have to work through the solution several times and ensure you always get the same (or similar) answer. Here are things to remember:

Is the answer reasonable?

Work through the solution and check for errors.

Go through the solution several times and compare results.

Document the Solution ¶

So you have come up with a brilliant solution to a problem. If you do not share the solution with anyone, what was the point? You have to ensure that your answer is verifiable and reproducible, so anyone can use it. Here are things to remember:

Document what the problem and solution is.

Ensure anyone can follow your steps.

  • 1. Micro-Worlds
  • 2. Light-Bot in Java
  • 3. Jeroos of Santong Island
  • 4. Problem Solving and Algorithms
  • 5. Creating Jeroo Methods
  • 6. Conditionally Executing Actions
  • 7. Repeating Actions
  • 8. Handling Touch Events
  • 9. Adding Text to the Screen

Problem Solving and Algorithms

Learn a basic process for developing a solution to a problem. Nothing in this chapter is unique to using a computer to solve a problem. This process can be used to solve a wide variety of problems, including ones that have nothing to do with computers.

Problems, Solutions, and Tools

I have a problem! I need to thank Aunt Kay for the birthday present she sent me. I could send a thank you note through the mail. I could call her on the telephone. I could send her an email message. I could drive to her house and thank her in person. In fact, there are many ways I could thank her, but that's not the point. The point is that I must decide how I want to solve the problem, and use the appropriate tool to implement (carry out) my plan. The postal service, the telephone, the internet, and my automobile are tools that I can use, but none of these actually solves my problem. In a similar way, a computer does not solve problems, it's just a tool that I can use to implement my plan for solving the problem.

Knowing that Aunt Kay appreciates creative and unusual things, I have decided to hire a singing messenger to deliver my thanks. In this context, the messenger is a tool, but one that needs instructions from me. I have to tell the messenger where Aunt Kay lives, what time I would like the message to be delivered, and what lyrics I want sung. A computer program is similar to my instructions to the messenger.

The story of Aunt Kay uses a familiar context to set the stage for a useful point of view concerning computers and computer programs. The following list summarizes the key aspects of this point of view.

A computer is a tool that can be used to implement a plan for solving a problem.

A computer program is a set of instructions for a computer. These instructions describe the steps that the computer must follow to implement a plan.

An algorithm is a plan for solving a problem.

A person must design an algorithm.

A person must translate an algorithm into a computer program.

This point of view sets the stage for a process that we will use to develop solutions to Jeroo problems. The basic process is important because it can be used to solve a wide variety of problems, including ones where the solution will be written in some other programming language.

An Algorithm Development Process

Every problem solution starts with a plan. That plan is called an algorithm.

There are many ways to write an algorithm. Some are very informal, some are quite formal and mathematical in nature, and some are quite graphical. The instructions for connecting a DVD player to a television are an algorithm. A mathematical formula such as πR 2 is a special case of an algorithm. The form is not particularly important as long as it provides a good way to describe and check the logic of the plan.

The development of an algorithm (a plan) is a key step in solving a problem. Once we have an algorithm, we can translate it into a computer program in some programming language. Our algorithm development process consists of five major steps.

Step 1: Obtain a description of the problem.

Step 2: analyze the problem., step 3: develop a high-level algorithm., step 4: refine the algorithm by adding more detail., step 5: review the algorithm..

This step is much more difficult than it appears. In the following discussion, the word client refers to someone who wants to find a solution to a problem, and the word developer refers to someone who finds a way to solve the problem. The developer must create an algorithm that will solve the client's problem.

The client is responsible for creating a description of the problem, but this is often the weakest part of the process. It's quite common for a problem description to suffer from one or more of the following types of defects: (1) the description relies on unstated assumptions, (2) the description is ambiguous, (3) the description is incomplete, or (4) the description has internal contradictions. These defects are seldom due to carelessness by the client. Instead, they are due to the fact that natural languages (English, French, Korean, etc.) are rather imprecise. Part of the developer's responsibility is to identify defects in the description of a problem, and to work with the client to remedy those defects.

The purpose of this step is to determine both the starting and ending points for solving the problem. This process is analogous to a mathematician determining what is given and what must be proven. A good problem description makes it easier to perform this step.

When determining the starting point, we should start by seeking answers to the following questions:

What data are available?

Where is that data?

What formulas pertain to the problem?

What rules exist for working with the data?

What relationships exist among the data values?

When determining the ending point, we need to describe the characteristics of a solution. In other words, how will we know when we're done? Asking the following questions often helps to determine the ending point.

What new facts will we have?

What items will have changed?

What changes will have been made to those items?

What things will no longer exist?

An algorithm is a plan for solving a problem, but plans come in several levels of detail. It's usually better to start with a high-level algorithm that includes the major part of a solution, but leaves the details until later. We can use an everyday example to demonstrate a high-level algorithm.

Problem: I need a send a birthday card to my brother, Mark.

Analysis: I don't have a card. I prefer to buy a card rather than make one myself.

High-level algorithm:

Go to a store that sells greeting cards Select a card Purchase a card Mail the card

This algorithm is satisfactory for daily use, but it lacks details that would have to be added were a computer to carry out the solution. These details include answers to questions such as the following.

"Which store will I visit?"

"How will I get there: walk, drive, ride my bicycle, take the bus?"

"What kind of card does Mark like: humorous, sentimental, risqué?"

These kinds of details are considered in the next step of our process.

A high-level algorithm shows the major steps that need to be followed to solve a problem. Now we need to add details to these steps, but how much detail should we add? Unfortunately, the answer to this question depends on the situation. We have to consider who (or what) is going to implement the algorithm and how much that person (or thing) already knows how to do. If someone is going to purchase Mark's birthday card on my behalf, my instructions have to be adapted to whether or not that person is familiar with the stores in the community and how well the purchaser known my brother's taste in greeting cards.

When our goal is to develop algorithms that will lead to computer programs, we need to consider the capabilities of the computer and provide enough detail so that someone else could use our algorithm to write a computer program that follows the steps in our algorithm. As with the birthday card problem, we need to adjust the level of detail to match the ability of the programmer. When in doubt, or when you are learning, it is better to have too much detail than to have too little.

Most of our examples will move from a high-level to a detailed algorithm in a single step, but this is not always reasonable. For larger, more complex problems, it is common to go through this process several times, developing intermediate level algorithms as we go. Each time, we add more detail to the previous algorithm, stopping when we see no benefit to further refinement. This technique of gradually working from a high-level to a detailed algorithm is often called stepwise refinement .

The final step is to review the algorithm. What are we looking for? First, we need to work through the algorithm step by step to determine whether or not it will solve the original problem. Once we are satisfied that the algorithm does provide a solution to the problem, we start to look for other things. The following questions are typical of ones that should be asked whenever we review an algorithm. Asking these questions and seeking their answers is a good way to develop skills that can be applied to the next problem.

Does this algorithm solve a very specific problem or does it solve a more general problem ? If it solves a very specific problem, should it be generalized?

For example, an algorithm that computes the area of a circle having radius 5.2 meters (formula π*5.2 2 ) solves a very specific problem, but an algorithm that computes the area of any circle (formula π*R 2 ) solves a more general problem.

Can this algorithm be simplified ?

One formula for computing the perimeter of a rectangle is:

length + width + length + width

A simpler formula would be:

2.0 * ( length + width )

Is this solution similar to the solution to another problem? How are they alike? How are they different?

For example, consider the following two formulae:

Rectangle area = length * width Triangle area = 0.5 * base * height

Similarities: Each computes an area. Each multiplies two measurements.

Differences: Different measurements are used. The triangle formula contains 0.5.

Hypothesis: Perhaps every area formula involves multiplying two measurements.

Example 4.1: Pick and Plant

This section contains an extended example that demonstrates the algorithm development process. To complete the algorithm, we need to know that every Jeroo can hop forward, turn left and right, pick a flower from its current location, and plant a flower at its current location.

Problem Statement (Step 1)

A Jeroo starts at (0, 0) facing East with no flowers in its pouch. There is a flower at location (3, 0). Write a program that directs the Jeroo to pick the flower and plant it at location (3, 2). After planting the flower, the Jeroo should hop one space East and stop. There are no other nets, flowers, or Jeroos on the island.

StartFinish

Analysis of the Problem (Step 2)

The flower is exactly three spaces ahead of the jeroo.

The flower is to be planted exactly two spaces South of its current location.

The Jeroo is to finish facing East one space East of the planted flower.

There are no nets to worry about.

High-level Algorithm (Step 3)

Let's name the Jeroo Bobby. Bobby should do the following:

Get the flower Put the flower Hop East

Detailed Algorithm (Step 4)

Get the flower Hop 3 times Pick the flower Put the flower Turn right Hop 2 times Plant a flower Hop East Turn left Hop once

Review the Algorithm (Step 5)

The high-level algorithm partitioned the problem into three rather easy subproblems. This seems like a good technique.

This algorithm solves a very specific problem because the Jeroo and the flower are in very specific locations.

This algorithm is actually a solution to a slightly more general problem in which the Jeroo starts anywhere, and the flower is 3 spaces directly ahead of the Jeroo.

Java Code for "Pick and Plant"

A good programmer doesn't write a program all at once. Instead, the programmer will write and test the program in a series of builds. Each build adds to the previous one. The high-level algorithm will guide us in this process.

FIRST BUILD

To see this solution in action, create a new Greenfoot4Sofia scenario and use the Edit Palettes Jeroo menu command to make the Jeroo classes visible. Right-click on the Island class and create a new subclass with the name of your choice. This subclass will hold your new code.

The recommended first build contains three things:

The main method (here myProgram() in your island subclass).

Declaration and instantiation of every Jeroo that will be used.

The high-level algorithm in the form of comments.

The instantiation at the beginning of myProgram() places bobby at (0, 0), facing East, with no flowers.

Once the first build is working correctly, we can proceed to the others. In this case, each build will correspond to one step in the high-level algorithm. It may seem like a lot of work to use four builds for such a simple program, but doing so helps establish habits that will become invaluable as the programs become more complex.

SECOND BUILD

This build adds the logic to "get the flower", which in the detailed algorithm (step 4 above) consists of hopping 3 times and then picking the flower. The new code is indicated by comments that wouldn't appear in the original (they are just here to call attention to the additions). The blank lines help show the organization of the logic.

By taking a moment to run the work so far, you can confirm whether or not this step in the planned algorithm works as expected.

THIRD BUILD

This build adds the logic to "put the flower". New code is indicated by the comments that are provided here to mark the additions.

FOURTH BUILD (final)

Example 4.2: replace net with flower.

This section contains a second example that demonstrates the algorithm development process.

There are two Jeroos. One Jeroo starts at (0, 0) facing North with one flower in its pouch. The second starts at (0, 2) facing East with one flower in its pouch. There is a net at location (3, 2). Write a program that directs the first Jeroo to give its flower to the second one. After receiving the flower, the second Jeroo must disable the net, and plant a flower in its place. After planting the flower, the Jeroo must turn and face South. There are no other nets, flowers, or Jeroos on the island.

Jeroo_2 is exactly two spaces behind Jeroo_1.

The only net is exactly three spaces ahead of Jeroo_2.

Each Jeroo has exactly one flower.

Jeroo_2 will have two flowers after receiving one from Jeroo_1. One flower must be used to disable the net. The other flower must be planted at the location of the net, i.e. (3, 2).

Jeroo_1 will finish at (0, 1) facing South.

Jeroo_2 is to finish at (3, 2) facing South.

Each Jeroo will finish with 0 flowers in its pouch. One flower was used to disable the net, and the other was planted.

Let's name the first Jeroo Ann and the second one Andy.

Ann should do the following: Find Andy (but don't collide with him) Give a flower to Andy (he will be straight ahead) After receiving the flower, Andy should do the following: Find the net (but don't hop onto it) Disable the net Plant a flower at the location of the net Face South
Ann should do the following: Find Andy Turn around (either left or right twice) Hop (to location (0, 1)) Give a flower to Andy Give ahead Now Andy should do the following: Find the net Hop twice (to location (2, 2)) Disable the net Toss Plant a flower at the location of the net Hop (to location (3, 2)) Plant a flower Face South Turn right

The high-level algorithm helps manage the details.

This algorithm solves a very specific problem, but the specific locations are not important. The only thing that is important is the starting location of the Jeroos relative to one another and the location of the net relative to the second Jeroo's location and direction.

Java Code for "Replace Net with Flower"

As before, the code should be written incrementally as a series of builds. Four builds will be suitable for this problem. As usual, the first build will contain the main method, the declaration and instantiation of the Jeroo objects, and the high-level algorithm in the form of comments. The second build will have Ann give her flower to Andy. The third build will have Andy locate and disable the net. In the final build, Andy will place the flower and turn East.

This build creates the main method, instantiates the Jeroos, and outlines the high-level algorithm. In this example, the main method would be myProgram() contained within a subclass of Island .

This build adds the logic for Ann to locate Andy and give him a flower.

This build adds the logic for Andy to locate and disable the net.

This build adds the logic for Andy to place a flower at (3, 2) and turn South.

How to think like a programmer — lessons in problem solving

freeCodeCamp

By Richard Reis

If you’re interested in programming, you may well have seen this quote before:

“Everyone in this country should learn to program a computer, because it teaches you to think.” — Steve Jobs

You probably also wondered what does it mean, exactly, to think like a programmer? And how do you do it??

Essentially, it’s all about a more effective way for problem solving .

In this post, my goal is to teach you that way.

By the end of it, you’ll know exactly what steps to take to be a better problem-solver.

Why is this important?

Problem solving is the meta-skill.

We all have problems. Big and small. How we deal with them is sometimes, well…pretty random.

Unless you have a system, this is probably how you “solve” problems (which is what I did when I started coding):

  • Try a solution.
  • If that doesn’t work, try another one.
  • If that doesn’t work, repeat step 2 until you luck out.

Look, sometimes you luck out. But that is the worst way to solve problems! And it’s a huge, huge waste of time.

The best way involves a) having a framework and b) practicing it.

“Almost all employers prioritize problem-solving skills first. Problem-solving skills are almost unanimously the most important qualification that employers look for….more than programming languages proficiency, debugging, and system design. Demonstrating computational thinking or the ability to break down large, complex problems is just as valuable (if not more so) than the baseline technical skills required for a job.” — Hacker Rank ( 2018 Developer Skills Report )

Have a framework

To find the right framework, I followed the advice in Tim Ferriss’ book on learning, “ The 4-Hour Chef ”.

It led me to interview two really impressive people: C. Jordan Ball (ranked 1st or 2nd out of 65,000+ users on Coderbyte ), and V. Anton Spraul (author of the book “ Think Like a Programmer: An Introduction to Creative Problem Solving ”).

I asked them the same questions, and guess what? Their answers were pretty similar!

Soon, you too will know them.

Sidenote: this doesn’t mean they did everything the same way. Everyone is different. You’ll be different. But if you start with principles we all agree are good, you’ll get a lot further a lot quicker.

“The biggest mistake I see new programmers make is focusing on learning syntax instead of learning how to solve problems.” — V. Anton Spraul

So, what should you do when you encounter a new problem?

Here are the steps:

1. Understand

Know exactly what is being asked. Most hard problems are hard because you don’t understand them (hence why this is the first step).

How to know when you understand a problem? When you can explain it in plain English.

Do you remember being stuck on a problem, you start explaining it, and you instantly see holes in the logic you didn’t see before?

Most programmers know this feeling.

This is why you should write down your problem, doodle a diagram, or tell someone else about it (or thing… some people use a rubber duck ).

“If you can’t explain something in simple terms, you don’t understand it.” — Richard Feynman

Don’t dive right into solving without a plan (and somehow hope you can muddle your way through). Plan your solution!

Nothing can help you if you can’t write down the exact steps.

In programming, this means don’t start hacking straight away. Give your brain time to analyze the problem and process the information.

To get a good plan, answer this question:

“Given input X, what are the steps necessary to return output Y?”

Sidenote: Programmers have a great tool to help them with this… Comments!

Pay attention. This is the most important step of all.

Do not try to solve one big problem. You will cry.

Instead, break it into sub-problems. These sub-problems are much easier to solve.

Then, solve each sub-problem one by one. Begin with the simplest. Simplest means you know the answer (or are closer to that answer).

After that, simplest means this sub-problem being solved doesn’t depend on others being solved.

Once you solved every sub-problem, connect the dots.

Connecting all your “sub-solutions” will give you the solution to the original problem. Congratulations!

This technique is a cornerstone of problem-solving. Remember it (read this step again, if you must).

“If I could teach every beginning programmer one problem-solving skill, it would be the ‘reduce the problem technique.’ For example, suppose you’re a new programmer and you’re asked to write a program that reads ten numbers and figures out which number is the third highest. For a brand-new programmer, that can be a tough assignment, even though it only requires basic programming syntax. If you’re stuck, you should reduce the problem to something simpler. Instead of the third-highest number, what about finding the highest overall? Still too tough? What about finding the largest of just three numbers? Or the larger of two? Reduce the problem to the point where you know how to solve it and write the solution. Then expand the problem slightly and rewrite the solution to match, and keep going until you are back where you started.” — V. Anton Spraul

By now, you’re probably sitting there thinking “Hey Richard... That’s cool and all, but what if I’m stuck and can’t even solve a sub-problem??”

First off, take a deep breath. Second, that’s fair.

Don’t worry though, friend. This happens to everyone!

The difference is the best programmers/problem-solvers are more curious about bugs/errors than irritated.

In fact, here are three things to try when facing a whammy:

  • Debug: Go step by step through your solution trying to find where you went wrong. Programmers call this debugging (in fact, this is all a debugger does).
“The art of debugging is figuring out what you really told your program to do rather than what you thought you told it to do.”” — Andrew Singer
  • Reassess: Take a step back. Look at the problem from another perspective. Is there anything that can be abstracted to a more general approach?
“Sometimes we get so lost in the details of a problem that we overlook general principles that would solve the problem at a more general level. […] The classic example of this, of course, is the summation of a long list of consecutive integers, 1 + 2 + 3 + … + n, which a very young Gauss quickly recognized was simply n(n+1)/2, thus avoiding the effort of having to do the addition.” — C. Jordan Ball

Sidenote: Another way of reassessing is starting anew. Delete everything and begin again with fresh eyes. I’m serious. You’ll be dumbfounded at how effective this is.

  • Research: Ahh, good ol’ Google. You read that right. No matter what problem you have, someone has probably solved it. Find that person/ solution. In fact, do this even if you solved the problem! (You can learn a lot from other people’s solutions).

Caveat: Don’t look for a solution to the big problem. Only look for solutions to sub-problems. Why? Because unless you struggle (even a little bit), you won’t learn anything. If you don’t learn anything, you wasted your time.

Don’t expect to be great after just one week. If you want to be a good problem-solver, solve a lot of problems!

Practice. Practice. Practice. It’ll only be a matter of time before you recognize that “this problem could easily be solved with .”

How to practice? There are options out the wazoo!

Chess puzzles, math problems, Sudoku, Go, Monopoly, video-games, cryptokitties, bla… bla… bla….

In fact, a common pattern amongst successful people is their habit of practicing “micro problem-solving.” For example, Peter Thiel plays chess, and Elon Musk plays video-games.

“Byron Reeves said ‘If you want to see what business leadership may look like in three to five years, look at what’s happening in online games.’ Fast-forward to today. Elon [Musk], Reid [Hoffman], Mark Zuckerberg and many others say that games have been foundational to their success in building their companies.” — Mary Meeker ( 2017 internet trends report )

Does this mean you should just play video-games? Not at all.

But what are video-games all about? That’s right, problem-solving!

So, what you should do is find an outlet to practice. Something that allows you to solve many micro-problems (ideally, something you enjoy).

For example, I enjoy coding challenges. Every day, I try to solve at least one challenge (usually on Coderbyte ).

Like I said, all problems share similar patterns.

That’s all folks!

Now, you know better what it means to “think like a programmer.”

You also know that problem-solving is an incredible skill to cultivate (the meta-skill).

As if that wasn’t enough, notice how you also know what to do to practice your problem-solving skills!

Phew… Pretty cool right?

Finally, I wish you encounter many problems.

You read that right. At least now you know how to solve them! (also, you’ll learn that with every solution, you improve).

“Just when you think you’ve successfully navigated one obstacle, another emerges. But that’s what keeps life interesting.[…] Life is a process of breaking through these impediments — a series of fortified lines that we must break through. Each time, you’ll learn something. Each time, you’ll develop strength, wisdom, and perspective. Each time, a little more of the competition falls away. Until all that is left is you: the best version of you.” — Ryan Holiday ( The Obstacle is the Way )

Now, go solve some problems!

And best of luck ?

Special thanks to C. Jordan Ball and V. Anton Spraul . All the good advice here came from them.

Thanks for reading! If you enjoyed it, test how many times can you hit in 5 seconds. It’s great cardio for your fingers AND will help other people see the story.

Learn to code. Build projects. Earn certifications—All for free.

If you read this far, thank the author to show them you care. Say Thanks

Learn to code for free. freeCodeCamp's open source curriculum has helped more than 40,000 people get jobs as developers. Get started

Problem Solving

Solving problems is the core of computer science. Programmers must first understand how a human solves a problem, then understand how to translate this "algorithm" into something a computer can do, and finally how to "write" the specific syntax (required by a computer) to get the job done. It is sometimes the case that a machine will solve a problem in a completely different way than a human.

Computer Programmers are problem solvers. In order to solve a problem on a computer you must:

Know how to represent the information (data) describing the problem.

Determine the steps to transform the information from one representation into another.

Information Representation

A computer, at heart, is really dumb. It can only really know about a few things... numbers, characters, booleans, and lists (called arrays) of these items. (See Data Types). Everything else must be "approximated" by combinations of these data types.

A good programmer will "encode" all the "facts" necessary to represent a problem in variables (See Variables). Further, there are "good ways" and "bad ways" to encode information. Good ways allow the computer to easily "compute" new information.

An algorithm (see Algorithm) is a set of specific steps to solve a problem. Think of it this way: if you were to tell your 3 year old neice to play your favorite song on the piano (assuming the neice has never played a piano), you would have to tell her where the piano was, and how to sit on the bench, and how to open the cover, and which keys to press, and which order to press them in, etc, etc, etc.

The core of what good programmers do is being able to define the steps necessary to accomplish a goal. Unfortunately, a computer, only knows a very restricted and limited set of possible steps. For example a computer can add two numbers. But if you want to find the average of two numbers, this is beyond the basic capabilities of a computer. To find the average, you must:

  • First: Add the two numbers and save this result in a variable
  • Then: Divide this new number the number two, and save this result in a variable.
  • Finally: provide this number to the rest of the program (or print it for the user).

We "compute" all the time. Computing is the act of solving problems (or coming up with a plan to solve problems) in an organized manner. We don't need computers to "compute". We can use our own brain.

Encapsulation and Abstraction and Complexity Hiding

Computer scientists like to use the fancy word "Encapsulation" to show how smart we are. This is just a term for things we do as humans every day. It is combined with another fancy term: "Abstraction".

Abstraction is the idea of "ignoring the details". For example, a forest is really a vastly complex ecosystem containing trees, animals, water paths, etc, etc, etc. But to a computer scientist (and to a normal person), its just "a forest".

For example, if your professor needs a cup of coffee, and asks you the single item: "Get me a cup of coffee", he has used both encapsulation and abstraction. The number of steps required to actually get the coffee are enumerable. Including, getting up, walking down the hall, getting in your car, driving to a coffee stand, paying for the coffee, etc, etc, etc. Further, the idea of what a cup of coffee is, is abstract. Do you bring a mug of coffee, or a Styrofoam cup? Is it caffeinated or not? Is it freshly brewed or from concentrate? Does it come from Africa or America?

All of this information is TOO MUCH and we would quickly be unable to funciton if we had to remember all of these details. Thus we "abstract away" the details and only remember the few important items.

This brings us to the idea of "Complexity Hiding". Complexity hiding is the idea that most of the times details don't matter. In a computer program, as simple an idea as drawing a square on the screen involves hundreds (if not thousands) of (low level) computer instructions. Again, a person couldn't possible create interesting programs if every time they wanted to do something, they had to re-write (correctly) every one of those instructions. By "ecapsulating" what is meant by "draw square" and "reusing" this operation over and over again, we make programming tractable.

Encapsulation

The idea behind encapsulation is to store the information necessary to a particular idea in a set of variables associated with a single "object". We then create functions to manipulate this object, regardless of what the actual data is. From that point on, we treat the idea from a "high level" rather than worry about all the parts (data) and actions (functions) necessary to represent the object in a computer.

Brute Force

Brute force is a technique for solving problems that relies on a computers speed (how fast it can repeat steps) to solve a problem. For example, if you wanted to know how many times the number 8 goes into the number 100, you could do the following:

Of course this is a silly way for a computer (or a human) to solve this problem. The real way we would do it is:

When in doubt, you can often use "brute force" to solve a problem, but it often saves time (at least computer time) to think about the problem and solve it in an elegant manner.

40 problem-solving techniques and processes

Problem solving workshop

All teams and organizations encounter challenges. Approaching those challenges without a structured problem solving process can end up making things worse.

Proven problem solving techniques such as those outlined below can guide your group through a process of identifying problems and challenges , ideating on possible solutions , and then evaluating and implementing the most suitable .

In this post, you'll find problem-solving tools you can use to develop effective solutions. You'll also find some tips for facilitating the problem solving process and solving complex problems.

Design your next session with SessionLab

Join the 150,000+ facilitators 
using SessionLab.

Recommended Articles

A step-by-step guide to planning a workshop, 54 great online tools for workshops and meetings, how to create an unforgettable training session in 8 simple steps.

  • 18 Free Facilitation Resources We Think You’ll Love

What is problem solving?

Problem solving is a process of finding and implementing a solution to a challenge or obstacle. In most contexts, this means going through a problem solving process that begins with identifying the issue, exploring its root causes, ideating and refining possible solutions before implementing and measuring the impact of that solution.

For simple or small problems, it can be tempting to skip straight to implementing what you believe is the right solution. The danger with this approach is that without exploring the true causes of the issue, it might just occur again or your chosen solution may cause other issues.

Particularly in the world of work, good problem solving means using data to back up each step of the process, bringing in new perspectives and effectively measuring the impact of your solution.

Effective problem solving can help ensure that your team or organization is well positioned to overcome challenges, be resilient to change and create innovation. In my experience, problem solving is a combination of skillset, mindset and process, and it’s especially vital for leaders to cultivate this skill.

A group of people looking at a poster with notes on it

What is the seven step problem solving process?

A problem solving process is a step-by-step framework from going from discovering a problem all the way through to implementing a solution.

With practice, this framework can become intuitive, and innovative companies tend to have a consistent and ongoing ability to discover and tackle challenges when they come up.

You might see everything from a four step problem solving process through to seven steps. While all these processes cover roughly the same ground, I’ve found a seven step problem solving process is helpful for making all key steps legible.

We’ll outline that process here and then follow with techniques you can use to explore and work on that step of the problem solving process with a group.

The seven-step problem solving process is:

1. Problem identification 

The first stage of any problem solving process is to identify the problem(s) you need to solve. This often looks like using group discussions and activities to help a group surface and effectively articulate the challenges they’re facing and wish to resolve.

Be sure to align with your team on the exact definition and nature of the problem you’re solving. An effective process is one where everyone is pulling in the same direction – ensure clarity and alignment now to help avoid misunderstandings later.

2. Problem analysis and refinement

The process of problem analysis means ensuring that the problem you are seeking to solve is  the   right problem . Choosing the right problem to solve means you are on the right path to creating the right solution.

At this stage, you may look deeper at the problem you identified to try and discover the root cause at the level of people or process. You may also spend some time sourcing data, consulting relevant parties and creating and refining a problem statement.

Problem refinement means adjusting scope or focus of the problem you will be aiming to solve based on what comes up during your analysis. As you analyze data sources, you might discover that the root cause means you need to adjust your problem statement. Alternatively, you might find that your original problem statement is too big to be meaningful approached within your current project.

Remember that the goal of any problem refinement is to help set the stage for effective solution development and deployment. Set the right focus and get buy-in from your team here and you’ll be well positioned to move forward with confidence.

3. Solution generation

Once your group has nailed down the particulars of the problem you wish to solve, you want to encourage a free flow of ideas connecting to solving that problem. This can take the form of problem solving games that encourage creative thinking or techniquess designed to produce working prototypes of possible solutions. 

The key to ensuring the success of this stage of the problem solving process is to encourage quick, creative thinking and create an open space where all ideas are considered. The best solutions can often come from unlikely places and by using problem solving techniques that celebrate invention, you might come up with solution gold. 

what are the different steps in problem solving using computer

4. Solution development

No solution is perfect right out of the gate. It’s important to discuss and develop the solutions your group has come up with over the course of following the previous problem solving steps in order to arrive at the best possible solution. Problem solving games used in this stage involve lots of critical thinking, measuring potential effort and impact, and looking at possible solutions analytically. 

During this stage, you will often ask your team to iterate and improve upon your front-running solutions and develop them further. Remember that problem solving strategies always benefit from a multitude of voices and opinions, and not to let ego get involved when it comes to choosing which solutions to develop and take further.

Finding the best solution is the goal of all problem solving workshops and here is the place to ensure that your solution is well thought out, sufficiently robust and fit for purpose. 

5. Decision making and planning

Nearly there! Once you’ve got a set of possible, you’ll need to make a decision on which to implement. This can be a consensus-based group decision or it might be for a leader or major stakeholder to decide. You’ll find a set of effective decision making methods below.

Once your group has reached consensus and selected a solution, there are some additional actions that also need to be decided upon. You’ll want to work on allocating ownership of the project, figure out who will do what, how the success of the solution will be measured and decide the next course of action.

Set clear accountabilities, actions, timeframes, and follow-ups for your chosen solution. Make these decisions and set clear next-steps in the problem solving workshop so that everyone is aligned and you can move forward effectively as a group. 

Ensuring that you plan for the roll-out of a solution is one of the most important problem solving steps. Without adequate planning or oversight, it can prove impossible to measure success or iterate further if the problem was not solved. 

6. Solution implementation 

This is what we were waiting for! All problem solving processes have the end goal of implementing an effective and impactful solution that your group has confidence in.

Project management and communication skills are key here – your solution may need to adjust when out in the wild or you might discover new challenges along the way. For some solutions, you might also implement a test with a small group and monitor results before rolling it out to an entire company.

You should have a clear owner for your solution who will oversee the plans you made together and help ensure they’re put into place. This person will often coordinate the implementation team and set-up processes to measure the efficacy of your solution too.

7. Solution evaluation 

So you and your team developed a great solution to a problem and have a gut feeling it’s been solved. Work done, right? Wrong. All problem solving strategies benefit from evaluation, consideration, and feedback.

You might find that the solution does not work for everyone, might create new problems, or is potentially so successful that you will want to roll it out to larger teams or as part of other initiatives. 

None of that is possible without taking the time to evaluate the success of the solution you developed in your problem solving model and adjust if necessary.

Remember that the problem solving process is often iterative and it can be common to not solve complex issues on the first try. Even when this is the case, you and your team will have generated learning that will be important for future problem solving workshops or in other parts of the organization. 

It’s also worth underlining how important record keeping is throughout the problem solving process. If a solution didn’t work, you need to have the data and records to see why that was the case. If you go back to the drawing board, notes from the previous workshop can help save time.

What does an effective problem solving process look like?

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

The format of a workshop ensures that you can get buy-in from your group, encourage free-thinking and solution exploration before making a decision on what to implement following the session.

This Design Sprint 2.0 template is an effective problem solving process from top agency AJ&Smart. It’s a great format for the entire problem solving process, with four-days of workshops designed to surface issues, explore solutions and even test a solution.

Check it for an example of how you might structure and run a problem solving process and feel free to copy and adjust it your needs!

For a shorter process you can run in a single afternoon, this remote problem solving agenda will guide you effectively in just a couple of hours.

Whatever the length of your workshop, by using 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!

what are the different steps in problem solving using computer

Complete problem-solving methods

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

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.

The Six Thinking Hats   #creative thinking   #meeting facilitation   #problem solving   #issue resolution   #idea generation   #conflict resolution   The Six Thinking Hats are used by individuals and groups to separate out conflicting styles of thinking. They enable and encourage a group of people to think constructively together in exploring and implementing change, rather than using argument to fight over who is right and who is wrong.

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   It doesn’t matter where you work and what your job role is, if you work with other people together as a team, you will always encounter the same challenges: Unclear goals and miscommunication that cause busy work and overtime Unstructured meetings that leave attendants tired, confused and without clear outcomes. Frustration builds up because internal challenges to productivity are not addressed Sudden changes in priorities lead to a loss of focus and momentum Muddled compromise takes the place of clear decision- making, leaving everybody to come up with their own interpretation. In short, a lack of structure leads to a waste of time and effort, projects that drag on for too long and frustrated, burnt out teams. AJ&Smart has worked with some of the most innovative, productive companies in the world. What sets their teams apart from others is not better tools, bigger talent or more beautiful offices. The secret sauce to becoming a more productive, more creative and happier team is simple: Replace all open discussion or brainstorming with a structured process that leads to more ideas, clearer decisions and better outcomes. When a good process provides guardrails and a clear path to follow, it becomes easier to come up with ideas, make decisions and solve problems. This is why AJ&Smart created Lightning Decision Jam (LDJ). It’s a simple and short, but powerful group exercise that can be run either in-person, in the same room, or remotely with distributed teams.

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.

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.

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.

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

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!

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.

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.

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.

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.

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.

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.

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.

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.

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!

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 brainstorming solutions

Now you have the context and background of the problem you are trying to solving, now comes the time to start ideating and thinking about how you’ll solve the issue.

Here, you’ll want to encourage creative, free thinking and speed. Get as many ideas out as possible and explore different perspectives so you have the raw material for the next step.

Looking at a problem from a new angle can be one of the most effective ways of creating an effective solution. TRIZ is a problem-solving tool that asks the group to consider what they must not do in order to solve a challenge.

By reversing the discussion, new topics and taboo subjects often emerge, allowing the group to think more deeply and create ideas that confront the status quo in a safe and meaningful way. If you’re working on a problem that you’ve tried to solve before, TRIZ is a great problem-solving method to help your team get unblocked.

Making Space with TRIZ   #issue analysis   #liberating structures   #issue resolution   You can clear space for innovation by helping a group let go of what it knows (but rarely admits) limits its success and by inviting creative destruction. TRIZ makes it possible to challenge sacred cows safely and encourages heretical thinking. The question “What must we stop doing to make progress on our deepest purpose?” induces seriously fun yet very courageous conversations. Since laughter often erupts, issues that are otherwise taboo get a chance to be aired and confronted. With creative destruction come opportunities for renewal as local action and innovation rush in to fill the vacuum. Whoosh!

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.

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.

Idea and Concept Development

Brainstorming without structure can quickly become chaotic or frustrating. In a problem-solving context, having an ideation framework to follow can help ensure your team is both creative and disciplined.

In this method, you’ll find an idea generation process that encourages your group to brainstorm effectively before developing their ideas and begin clustering them together. By using concepts such as Yes and…, more is more and postponing judgement, you can create the ideal conditions for brainstorming with ease.

Idea & Concept Development   #hyperisland   #innovation   #idea generation   Ideation and Concept Development is a process for groups to work creatively and collaboratively to generate creative ideas. It’s a general approach that can be adapted and customized to suit many different scenarios. It includes basic principles for idea generation and several steps for groups to work with. It also includes steps for idea selection and development.

Problem-solving techniques for developing and refining 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 develop and refine your ideas in order to bring them closer to a solution that actually solves the problem.

Use these problem-solving techniques when you want to help your team think through their ideas and refine them as part of your problem solving process.

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.

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

Ensuring that everyone in a group is able to contribute to a discussion is vital during any problem solving process. Not only does this ensure all bases are covered, but its then easier to get buy-in and accountability when people have been able to contribute to the process.

1-2-4-All is a tried and tested facilitation technique where participants are asked to first brainstorm on a topic on their own. Next, they discuss and share ideas in a pair before moving into a small group. Those groups are then asked to present the best idea from their discussion to the rest of the team.

This method can be used in many different contexts effectively, though I find it particularly shines in the idea development stage of the process. Giving each participant time to concretize their ideas and develop them in progressively larger groups can create a great space for both innovation and psychological safety.

1-2-4-All   #idea generation   #liberating structures   #issue analysis   With this facilitation technique you can immediately include everyone regardless of how large the group is. You can generate better ideas and more of them faster than ever before. You can tap the know-how and imagination that is distributed widely in places not known in advance. Open, generative conversation unfolds. Ideas and solutions are sifted in rapid fashion. Most importantly, participants own the ideas, so follow-up and implementation is simplified. No buy-in strategies needed! Simple and elegant!

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.

Problem-solving techniques for making decisions and planning

After your group is happy with the possible solutions you’ve developed, now comes the time to choose which to implement. There’s more than one way to make a decision and the best option is often dependant on the needs and set-up of your group.

Sometimes, it’s the case that you’ll want to vote as a group on what is likely to be the most impactful solution. Other times, it might be down to a decision maker or major stakeholder to make the final decision. Whatever your process, here’s some techniques you can use to help you make a decision during your problem solving process.

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.

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.

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.

Straddling the gap between decision making and planning, MoSCoW is a simple and effective method that allows a group team to easily prioritize a set of possible options.

Use this method in a problem solving process by collecting and summarizing all your possible solutions and then categorize them into 4 sections: “Must have”, “Should have”, “Could have”, or “Would like but won‘t get”.

This method is particularly useful when its less about choosing one possible solution and more about prioritorizing which to do first and which may not fit in the scope of your project. In my experience, complex challenges often require multiple small fixes, and this method can be a great way to move from a pile of things you’d all like to do to a structured plan.

MoSCoW   #define intentions   #create   #design   #action   #remote-friendly   MoSCoW is a method that allows the team to prioritize the different features that they will work on. Features are then categorized into “Must have”, “Should have”, “Could have”, or “Would like but won‘t get”. To be used at the beginning of a timeslot (for example during Sprint planning) and when planning is needed.

When it comes to managing the rollout of a solution, clarity and accountability are key factors in ensuring the success of the project. The RAACI chart is a simple but effective model for setting roles and responsibilities as part of a planning session.

Start by listing each person involved in the project and put them into the following groups in order to make it clear who is responsible for what during the rollout of your solution.

  • Responsibility  (Which person and/or team will be taking action?)
  • Authority  (At what “point” must the responsible person check in before going further?)
  • Accountability  (Who must the responsible person check in with?)
  • Consultation  (Who must be consulted by the responsible person before decisions are made?)
  • Information  (Who must be informed of decisions, once made?)

Ensure this information is easily accessible and use it to inform who does what and who is looped into discussions and kept up to date.

RAACI   #roles and responsibility   #teamwork   #project management   Clarifying roles and responsibilities, levels of autonomy/latitude in decision making, and levels of engagement among diverse stakeholders.

Problem-solving warm-up activities

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

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.

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.

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.

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.

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.

Closing activities for a problem-solving process

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

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.

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.

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.

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

Create psychologically safe spaces for discussion

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 tough for people to stand up and contribute if the problems or challenges are emotive or personal in nature. Try and create a psychologically safe space for these kinds of discussions and where possible, create regular opportunities for challenges to be brought up organically.

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!

Save time and effort creating an effective problem solving process

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!

what are the different steps in problem solving using computer

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

what are the different steps in problem solving using computer

James Smart is Head of Content at SessionLab. He’s also a creative facilitator who has run workshops and designed courses for establishments like the National Centre for Writing, UK. He especially enjoys working with young people and empowering others in their creative practice.

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

what are the different steps in problem solving using computer

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 great workshop 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 life easier and run better workshops and meetings. In fact, there are plenty of free online workshop tools and meeting…

what are the different steps in problem solving using computer

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,…

Design your next workshop with SessionLab

Join the 150,000 facilitators using SessionLab

Sign up for free

Problem Solving Through Programming in C

In this lesson, we are going to learn Problem Solving Through Programming in C. This is the first lesson while we start learning the C language.

Table of Contents

Introduction to Problem Solving Through Programming in C

Regardless of the area of the study, computer science is all about solving problems with computers. The problem that we want to solve can come from any real-world problem or perhaps even from the abstract world. We need to have a standard systematic approach to problem solving through programming in c.

computer programmers are problem solvers. In order to solve a problem on a computer, we must know how to represent the information describing the problem and determine the steps to transform the information from one representation into another.

A computer is a very powerful and versatile machine capable of performing a multitude of different tasks, yet it has no intelligence or thinking power.

The computer cannot solve the problem on its own, one has to provide step by step solutions of the problem to the computer. In fact, the task of problem-solving is not that of the computer.

It is the programmer who has to write down the solution to the problem in terms of simple operations which the computer can understand and execute.

In order to solve a problem with the computer, one has to pass through certain stages or steps. They are as follows:

Steps to Solve a Problem With the Computer

Step 1: understanding the problem:.

Here we try to understand the problem to be solved in totally. Before with the next stage or step, we should be absolutely sure about the objectives of the given problem.

Step 2: Analyzing the Problem:

The idea here is to search for an appropriate solution to the problem under consideration. The end result of this stage is a broad overview of the sequence of operations that are to be carried out to solve the given problem.

Step 3: Developing the solution:

Here, the overview of the sequence of operations that was the result of the analysis stage is expanded to form a detailed step by step solution to the problem under consideration.

Step 4: Coding and Implementation:

The vehicle for the computer solution to a problem is a set of explicit and unambiguous instructions expressed in a programming language. This set of instruction is called a program with problem solving through programming in C .

A program may also be thought of as an algorithm expressed in a programming language. an algorithm, therefore, corresponds to a solution to a problem that is independent of any programming language .

The problem solving is a skill and there are no universal approaches one can take to solving problems. Basically one must explore possible avenues to a solution one by one until she/he comes across the right path to a solution.

In general, as one gains experience in solving problems, one develops one’s own techniques and strategies, though they are often intangible. Problem-solving skills are recognized as an integral component of computer programming.

Problem Solving Steps

Problem-solving is a creative process which defines systematization and mechanization. There are a number of steps that can be taken to raise the level of one’s performance in problem-solving.

A problem-solving technique follows certain steps in finding the solution to a problem. Let us look into the steps one by one:

1. Problem Definition Phase:

In the problem definition phase, we must emphasize what must be done rather than how is it to be done. That is, we try to extract the precisely defined set of tasks from the problem statement.

Inexperienced problem solvers too often gallop ahead with the task of the problem – solving only to find that they are either solving the wrong problem or solving the wrong problem or solving just one particular problem.

2. Getting Started on a Problem:

Sometimes you do not have any idea where to begin solving a problem, even if the problem has been defined. Such block sometimes occurs because you are overly concerned with the details of the implementation even before you have completely understood or worked out a solution.

The best advice is not to get concerned with the details. Those can come later when the intricacies of the problem have been understood.

3. Use of Specific Examples:

It is usually much easier to work out the details of a solution to a specific problem because the relationship between the mechanism and the problem is more clearly defined.

This approach of focusing on a particular problem can give us the foothold we need for making a start on the solution to the general problem.

4. Similarities Among Problems:

The more experience one has the more tools and techniques one can bring to bear in tackling the given problem. But sometimes, it blocks us from discovering a desirable or better solution to the problem.

A skill that is important to try to develop in problem-solving is the ability to view a problem from a variety of angles.

5. Working Backwards from the Solution:

In some cases, we can assume that we already have the solution to the problem and then try to work backwards to the starting point. Even a guess at the solution to the problem may be enough to give us a foothold to start on the problem.

We can systematize the investigations and avoid duplicate efforts by writing down the various steps taken and explorations made.

General Problem Solving Strategies:

There are a number of general and powerful computational strategies that are repeatedly used in various guises in computer science.

Often it is possible to phrase a problem in terms of one of these strategies and achieve considerable gains in computational efficiency.

1. Divide and Conquer:

The Splitting can be carried on further so that eventually we have many sub-problems, so small that further splitting is no necessary to solve them. We shall see many examples of this strategy and discuss the gain in efficiency due to its application.

2. Binary Doubling:

This is the reverse of the divide and conquers strategy i.e build-up the solution for a larger problem from solutions and smaller sub-problems.

3. Dynamic Programming:

The travelling salesman problem falls into this category. The idea here is that a good or optimal solution to a problem can be built-up from good or optimal solutions of the sub-problems.

4. General Search, Back Tracking and Branch-and-Bound:

All of these are variants of the basic dynamic programming strategy but are equally important.

Share This Story, Choose Your Platform!

Related posts, what is preprocessor in c, what is file handling in c, structures and unions in c.

Status.net

What is Problem Solving? (Steps, Techniques, Examples)

What is problem solving, definition and importance.

Problem solving is the process of finding solutions to obstacles or challenges you encounter in your life or work. It is a crucial skill that allows you to tackle complex situations, adapt to changes, and overcome difficulties with ease. Mastering this ability will contribute to both your personal and professional growth, leading to more successful outcomes and better decision-making.

Problem-Solving Steps

The problem-solving process typically includes the following steps:

  • Identify the issue : Recognize the problem that needs to be solved.
  • Analyze the situation : Examine the issue in depth, gather all relevant information, and consider any limitations or constraints that may be present.
  • Generate potential solutions : Brainstorm a list of possible solutions to the issue, without immediately judging or evaluating them.
  • Evaluate options : Weigh the pros and cons of each potential solution, considering factors such as feasibility, effectiveness, and potential risks.
  • Select the best solution : Choose the option that best addresses the problem and aligns with your objectives.
  • Implement the solution : Put the selected solution into action and monitor the results to ensure it resolves the issue.
  • Review and learn : Reflect on the problem-solving process, identify any improvements or adjustments that can be made, and apply these learnings to future situations.

Defining the Problem

To start tackling a problem, first, identify and understand it. Analyzing the issue thoroughly helps to clarify its scope and nature. Ask questions to gather information and consider the problem from various angles. Some strategies to define the problem include:

  • Brainstorming with others
  • Asking the 5 Ws and 1 H (Who, What, When, Where, Why, and How)
  • Analyzing cause and effect
  • Creating a problem statement

Generating Solutions

Once the problem is clearly understood, brainstorm possible solutions. Think creatively and keep an open mind, as well as considering lessons from past experiences. Consider:

  • Creating a list of potential ideas to solve the problem
  • Grouping and categorizing similar solutions
  • Prioritizing potential solutions based on feasibility, cost, and resources required
  • Involving others to share diverse opinions and inputs

Evaluating and Selecting Solutions

Evaluate each potential solution, weighing its pros and cons. To facilitate decision-making, use techniques such as:

  • SWOT analysis (Strengths, Weaknesses, Opportunities, Threats)
  • Decision-making matrices
  • Pros and cons lists
  • Risk assessments

After evaluating, choose the most suitable solution based on effectiveness, cost, and time constraints.

Implementing and Monitoring the Solution

Implement the chosen solution and monitor its progress. Key actions include:

  • Communicating the solution to relevant parties
  • Setting timelines and milestones
  • Assigning tasks and responsibilities
  • Monitoring the solution and making adjustments as necessary
  • Evaluating the effectiveness of the solution after implementation

Utilize feedback from stakeholders and consider potential improvements. Remember that problem-solving is an ongoing process that can always be refined and enhanced.

Problem-Solving Techniques

During each step, you may find it helpful to utilize various problem-solving techniques, such as:

  • Brainstorming : A free-flowing, open-minded session where ideas are generated and listed without judgment, to encourage creativity and innovative thinking.
  • Root cause analysis : A method that explores the underlying causes of a problem to find the most effective solution rather than addressing superficial symptoms.
  • SWOT analysis : A tool used to evaluate the strengths, weaknesses, opportunities, and threats related to a problem or decision, providing a comprehensive view of the situation.
  • Mind mapping : A visual technique that uses diagrams to organize and connect ideas, helping to identify patterns, relationships, and possible solutions.

Brainstorming

When facing a problem, start by conducting a brainstorming session. Gather your team and encourage an open discussion where everyone contributes ideas, no matter how outlandish they may seem. This helps you:

  • Generate a diverse range of solutions
  • Encourage all team members to participate
  • Foster creative thinking

When brainstorming, remember to:

  • Reserve judgment until the session is over
  • Encourage wild ideas
  • Combine and improve upon ideas

Root Cause Analysis

For effective problem-solving, identifying the root cause of the issue at hand is crucial. Try these methods:

  • 5 Whys : Ask “why” five times to get to the underlying cause.
  • Fishbone Diagram : Create a diagram representing the problem and break it down into categories of potential causes.
  • Pareto Analysis : Determine the few most significant causes underlying the majority of problems.

SWOT Analysis

SWOT analysis helps you examine the Strengths, Weaknesses, Opportunities, and Threats related to your problem. To perform a SWOT analysis:

  • List your problem’s strengths, such as relevant resources or strong partnerships.
  • Identify its weaknesses, such as knowledge gaps or limited resources.
  • Explore opportunities, like trends or new technologies, that could help solve the problem.
  • Recognize potential threats, like competition or regulatory barriers.

SWOT analysis aids in understanding the internal and external factors affecting the problem, which can help guide your solution.

Mind Mapping

A mind map is a visual representation of your problem and potential solutions. It enables you to organize information in a structured and intuitive manner. To create a mind map:

  • Write the problem in the center of a blank page.
  • Draw branches from the central problem to related sub-problems or contributing factors.
  • Add more branches to represent potential solutions or further ideas.

Mind mapping allows you to visually see connections between ideas and promotes creativity in problem-solving.

Examples of Problem Solving in Various Contexts

In the business world, you might encounter problems related to finances, operations, or communication. Applying problem-solving skills in these situations could look like:

  • Identifying areas of improvement in your company’s financial performance and implementing cost-saving measures
  • Resolving internal conflicts among team members by listening and understanding different perspectives, then proposing and negotiating solutions
  • Streamlining a process for better productivity by removing redundancies, automating tasks, or re-allocating resources

In educational contexts, problem-solving can be seen in various aspects, such as:

  • Addressing a gap in students’ understanding by employing diverse teaching methods to cater to different learning styles
  • Developing a strategy for successful time management to balance academic responsibilities and extracurricular activities
  • Seeking resources and support to provide equal opportunities for learners with special needs or disabilities

Everyday life is full of challenges that require problem-solving skills. Some examples include:

  • Overcoming a personal obstacle, such as improving your fitness level, by establishing achievable goals, measuring progress, and adjusting your approach accordingly
  • Navigating a new environment or city by researching your surroundings, asking for directions, or using technology like GPS to guide you
  • Dealing with a sudden change, like a change in your work schedule, by assessing the situation, identifying potential impacts, and adapting your plans to accommodate the change.
  • How to Resolve Employee Conflict at Work [Steps, Tips, Examples]
  • How to Write Inspiring Core Values? 5 Steps with Examples
  • 30 Employee Feedback Examples (Positive & Negative)

Problem Solving with Computer

By Bipin Tiwari

Problem Solving is a scientific technique to discover and implement the answer to a problem. The computer is the symbol manipulating device that follows the set of commands known as program.

Program is the set of instructions which is run by the computer to perform specific task. The task of developing program is called programming.

Problem Solving Technique:

Sometimes it is not sufficient just to cope with problems. We have to solve that problems. Most people are involving to solve the problem. These problem are occur while performing small task or making small decision. So, Here are the some basic steps to solve the problems

Step 1: Identify and Define Problem

Explain you problem clearly as possible as you can.

Step 2: Generate Possible Solutions

  • List out all the solution that you find. Don’t focus on the quality of the solution
  • Generate the maximum number of solution as you can without considering the quality of the solution

Step 3: Evaluate Alternatives

After generating the maximum solution, Remove the undesired solutions.

Step 4: Decide a Solution

After filtering all the solution, you have the best solution only. Then choose on of the best solution and make a decision to make it as a perfect solution.

Step 5: Implement a Solution:

After getting the best solution, Implement that solution to solve a problem.

Step 6: Evaluate the result

After implementing a best solution, Evaluate how much you solution solve the problem. If your solution will not solve the problem then you can again start with Step 2 .

Algorithm is the set of rules that define how particular problem can be solved in finite number of steps. Any good algorithm must have following characteristics

  • Input: Specify and require input
  • Output:  Solution of any problem
  • Definite:  Solution must be clearly defined
  • Finite: Steps must be finite
  • Correct:  Correct output must be generated

Advantages of Algorithms:

  • It is the way to sole a problem step-wise so it is easy to understand.
  • It uses definite procedure.
  • It is not dependent with any programming language.
  • Each step has it own meaning so it is easy to debug

Disadvantage of Algorithms:

  • It is time consuming
  • Difficult to show branching and looping statement
  • Large problems are difficult to implement

The solution of any problem in picture form is called flowchart. It is the one of the most important technique to depict an algorithm.

Advantage of Flowchart:

  • Easier to understand
  • Helps to understand logic of problem
  • Easy to draw flowchart in any software like MS-Word
  • Complex problem can be represent using less symbols
  • It is the way to documenting any problem
  • Helps in debugging process

Disadvantage of Flowchart:

  • For any change, Flowchart have to redrawn
  • Showing many looping and branching become complex
  • Modification of flowchart is time consuming

Symbol Used in Flowchart:

Terminal Terminal represent start and end
Input / Output Used for input (reading) and output (printing) operation.
Processing Used for data manipulation and data operations.
Arrow Used to represent flow of operations.
Connector Used to connect different flow of lines
Decision Used to make decision

Example: Algorithm and Flowchart to check odd or even

Coding, Compiling and Execution

Question's answer.

Share this link via

Or copy link

Copyright 2022 | HAMROCSIT.COM | All Right Reserved

How to Use Computational Thinking to Solve Problems Like a Pro

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

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

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

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

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

What exactly is computational thinking?

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

Computational thinking

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

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

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

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

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

Four steps in computational thinking

Decomposition.

Taking the problem and breaking it down into smaller components.

Pattern recognition

Looking for patterns within these smaller components.

Abstraction

Focusing on the important details and leaving out irrelevant distractions.

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

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

For example:

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

By breaking down the components.

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

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

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

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

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

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

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

Why is computational thinking important?

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

We retain control

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

We become confident

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

We are not overwhelmed

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

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

Final thoughts

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

References :

  • royalsocietypublishing.org
  • www.researchgate.net

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

Share this story share this content.

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

This Post Has 2 Comments

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

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

Leave a Reply Cancel reply

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

Oberlin College Computer Science

  • Course Websites
  • CS Lab Helper Schedule

Problem Solving Tips

  • Course Catalog
  • Major/Minor in CS
  • Electives Schedule
  • Intro Course Placement
  • Academic Calendar
  • Department Honors
  • Bob Geitz (chair)
  • Stephen Checkoway
  • Roberto Hoyle
  • Dylan McKay
  • Sam Taggart
  • Cynthia Taylor
  • Blair Rossetti
  • Molly Feldman
  • 2013-Wearable-Electronics
  • 2011 ACM Programming Contest
  • 2013 Alexa's Tenure Celebration
  • 2013 Pledge Ceremony
  • 2012 Games Showcase
  • 2011 CSMC Unix Night
  • MCURCSM 2009
  • 2009 Games Showcase
  • OCCS 25th Anniversary
  • 2010 Spring Social
  • 2009 Spring Picnic
  • 2009 Math/CS Ice Cream Social
  • 2008 Spring Picnic
  • 2010 Denison Programming Contest
  • 2008 Math/CS Sundae Friday
  • 2009 ACM Programming Contest
  • 2009 Denison Programming Contest
  • 2008 ACM Programming Contest
  • 2008 Denison Programming Contest
  • 2007 ACM Programming Contest
  • 2006 ACM Programming Contest
  • Oberlin College

One of the most important skills you learn in your computer science courses is how to problem solve. Although we cover some general problem solving paradigms in class, the best way to improve these skills is to get practice, practice, and more practice. Different people have different techniques that work best for them; below are some general tips that work for most people.

Please read these suggestions carefully.

Questions the Helpers May Ask You

When you ask a lab helper for their assistance, they will assume you have tried to solve the problem yourself. They will (reasonably) expect that you have tried out the steps outlined in this document; you should therefore be prepared to answer the following questions:

  • Did you re-read the prelab and lab?
  • Do you understand the problem?
  • Have you tried solving some examples by hand?
  • (For problems designing a solution) What have you tried? What topic from class does this most ressemble?
  • If you can’t solve the problem whole-hog, what small case can you solve?
  • (For syntax errors) What line of your code is causing the error? What do you think the compile error means, and what usually causes this kind of problem?
  • (For logical errors) On what example does your program consistently break? Have you traced through the program? Which line of your program is not doing what it should?

Four Main Problem Solving Steps:

1. understand the problem..

Solving the right problem is the most important part of problem solving. Be sure, absolutely 100% positively sure, that you understand the problem before attempting a solution. This involves:

  • Reading the prelab and lab very carefully (including all bold text, italicized text, and everything else);
  • Reviewing class notes on related topics;
  • Trying some small examples to make sure you understand what is being asked; if examples are given to you, make sure you understand them before continuing, as they are usually there to help clarify some common misconceptions; and
  • Asking someone to help clarify anything that is still confusing.

2. Design a Solution.

Formulate an algorithm to solve your problem. This involves:

  • Understanding what is being asked of you. See step 1.
  • Draw out some examples. Use paper . How would you solve these small cases, by hand? Is there a method to what you are doing? Try to formalize the steps you are taking, and try to think about whether they would work more generally, in bigger cases. Then try some bigger cases and convince yourself.
  • Reread the prelab . Did you already run some examples by hand? Did you have trouble with it then?
  • Write down the stuff you know about the problem and the examples you’ve tried, so that you can more easily find patterns .
  • Might a recent topic from class help? Usually at least some, if not most, of the lab will make use of recently covered material . Go over that topic, make sure you understand it, then try to make connections to lab.
  • Split the problem into smaller (more manageable) chunks, and try to solve the simpler problems. Go as small as you need in order to find some solution. Once you have the smaller problem solved, worry about how to generalize it to a slightly larger problem.
  • Just try something , anything, even if it is completely random and obviously wrong. When/if your attempt doesn’t work, it may still give you insight into what may work. It is not as crazy as it initially sounds!
  • Use a friend, lab helper, puppet, etc. as a sounding board ; sometimes, just voicing your problem will lead you to the “aha!” moment you need.
  • If you are still stuck, step away from the keyboard . Take a walk, go eat dinner or have a coffee. Sleep on it. Not literally. Taking a break is sometimes the most productive thing you can do, trust me.
  • Finally, stay positive . Even when things don’t work, you can still gain a better understanding of the problem. Don’t give up, just go with the flow and see where it takes you. Struggling is part of the process!

3. Implement your Solution.

Write the code to solve your problem. This involves

  • Understanding the problem, and designing a solution on paper. See steps 1 and 2.
  • Translating your design into actual code. Rather than doing this linearly, implement small chunks at a time. Break your code into subroutines, and make sure that each subroutine works before proceeding to the next. Compile and save often .
  • If you run into syntax errors, determine which line of your code is causing the problem. You can do this by systematically commenting out blocks of code until you find the block that causes the problem.
  • If you run into logical errors (as in, the program compiles but does not do what it is supposed to), find some examples on which your problem consistently fails. Trace through the program line by line, with one of these examples, to figure out exactly which line is not doing what you intend it to.
  • If the output doesn’t match what you expect, use print statements to trace through what your program is doing, and compare that to what your program should be doing. Even better, if you know how to use a debugger (in eclipse, for example, use it!)

4. Check your Solution.

This step is often overlooked, but is absolutely crucial. Your program does not necessarily work because it works on the given test cases on the lab. You have to think critically about what you code. This involves

  • Certainly check your program on all test cases given to you on the lab and prelab. The prelab often specifically contains hand-solved test cases precisely for this purpose!
  • Thinking about the “ boundary cases ,” such as, when would this array go out of bounds? For what indices will this for loop start and end?
  • Think: how would this program break ? Then, that failing: how would I convince my skeptical friend it can’t be broken?

Remember: problem solving is a creative process, which cannot be forced. Don’t get angry if you don’t see the answer right away, or you don’t see it as fast as your friend. You will have different strengths, and you can always improve. You will learn from your mistakes, so that’s always a plus!

Last updated July 3rd, 2012 by asharp

Recent Posts

  • Congratulations Professor Stephen Checkoway; recipient of this prestigious award!
  • Class of 2021 Celebration
  • Undergraduate Research Symposium
  • Grad School Information meeting
  • Tech Resume Workshop Thursday April 1 4:45pm
  • Information
  • Jobs/Internships
  • Uncategorized
  • Association for Computing Machinery (ACM)
  • National Center for Women & Information Technology (NCWIT)
  • Computer Research Association (CRA)

OCCS Social Media

  • Entries feed
  • Comments feed
  • WordPress.org

Oberlin College Computer Science Department -- 10 N. Professor St., Oberlin, OH 44074 -- Phone: (440) 775-8043

Copyright © 1985-2024 Oberlin College Computer Science. Design by Benjamin A. Kuperman . Powered by WordPress .

Pardon Our Interruption

As you were browsing something about your browser made us think you were a bot. There are a few reasons this might happen:

  • You've disabled JavaScript in your web browser.
  • You're a power user moving through this website with super-human speed.
  • You've disabled cookies in your web browser.
  • A third-party browser plugin, such as Ghostery or NoScript, is preventing JavaScript from running. Additional information is available in this support article .

To regain access, please make sure that cookies and JavaScript are enabled before reloading the page.

  • Data Science
  • Data Analysis
  • Data Visualization
  • Machine Learning
  • Deep Learning
  • Computer Vision
  • Artificial Intelligence
  • AI ML DS Interview Series
  • AI ML DS Projects series
  • Data Engineering
  • Web Scrapping

Problem Solving in Artificial Intelligence

The reflex agent of AI directly maps states into action. Whenever these agents fail to operate in an environment where the state of mapping is too large and not easily performed by the agent, then the stated problem dissolves and sent to a problem-solving domain which breaks the large stored problem into the smaller storage area and resolves one by one. The final integrated action will be the desired outcomes.

On the basis of the problem and their working domain, different types of problem-solving agent defined and use at an atomic level without any internal state visible with a problem-solving algorithm. The problem-solving agent performs precisely by defining problems and several solutions. So we can say that problem solving is a part of artificial intelligence that encompasses a number of techniques such as a tree, B-tree, heuristic algorithms to solve a problem.  

We can also say that a problem-solving agent is a result-driven agent and always focuses on satisfying the goals.

There are basically three types of problem in artificial intelligence:

1. Ignorable: In which solution steps can be ignored.

2. Recoverable: In which solution steps can be undone.

3. Irrecoverable: Solution steps cannot be undo.

Steps problem-solving in AI: The problem of AI is directly associated with the nature of humans and their activities. So we need a number of finite steps to solve a problem which makes human easy works.

These are the following steps which require to solve a problem :

  • Problem definition: Detailed specification of inputs and acceptable system solutions.
  • Problem analysis: Analyse the problem thoroughly.
  • Knowledge Representation: collect detailed information about the problem and define all possible techniques.
  • Problem-solving: Selection of best techniques.

Components to formulate the associated problem: 

  • Initial State: This state requires an initial state for the problem which starts the AI agent towards a specified goal. In this state new methods also initialize problem domain solving by a specific class.
  • Action: This stage of problem formulation works with function with a specific class taken from the initial state and all possible actions done in this stage.
  • Transition: This stage of problem formulation integrates the actual action done by the previous action stage and collects the final stage to forward it to their next stage.
  • Goal test: This stage determines that the specified goal achieved by the integrated transition model or not, whenever the goal achieves stop the action and forward into the next stage to determines the cost to achieve the goal.  
  • Path costing: This component of problem-solving numerical assigned what will be the cost to achieve the goal. It requires all hardware software and human working cost.

author

Please Login to comment...

Similar reads.

  • Top Android Apps for 2024
  • Top Cell Phone Signal Boosters in 2024
  • Best Travel Apps (Paid & Free) in 2024
  • The Best Smart Home Devices for 2024
  • 15 Most Important Aptitude Topics For Placements [2024]

Improve your Coding Skills with Practice

 alt=

What kind of Experience do you want to share?

Login to your account

Change password, your password must have 8 characters or more and contain 3 of the following:.

  • a lower case character, 
  • an upper case character, 
  • a special character 

Password Changed Successfully

Your password has been changed

Create a new account

Can't sign in? Forgot your password?

Enter your email address below and we will send you the reset instructions

If the address matches an existing account you will receive an email with instructions to reset your password

Request Username

Can't sign in? Forgot your username?

Enter your email address below and we will send you your username

If the address matches an existing account you will receive an email with instructions to retrieve your username

World Scientific

  •   
  • Institutional Access

Cookies Notification

CONNECT Login Notice

Our site uses Javascript to enchance its usability. You can disable your ad blocker or whitelist our website www.worldscientific.com to view the full content.

Select your blocker:, adblock plus instructions.

  • Click the AdBlock Plus icon in the extension bar
  • Click the blue power button
  • Click refresh

Adblock Instructions

  • Click the AdBlock icon
  • Click "Don't run on pages on this site"

uBlock Origin Instructions

  • Click on the uBlock Origin icon in the extension bar
  • Click on the big, blue power button
  • Refresh the web page

uBlock Instructions

  • Click on the uBlock icon in the extension bar

Adguard Instructions

  • Click on the Adguard icon in the extension bar
  • Click on the toggle next to the "Protection on this website" text

Brave Instructions

  • Click on the orange lion icon to the right of the address bar
  • Click the toggle on the top right, shifting from "Up" to "Down

Adremover Instructions

  • Click on the AdRemover icon in the extension bar
  • Click the "Don’t run on pages on this domain" button
  • Click "Exclude"

Adblock Genesis Instructions

  • Click on the Adblock Genesis icon in the extension bar
  • Click on the button that says "Whitelist Website"

Super Adblocker Instructions

  • Click on the Super Adblocker icon in the extension bar
  • Click on the "Don’t run on pages on this domain" button
  • Click the "Exclude" button on the pop-up

Ultrablock Instructions

  • Click on the UltraBlock icon in the extension bar
  • Click on the "Disable UltraBlock for ‘domain name here’" button

Ad Aware Instructions

  • Click on the AdAware icon in the extension bar
  • Click on the large orange power button

Ghostery Instructions

  • Click on the Ghostery icon in the extension bar
  • Click on the "Trust Site" button

Firefox Tracking Protection Instructions

  • Click on the shield icon on the left side of the address bar
  • Click on the toggle that says "Enhanced Tracking protection is ON for this site"

Duck Duck Go Instructions

  • Click on the DuckDuckGo icon in the extension bar
  • Click on the toggle next to the words "Site Privacy Protection"

Privacy Badger Instructions

  • Click on the Privacy Badger icon in the extension bar
  • Click on the button that says "Disable Privacy Badger for this site"

Disconnect Instructions

  • Click on the Disconnect icon in the extension bar
  • Click the button that says "Whitelist Site"

Opera Instructions

  • Click on the blue shield icon on the right side of the address bar
  • Click the toggle next to "Ads are blocked on this site"

System Upgrade on Tue, May 28th, 2024 at 2am (EDT)

Computer-Based Problem Solving Process cover

Computer-Based Problem Solving Process

  • By (author): 
  • Teodor Rus ( The University of Iowa, USA )
  • Add to favorites
  • Download Citations
  • Track Citations
  • Recommend to Library
  • Description
  • Supplementary

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 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 and practice of designing, implementing, and using software tools during the problem solving process. This method is obtained by enabling computer systems to be more Intuitive with human logic rather than machine logic. Instead of software dedicated to computer experts, the author advocates an approach dedicated to computer users in general. This approach does not require users to have an advanced computer education, though it does advocate a deeper education of the computer user in his or her problem domain logic.

This book is intended for system software teachers, designers and implementers of various aspects of system software, as well as readers who have made computers a part of their day-today problem solving.

Sample Chapter(s) Chapter 1: Introduction to System Software (149 KB)

  • Introduction to System Software
  • Formal Systems
  • Ad Hoc Systems
  • Common Systems in Software Development
  • Hardware System
  • Functional Behavior of Hardware Components
  • Algorithmic Expression of a Hardware System
  • Using Computers to Solve Problems
  • Computer Process Manipulation by Programs
  • Memory Management System
  • I/O Device Management System
  • Computation Activity and Its Management Tools
  • Problem Solving by Software Tools
  • Web-Based Problem Solving Process
  • Software Tool Development Illustration
  • Software Tools for Correct Program Development
  • Using First Computers to Solve Problems
  • Batch Operating System
  • Problem of Protection
  • Timing Program Execution
  • Efficiency of Batch Operating Systems
  • Convenience of the BOS
  • Real-Time Systems
  • This is one of the few books in the market that promote programming as a problem solving process following Polya for mathematical problem solving
  • This book consolidates the concepts of system methodology, computer architecture, system tools program execution into workflow of the four steps Polya problem solving process
  • This book insists to hold the hands of readers to walk through the internal working of a computer system from problem deposition to hardware state transitions, a view that has been lost in most computer science curricula currently taught in universities and colleges

Type on 05/12/2014

Book received on 20/3/2015

Updated pp on 20/3/2015

Updated descrip on 06/10/15

FRONT MATTER

  • Pages: i–xxi

https://doi.org/10.1142/9789814663748_fmatter

Part 1 Systems Methodology

Chapter 1: introduction to system software.

  • Pages: 3–10

https://doi.org/10.1142/9789814663748_0001

  • allowing programmers to develop programs using a human logic;
  • allowing hardware to execute programs using a machine logic…

Chapter 2: Formal Systems

  • Pages: 11–24

https://doi.org/10.1142/9789814663748_0002

To understand how can one carry out actions that handle software systems (in software) we examine first how can one handle formal systems (in mathematics). We use set theory [Enderton (1977)] to discuss formal systems.

Chapter 3: Ad Hoc Systems

  • Pages: 25–33

https://doi.org/10.1142/9789814663748_0003

  • Objects (or elements) of D may not be specified by rules of math (not yet). For example, C programs are not specified by the rules of math.
  • Rules r of interaction in S may not be defined mathematically. For example, relations between functions making up a C program are not formally defined.
  • Behavior of the system may not be specified by mathematical functions. For example, the behavior of a process executing a program is in general not a function.

However, we handle ad hoc systems. For a complete specification, ad hoc systems should be characterized by the rules of math. Unfortunately, ad hoc systems are not constructed from ideal (mathematical) objects. Rather, ad hoc systems are models of behavior (representations) of real and very heterogeneous objects — sometimes expensive…

Chapter 4: Common Systems in Software Development

  • Pages: 35–48

https://doi.org/10.1142/9789814663748_0004

The most common systems in computer science are probably the state transition systems related to the finite automata theory [Hopcroft and Ullman (1979)]. However, while state transition systems are used as models of computation in general, transition systems are more appropriate as model of computations as performed by a computer. We follow Manna and Pnueli [Manna and Pnueli (1992)] to discuss this concept in the framework of system software.

Part 2 Computer Architecture and Functionality

Chapter 5: hardware system.

  • Pages: 51–71

https://doi.org/10.1142/9789814663748_0005

  • (1) Define the major behavior of the system;
  • (2) Identify system components performing the system behavior;
  • (3) Specify the functional behavior of system components;
  • (4) Develop an (algorithmic) expression of the system in terms of components at (2) performing the actions specified at (3);

until system performs according to its major behavior specified at (1).

Chapter 6: Functional Behavior of Hardware Components

  • Pages: 73–89

https://doi.org/10.1142/9789814663748_0006

  • Memory control unit
  • Memory simulation
  • Memory hierarchy
  • Sharing memory
  • Fair server for memory simulation
  • Functional Behavior of Processor Components
  • Functional Behavior of Control Processors
  • Implicit TestDevice
  • Explicit TestDevice
  • Automatic TestDevice
  • Efficiency of a hardware system

Chapter 7: Algorithmic Expression of a Hardware System

  • Pages: 91–92

https://doi.org/10.1142/9789814663748_0007

Step 4 of the systematic approach requires an algorithmic expression for the behavior of the system in terms of its components. The algorithmic expression of a hardware system using SSL is…

Chapter 8: Using Computers to Solve Problems

  • Pages: 93–112

https://doi.org/10.1142/9789814663748_0008

We need to emphasize the importance of the algorithmic expression of a computer system, developed previously as an ad hoc system, over and over in this text, thus justifying the computer use as a universal problem solving tool. Therefore, though redundantly, we start the discussion of computer based problem solving methodology by the reproduction of this expression…

Part 3 Software Tools Supporting Program Execution

Chapter 9: computer process manipulation by programs.

  • Pages: 115–131

https://doi.org/10.1142/9789814663748_0009

System software tools are programs which manipulate processes, software resources, hardware resources, and events. Processes are abstractions that represent computations performed by hardware. Software resources are programs written in various PL-s, data, and documents. Hardware resources are processors, memories, devices. Events, are interrupts, exceptions, and messages that occur during program execution. We dedicate this chapter to the software tools used to manipulate processes.

Chapter 10: Memory Management System

  • Pages: 133–149

https://doi.org/10.1142/9789814663748_0010

Various programs existent in memory at a given time require memory to be partitioned among computer users. The two main memory partitions are system memory area, occupied by programs in system software and user memory area, which is the memory available for user programs. While system memory area remains occupied by the same programs over long periods, the user memory area changes continuously…

Chapter 11: I/O Device Management System

  • Pages: 151–168

https://doi.org/10.1142/9789814663748_0011

As in the case of processor and memory, to manipulate I/O devices by program they need to be represented as data. To develop a device data representation we first look at the device functional characterization.

Chapter 12: Computation Activity and Its Management Tools

  • Pages: 169–196

https://doi.org/10.1142/9789814663748_0012

Unlike other computer resources, which are tangible entities and require management tools, computation performed by a computer platform is not tangible. It is a dynamic abstraction observable through the effect the events that occur during a computation task have on the other resources of the system. For example, an interrupt event may result in a switch-context operation (see section 9.8), an exception may result in the increase or decrease of the resources allocated to the currently running program, a message may result in complete change of computation configuration. Therefore, software tools that manage computation activity actually manipulate the events that may occur during computation and have the goal to preserve computation consistency and to maintain the computer busy as long as possible.

Part 4 Software Tools Supporting Program Development

Chapter 13: problem solving by software tools.

  • Pages: 199–203

https://doi.org/10.1142/9789814663748_0013

  • Tools that manage computer resources and the events that arrive during program executions. These tools belong to the Execution Support Environment (ESP). They are organized as libraries of system functions that can be called by program execution process.
  • Tools that allow computer user to map problems and problem solving algorithms into computer programs. These tools belongs to the Programming Support Environment (PSE). The execution of these tools is spawned by computer user using commands of a control language.

We examined the development of ESE tools in Part 3 of this book. Here we examine the design and evolution of PSE tools which are called System Programs (SP). More recent computer based problem solving methodology is identified with the process of program development. Therefore the collection of system programs are also called Problem Solving Environment. So here the acronym PSE is dually used. Collectively we refer to the ESE and PSE as software tools.

Chapter 14: Web-Based Problem Solving Process

  • Pages: 205–211

https://doi.org/10.1142/9789814663748_0014

WBPSP is an extension of computer based problem solving process by developing software tools dedicated to problem domain experts. That is, during WBPSP, while solving a problem of the domain D , problem solver can use a Domain Algorithmic Language (DAL(D)), characteristic to the domain, instead of using a programming language. Looking back at the CBPSP, this means that problem solver executes problem solving algorithms using her own brain instead of converting them into programs to be executed by the computer. This can be done because with WBPSP the computer is used by problem solver as a “brain assistant” that perform the operations involved in the problem solving algorithm upon the problem solver requests. In other words, problem solver communicates with her computer using her natural language. But natural language evolves dynamically with problem domain and it is strongly ambiguous. This was the reason to interpose translators from domain language to the computer language, i.e., programming, in the problem solving process in the first place. However, looking carefully at this situation we observe that the problem lies in the requirement that programming languages be Turing complete. That is, programming languages have been developed as universal problem solving tools. On the other hand human oriented problem solving is domain characteristic. For a given problem domain (such as mathematics, physics, chemistry, engineering, business, etc.) problem solving algorithm uses a DAL, which is a fragment of natural language spoken by the problem domain experts. Domain algorithmic languages are learned by domain experts during their domain education process and their ambiguities are removed by the domain context. Therefore if a DAL is formally defined and if every concept employed by a DAL algorithm is associated with a computer artifact representing its computational meaning in the domain, DAL expressions can be evaluated by problem solver using a computer in a similar way in which an arithmetic expression is evaluated using a calculator. Moreover, if the domain concept represented by a DAL algorithm that solves certain problem P is automatically associated with the computer program performing that algorithm as the concept's meaning, then DAL evolves with problem domain. Consequently the computer becomes a cognitive tool used by problem solver as a brain assistant during problem solving process…

Chapter 15: Software Tool Development Illustration

  • Pages: 213–247

https://doi.org/10.1142/9789814663748_0015

Software tool design and implementation may be very complex. The best illustration of a software tool is the design and implementation of a translator. This is because we understand and use translators which are mappings Translator : SL → TL where SL is a languages called the Source Language, and TL is another language called the Target Language. If SL and TL are computer languages, depending upon their level of abstraction, the Translator is called a Compiler, an Interpreter, an Assembler, and/or a Loader/linker. The algorithm performing the mapping depends on our ability to structure SL and TL as mathematical abstractions. Further in this chapter we discuss the compiler implementation as a problem solved during WBPSP where the domain of expertise is Programming Languages. Hence, DAL for us is any programming language one would like to chose to express the compiler implementation algorithm. However, we hope this discussion to be a model for the Web-Based Problem Solving Process carried out for other problem domains.

Chapter 16: Software Tools for Correct Program Development

  • Pages: 249–262

https://doi.org/10.1142/9789814663748_0016

Programs are programming language expressions developed by people (programmers) who are experts on the syntax and the semantic rules defining the programming language they use. However, since program development is a human activity, according to the Latin proverb “errare humanum est”, which translates in “to err is human”, a program may contain errors. So, the problem faced by software developers becomes the development of tools that allow programmers to create correct programs during computer based problem solving process. For that the software developers need first to define the meaning of the expression “correct program”. Since programs are algorithms expressed using programming languages, the program correctness becomes the correctness of the algorithms they represent. But irrespective whether we talk about the correctness of the algorithm or of the program, we need to remember that programs (or algorithms) are language expressions. And as language expressions they may contain two kind of errors: syntactic errors and semantic errors. Syntactic errors are violations of the language syntax during program development. Since language syntax is usually formally specified, syntax errors can be handled by the compiler. Semantic errors however are more difficult to handle…

Part 5 Computer Operation by Problem Solving Process

Chapter 17: using first computers to solve problems.

  • Pages: 265–272

https://doi.org/10.1142/9789814663748_0017

  • Formulate the problem;
  • Formalize the problem;
  • Develop an algorithm that solves the problem;
  • Program the algorithm (i.e., encode the algorithm as a valid program of a programming language available on the computer);
  • Compile the program thus obtained;
  • Load and link the compiled program;
  • Run the program;
  • Use the results in the universe of discourse.

The use of the first man-made computer for problem solving was performed by the programmer and is summarized in Figure 17.1…

Chapter 18: Batch Operating System

  • Pages: 273–279

https://doi.org/10.1142/9789814663748_0018

The computing environment of CP allows two types of programs to coexist in main memory: system programs, that perform actions initiated by CP, and user programs, that perform user computations. They must cooperate while executing a job. However, while performing their functions these programs perform destructive operations, such as read(JobFile) which can replace the contents of a memory area with the information read from the JobFile, thus destroying information stored in computer memory. The destruction of information would be a consequence of user programs and system programs violating their interaction protocol. For example, a user program may input a data record into a buffer that covers a portion of a system program memory area. A system program may input a control record into a buffer that covers a portion of a user program memory area. How can we prevent such situations…

Chapter 19: Problem of Protection

  • Pages: 281–296

https://doi.org/10.1142/9789814663748_0019

The mode bit and the interrupt mechanism are used to enforce a controlled communication between the BOS and the programs initiated by BOS, (among which the user program is). They cannot provide protection against malicious actions that the agents that share the computer can exercise against each other.

Chapter 20: Timing Program Execution

  • Pages: 297–302

https://doi.org/10.1142/9789814663748_0020

Timing program execution is particularly important to avoid the infinite looping of a program, thus preventing the denial of service aspect of system security. It is of equal interest when computation time becomes a shared resource of the computer platforms as required by real-time applications and time-sharing systems. Timing program execution requires a new architectural change which consists of providing hardware support for clocks and appropriate software support to manipulate these clocks. Hardware support for timing program execution consists of two kind of time measuring gadgets called clocks and timers. Clock registers (CLK) are used to time instruction execution and Timer registers (TMR) are used to time program execution. Clocks and timers behave similarly, they interrupt computation after each time unit they can measure…

Chapter 21: Efficiency of Batch Operating Systems

  • Pages: 303–313

https://doi.org/10.1142/9789814663748_0021

BOS has been developed as an automaton that controls the operation of a computing system consisting of: an operator batching jobs at one end of a JobFile, a computer which processes jobs from the other end of the JobFile, and devices that perform I/O operations encoded in the records of that JobFile. BOS evolved by automating the procedure performed by a human operator controlling the system while answering such questions as: is this automaton correct? and is this automaton reliable? . However, since computer is an expensive tool used by humans during problem solving process, questions such as: is this automaton efficient? , is this automaton convenient? , and does this automaton evolve with problem domains? , need also be answered.

Chapter 22: Convenience of the BOS

  • Pages: 315–328

https://doi.org/10.1142/9789814663748_0022

Computer based problem solving process evolved the BOS to perform the action…

Chapter 23: Real-Time Systems

  • Pages: 329–333

https://doi.org/10.1142/9789814663748_0023

A real-time system is a computing system that interacts in real-time with its environment. Real-time systems are used as control devices in dedicated applications. Examples such applications are surgical operations, aircraft control, industrial plant control, embedded-devices in house-hold appliances, etc. Software systems which control these applications are real-time systems also called control devices…

BACK MATTER

  • Pages: 335–344

https://doi.org/10.1142/9789814663748_bmatter

  • Bibliography

Teodor Rus is among the few people who have set the foundation of current computer technology. He spent 22 years (1960–1982) developing software systems working on Romanian, French, and German software industry. His books Data Structures and Operating Systems , John Wiley, 1979 and Formal Tools for Language Specification (in Romania), Romanian Academy, 1983 are among the first monographs that initiated current trends on software development. Thereafter, his other books System Software and Software Systems, Concepts and Methodology , Vols. 1 and 2, published by World Scientific in 1993, and 1994 respectively, covering a large spectrum of computer science curricula, were written for the undergraduate and graduate to learn computing inductively as problem solving tools, not blindly following and sitting on platform developed by experts to program for solutions.

what are the different steps in problem solving using computer

Related Books

what are the different steps in problem solving using computer

An Introduction to the Analysis of Algorithms

what are the different steps in problem solving using computer

An Elementary Approach to Design and Analysis of Algorithms

what are the different steps in problem solving using computer

C++ Programming with Applications in Administration, Finance and Statistics

what are the different steps in problem solving using computer

Introduction to Windows ® and Graphics Programming with Visual C++ ®

what are the different steps in problem solving using computer

Voronoi Diagrams and Delaunay Triangulations

what are the different steps in problem solving using computer

Introduction to Windows ® and Graphics Programming with Visual C++ ® .Net

what are the different steps in problem solving using computer

Hybrid Metaheuristics

what are the different steps in problem solving using computer

Advances in Chinese Computer Science

what are the different steps in problem solving using computer

Programming: A Primer

what are the different steps in problem solving using computer

Designs from Linear Codes

what are the different steps in problem solving using computer

Handbook of Software Engineering and Knowledge Engineering

what are the different steps in problem solving using computer

Multimedia Modeling

what are the different steps in problem solving using computer

Collaborative Recommendations

what are the different steps in problem solving using computer

Algorithms for Analysis, Inference, and Control of Boolean Networks

what are the different steps in problem solving using computer

Mathematical Tools in Computer Graphics with C# Implementations

Building secure and high-performance software systems.

what are the different steps in problem solving using computer

Geometric Computation

what are the different steps in problem solving using computer

Scientific Programming

what are the different steps in problem solving using computer

Computational Intelligence in Software Engineering

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/

Arc Talent Career Blog

Problem-Solving Skills for Software Developers: Why & How to Improve

how to improve problem-solving skills for software developers

Problem-solving skills go hand-in-hand with software development. Learn some great problem-solving techniques and tips for improvement here!

Software developer jobs today require that you possess excellent problem-solving skills , and for good reason. Unfortunately, there seems to be a sort of talent gap when it comes to this one skill required of all software developers.

Troubleshooting and problem resolution are both informally and formally taught, but you mostly find that software developers have to learn problem-solving skills on their own. This is true for self-taught developers , obviously, but also even for those with software engineering degrees or who’ve graduated from coding boot camps.

This is why it’s necessary to acquaint yourself with the problem-solving process, whether you are a newbie or an experienced developer. In this article, we’ll explore everything you need to know about problem-solving so you can 10x your software development career.

Arc Signup Call-to-Action Banner v.6

What are Problem-Solving Skills?

As a developer, what do we mean by problem-solving? Let’s attempt a simple definition.

In software development, problem-solving is the process of using theories and research to find solutions to a problem domain, while testing different ideas and applying best practices to achieve a desired result. Problem-solving also has to do with utilizing creativity and logical thought processes to identify problems and resolve them with software.

Becoming a great software developer hinges more on learning algorithms than programming languages or frameworks . And algorithms are simply step-by-step instructions to solve a given problem.

Read More : How to Build a Software Engineer Portfolio (With Examples & Tips)

Why are impeccable problem-solving skills crucial?

Making good use of a computer language can be likened to being a skilled writer. An effective writer must know how to construct sentences and use grammar appropriately. There’s more to writing than just knowing all the words in the dictionary, and that’s how it works for developers, too.

You have different tasks to work on as a software developer, including perhaps designing, coding, and troubleshooting. Much of your time will be spent on identifying problems, spotting and correcting bugs, and making sense of codebases from before you started working there. Being ingenious at problem-solving is essential in creating incredible solutions to issues that arise throughout software development.

To demonstrate ingenuity, let’s consider Google’s autocomplete tool as an example.

The autocomplete tool is built to suggest related terms in the search bar as you type. The idea behind the tool is to reduce more than 200 years of time spent typing daily and to help users save time by up to 25% while typing.

Here’s what had to be done:

  • To activate real-time completion of suggestions, the UI experience and JavaScript had to be implemented.
  • Next, since users could type just about anything, the autocomplete suggestions had to be compiled into a sensible list dependent on user input.
  • Then, Google had to create a back-end sustainability system for this function. Doing this meant massively increasing its infrastructure to accommodate all forms of data query and HTTP requests.
  • Finally, the user interface had to be refined by software engineers in order to make sure that every user enjoyed a worthwhile experience. So they employed Google Trends to power the auto-completion tool while using algorithms to take out explicit or offensive predictions in line with Google’s auto-completion policy.

This is just one of Google’s innumerable problem-solving examples, but it’s clear to see that solving problems involves more than just telling a computer to do stuff. It’s about your ability to come up with parameters rightly tailored to target users so they can meet their goals.

So why must developers focus on problem-solving at work?

Software developers work with a wide range of people and departments, and it’s common to discover that some clients and teams find it difficult to define what they want. As a problem solver, it’s up to you to help them identify their needs and communicate their thoughts in an effective way.

Of course, you’ll need time and practice to develop your problem resolution ability. That’s because it’s less about solving problems faster but more about coming up with the best solution . And then you’ll need to deploy that solution.

Read More : Common Interview Questions for Software Developer Jobs (Non-Technical)

Types of problem-solving skills

Now let’s talk about four types of problem-solving skills for developers:

1.  Parallel thinking

As a software developer, parallel thinking is a crucial skill necessary to perform optimally. This makes it possible for you to carry out two tasks that complement each other at the same time (like an optimized form of multitasking skills). Being able to reorder tasks to boost parallel execution can help to improve your output and save valuable time .

2. Dissecting broad and/or complex goals

When it comes to building software, you will need to effectively outline the steps and tasks necessary to achieve your goal. Developers must learn to break large and complex tasks into smaller assignments because this is an important skill that will help you create results with precision.

3. Reimplementing existing solutions

You don’t always need to reinvent the wheel. Part of being an effective software developer comes with being able to use already existing tools before even thinking of creating new solutions. Developing problem-solving skills is very much connected to finding solutions that already exist and reusing them.

4. Abstraction

Keep in mind that goals tend to evolve. So if your client comes up with new ideas, that will mean changing your design goals and reordering your tasks. A good programmer must learn to create solutions in such a way that does not require a complete redesign from scratch.

You also have to become adept at abstracting problems so that your solutions can get them resolved so long as they aren’t entirely different from the original issue. You don’t necessarily have to abstract every aspect to avoid more complications being created. This calls for balance by abstracting only where necessary without making narrow decisions.

Read More : Learn 8 Great Benefits of Working From Home

4 Important Tips & Strategies for Improving Problem-Solving Skills

To keep your problem-solving skills and techniques from growing weaker over time, you need to exercise them non-stop. As they say: practice makes perfect!

To train the problem-solving side of your brain, these four tips and strategies can help you improve your abilities:

1. Make problem-solving a part of your life

Never restrict yourself to working on problems only during work hours. Don’t make it a chore, but, instead, do things that make problem-solving look fun. The game of chess, solving puzzles, and playing video games that compel you to think critically will help strengthen your problem-solving skills, and you can tell your significant other you are advancing your career! 🙂

When you come to a complex problem in your life, whether it’s budgeting for a home or renovating the downstairs bathroom, approach it both creatively and critically. Ask yourself: What would a great software engineer do in this situation?

2. Use different platforms to solve problems

Proffer solutions to a set of problems without restricting yourself to one platform. Using different platforms and tools regularly helps make sure you become flexible as a problem-solver. And it makes sense, because there really is no universal solution for the different problems that pop up in your line of work. Trying out different platforms to solve different problems helps you to keep an open mind and enables you to test out different techniques when looking to find solutions.

Read More : 12 Common Mistakes Keeping You From Landing Your First Developer Job

Arc Signup Call-to-Action Banner v.4

3. Be open to assistance from external sources

Part of being a good software developer comes with being able to ask for help and also accept all forms of feedback. You might need a different opinion or a new set of eyes to help find the most fitting solution to some problems. It makes sense to view building problem-solving skills as more of a team effort rather than a personal journey.

Have an open mind and heart to function not only as an individual but also as a collective. It’s a utopian working environment where everyone supports each other to become better versions of themselves. So if you come across an issue that keeps you stuck, get help! You may find someone who has a more refined framework or method you never knew existed or would have thought of using. You could then learn from them and add their solution to your toolkit.

Get feedback often, as well. This could be the catalyst to making improvements to your processes and evolving them into something truly refined.

4. Tackle new problems using lessons from past solutions

As you practice and finesse your ability to identify problems and find solutions, you’ll begin to notice patterns. It’s more like developing your toolbox armed with a wide range of solutions that have proved useful in the past. So when problems emerge, you will notice how easy it is to take some of those old solutions and apply them to the new problem.

The more you attempt to apply creativity in solving problems, the more you grow your skills. In the long run, that will help you find the right solutions faster and apply them to a wide range of problems more naturally. It’s all about improving the effectiveness and efficiency with which you tackle new problems while applying only the best possible solutions.

Read More : How to Stay Motivated at Work

3 Complementary Skills to Improve to Become a Good Problem Solver

Developing software is mostly about problem-solving at the very core before even writing your first lines of code. You have to identify problems that can be solved using software. Then you have to go on to understand how people try to solve such problems in real life.

It’s up to you to come up with a framework that allows you to take both the problem and the solution and convert them into computer code. And you have to do this in such a way that makes the software even more efficient and effective than a human.

While going through this process, developers also have to handle other problems such as deadline deliveries, checking for bugs and fixing them, and collaborate across teams. So, supporting skills must not be overlooked.

Software developers must build interpersonal skills and collaboration skills . Being able to empathize, accept feedback, handle criticism, listen intently, and show respect for others are all important characteristics and abilities necessary for teamwork, and, thus, necessary for solving problems on the job.

Read More : 5 Ways to Stand Out & Get Noticed in Your Current Development Job

Communication

No one is an island, and that’s true when you consider how software engineers work. Building software requires keeping up with clients and teammates and other departments. You can’t afford to be a Lone Ranger, at least not 100% of the time, and that’s why employers always look for good communication skills.

Being a good software developer also involves how well you can break down very complex concepts to laypeople. You want to be the kind of person who fixes a problem and is able to explain how you were able to do it. It’s all about your ability to be clear and articulate about every aspect of your work. And you want to be able to communicate not just verbally but also in written form.

To build your communication skills as a developer, you can learn from more experienced people and observe how they interact with their clients. And, don’t forget, with more and more companies becoming global enterprises and going remote, it’s important to brush up on your intercultural communication skills , as well.

Logical thinking

The difference between elite software developers and average ones is often said to be logical thinking. The ability to process thoughts logically is important, because you’ll often spend most of your time finding and fixing bugs rather than writing code.

Problems can show up from just about anywhere, even from what seems to be the most insignificant errors. So, your ability to detect software issues and solve these problems using deductive thought processes is a vital ingredient to your success as a software developer.

Read More : Questions to Ask at Interviews for Software Engineering Jobs

Problem-Solving Stages & Practices

There are countless problem-solving processes and various schools of thought regarding the best way to approach problems whenever they arise. To solve that problem, we’ve pooled some of these frameworks together to come up with a comprehensive approach to problem-solving.

Step 1 – Define the problem

You have to first start with problem identification. Knowing what you are dealing with is important, because you don’t want to risk spending valuable time applying wrong solutions. Avoid making automatic assumptions. Even when the symptoms look familiar, you want to investigate properly because such signs could be pointing to something else entirely.

Problems in software development come in different sizes and scopes. You could be having trouble getting some aspects of the product to respond in the desired way. Or maybe you’re having issues trying to decipher a codebase section where you can no longer communicate with the original developers. Sometimes, the problem could come in the form of an unfamiliar error message and you’re at loss.

Once you’re able to define the problem, make sure to document it.

Step 2 – Analyze the problem

Now it’s time to carry out problem analysis . Before deciding what problem resolution methods to adopt, it’s necessary to find out all there is to the issue, which builds on our first step. This will make it easier to come up with ideas and solutions later on.

Problem analysis isn’t always a walk in the park. There are times when the problem involves a very small mistake such as failing to import a package correctly or a small syntax error. Other times, however, it could be such a huge error, like the entire program acting differently than what you want. There might be no alarms or blinking red lights to tell you what the exact problem is.

If you encounter such situations, you can find answers by articulating the problem. Document what you intend to do, what you’ve done, the original intention for the program, and where you currently are. Communication comes in handy here, of course, not just in your documentation, but also in how you relay it to your teammates.

Read More : Got a Busy Developer Schedule? Here’s How to Keep Learning & Make Time

Step 3 – Brainstorm

This step has to do with generating ideas, and you can benefit from discussing the problem with a team and then coming up with ways to get it fixed. Keep in mind that problem-solving at work involves interacting with a diverse group of people where the individuals have unique skill sets and experiences.

Many developers tend to neglect the previous steps and rush straight into brainstorming. That’s definitely not a good way to go about problem-solving. The idea is not to skip the important steps in the process.

Once you get to the point where ideas need to be generated, do not discard any, because this step relies on a wide range of ideas. Only after gathering as many perspectives as possible should you then begin reviewing and narrowing down to the best possible solution.

Step 4 – Make a decision

At this point, all viable solutions have to be analyzed before selecting the most appropriate one to implement. Picking the best possible solution depends on its ability to meet certain criteria. It must be suitable, feasible, and then acceptable.

What it means is that the solution must be able to get the problem solved. It should also be easy to see how such a solution fits into the equation. And then every member of the team involved in the brainstorming process has to unanimously accept the solution.

Read More : How to Network as a Software Engineer

Step 5 – Implement

After identifying and choosing the solution, the next logical step is to plan out the implementation process and then execute it. Coming up with a detailed plan is crucial if the solution is to be a success.

Now this plan must detail all the necessary steps required to implement the solution. It will also explain the length of time and stages of work required. Once all of that is put in place, you can then move forward with the execution. The idea is not just to execute a solution but to do it the right way.

Implementation using automated tests can help to keep unexpected issues from arising in the future. Some other problem-solving practices or approaches begin the process with this step. So, whenever any changes are made to the project, tests asserting that the changes will perform as required will be written first before the changes are then made.

Step 6 – Evaluate

No problem-solving process can be deemed comprehensive enough if there is no room for evaluation. Whatever the solution may be, it has to undergo strict evaluation in order to see how it performs. That will also help determine whether the problem still exists and the extent to which such an issue keeps recurring.

In the event that the problem persists despite the implementation of a detailed plan, then the developer and team may even have to restart the problem-solving process. However discouraging that may sound, at least you’ll have caught it early enough. And, this also proves the process worked.

Read More : How to Become a Software Engineer: Education, Steps & Tips for Success

Arc Signup Call-to-Action Banner v.1

Final Thoughts

Developing problem-solving skills is quite necessary for software developers. To be a successful problem solver, you will need lots of years down the line to practice what you study.

Always remember that you are a problem solver first before anything else. There is more to building software than just understanding the tech behind it and writing lines of code. It’s all about improving your ability to identify problems and find solutions, and that will need lots of experience on your part.

Never shy away from problems, but learn to think critically and logically in any situation. By applying the six-step strategy for problem-solving at work discussed in this piece, you will be more equipped to come up with the most effective and efficient solutions.

We hope you enjoyed reading our guide on how to solve a problem as a software developer and ways to improve skills as a problem solver! If you have any questions, feedback, or other great problem-solving techniques or methods, let us know in the comments below 🙂

' src=

The Arc team publishes insightful articles and thought leadership pieces related to software engineering careers and remote work. From helping entry-level developers land their first junior role to assisting remote workers struggling with working from home to guiding mid-level programmers as they seek a leadership position, Arc covers it all and more!

Further reading

How to Move Into a More Senior Role as a Software Developer leader management or leadership position

Ready to Take On a Senior Role or Leadership Position as a Developer?

what are the different steps in problem solving using computer

Here Are 43 of the Best Online Developer Communities to Join in 2024

how to improve analytical skills for developers

Key Analytical Skills for Developers (& How to Continually Improve Them)

How to know when you can consider yourself a senior software developer or engineer

Here’s When You Can TRULY Call Yourself a “Senior” Software Developer

how to improve time management skills for remote workers and managing time effectively as a software developer

Time Management Skills for Developers: Best Tips, Tools, and Strategies

Do I Need a Software Engineering Degree for Software Development Jobs?

Software Engineer Degree: Pros, Cons & Alternatives

  • Artificial Intelligence
  • Generative AI
  • Business Operations
  • Cloud Computing
  • Data Center
  • Data Management
  • Emerging Technology
  • Enterprise Applications
  • IT Leadership
  • Digital Transformation
  • IT Strategy
  • IT Management
  • Diversity and Inclusion
  • IT Operations
  • Project Management
  • Software Development
  • Vendors and Providers
  • Enterprise Buyer’s Guides
  • United States
  • Middle East
  • España (Spain)
  • Italia (Italy)
  • Netherlands
  • United Kingdom
  • New Zealand
  • Data Analytics & AI
  • Newsletters
  • Foundry Careers
  • Terms of Service
  • Privacy Policy
  • Cookie Policy
  • Copyright Notice
  • Member Preferences
  • About AdChoices
  • Your California Privacy Rights

Our Network

  • Computerworld
  • Network World

Differentiating people, process, and technology problems: A guide for CISOs

Finding the root cause of, and solving, security problems requires teasing out whether the issue is tied to people, process, or technology — or whether it’s a combination of factors. having a framework to assess the effectiveness of all three will go a long way toward easing the task..

what are the different steps in problem solving using computer

When it comes to security, knowing you have a problem is only half the battle – if that. Figuring out how to solve the problem efficiently is what really matters.

And to do that, you need to determine the root cause of the problem. Is it a people issue, such as lack of enough security personnel? Is it inefficient processes that hamper communication within security teams? Is it a lack of the right technology for enabling security operations?

For CISOs, answering these questions is rarely easy. Most problems stem from a complex mix of people, process, and technology deficiencies, but pinpointing their sources can be a real challenge.

It becomes easier, however, when security leaders have a consistent framework in place for assessing the effectiveness of their people, processes, and technology – which is why I recently developed such a framework for IDC. Here’s a look at the guidance it offers and how CISOs can leverage it to identify the root cause of cybersecurity shortcomings, as well as maximize the impact of security investments.

Backstory: The challenge of assessing the root cause of security shortcomings

Let me begin by sharing a little backstory to explain why IDC developed a guide to assessing people vs. process vs. technology issues in cybersecurity.

Recently, I helped advise an IDC client whose security team was struggling to close thousands of vulnerabilities. They knew about the problem, and they knew in theory what they had to do to fix it – patch or otherwise remediate the vulnerabilities – but they were consistently struggling to close open vulnerabilities faster than they discovered new ones.

Getting to the root of the issue required figuring out whether the problem lay with the company’s security personnel, processes, or technology. Did they simply not have enough staff to remediate vulnerabilities quickly enough? Did they lack efficient or consistent remediation processes? Were their vulnerability detection tools falling short by, for example, generating false positive alerts about vulnerabilities that didn’t actually exist?

As my IDC colleagues and I talked through these possibilities with the client, we realized that this type of challenge – sorting people from process from technology weaknesses in the realm of cybersecurity – was a widespread challenge for organizations of all types, not just this one client. Despite the fact that cybersecurity spending remains a top priority for businesses ( Security Spending Still the Top Priority , IDC, September 2023), cybersecurity outcomes have only grown worse in recent years, with threat categories like ransomware setting new records for the scale and impact of attacks.

If businesses are tossing more money at cybersecurity yet experiencing worse outcomes, we deduced, they were likely not spending the money as effectively as possible. They might be overinvesting in security technology, for example, while underinvesting in people qualified to put that technology to maximize use.

The complex interplay of security people, processes, and technologies

It’s easy to understand why a business might fail to maximize the impact of its cybersecurity investments. Identifying the greatest weaknesses in cybersecurity strategies is rarely easy due to issues like a lack of comprehensive tracking of cybersecurity metrics and an inability to determine how spending on different areas impacts outcomes.

You won’t know whether hiring more security staff leads to a reduction in successful breaches, for example, if you don’t continuously monitor data in both of these areas. Nor can you determine whether investing in a new patching tool improves your vulnerability remediation velocity if you’re not tracking the relevant data.

A framework for identifying cybersecurity strengths and weaknesses

But by monitoring the right information and analyzing it in a consistent way, businesses can effectively distinguish people and process from technology issues. For example, when it comes to people, they can track the following metrics:

MetricPurpose
Cybersecurity team head countTrack the total size of the cybersecurity team to establish a baseline for the scope of personnel resources
Spending on cybersecurity personnelMonitor the personnel cost of cybersecurity, which typically accounts for the largest share of spending
Hours worked by personnel on planned workMonitor how much time staff spend performing routine work (like security monitoring) and determine when staff are overstretched
Hours worked by personnel on unplanned work (such as working after-hours to respond to a major incident)Monitor how much time staff spend responding to unexpected, time-sensitive challenges and determine whether problems like ineffective tools or inefficient processes lead to excess unplanned work

This data provides quantifiable visibility into the security investments that a business has made in the “people” category. By comparing this data with metrics related to processes and technology, security leaders are in a position to draw informed conclusions about where they are succeeding and where they are not.

As a basic example, imagine that cybersecurity personnel head count has remained unchanged for years and that open vulnerability counts have significantly increased during the same period. That would suggest that the organization simply doesn’t have enough staff to keep up with increased rates of vulnerabilities, and/or that it would benefit from better vulnerability detection tools. Of course, if data related to technology investments shows the organization has improved its vulnerability management technology in recent years, then business leaders could rule out technology shortcomings as the root cause of vulnerability management challenges.

This is a simple example, of course. In the real world, people, process, and technology issues often overlap in complex ways, and identifying the root cause of a security challenge is rarely as simple as comparing just two data points. But when you have a rich set of data available to track the effectiveness of security people, processes, and technologies in equal part, you become capable of making informed decisions about even the most complex security shortcomings.

That, at least, is the philosophy behind the framework we’ve developed to help cybersecurity leaders think through their strengths and weaknesses using the people-process-technology model as a guide.

Learn more about IDC’s research for technology leaders .

International Data Corporation (IDC) is the premier global provider of market intelligence, advisory services, and events for the technology markets. IDC is a wholly owned subsidiary of International Data Group (IDG Inc.), the world’s leading tech media, data, and marketing services company. Recently voted Analyst Firm of the Year for the third consecutive time, IDC’s Technology Leader Solutions provide you with expert guidance backed by our industry-leading research and advisory services, robust leadership and development programs, and best-in-class benchmarking and sourcing intelligence data from the industry’s most experienced advisors. Contact us today to learn more.

Christopher Tozzi , an adjunct research advisor for IDC, is senior lecturer in IT and society at Rensselaer Polytechnic Institute. He is also the author of thousands of blog posts and articles for a variety of technology media sites, as well as a number of scholarly publications. Prior to pivoting to his current focus on researching and writing about technology, Christopher worked full-time as a tenured history professor and as an analyst for a San Francisco Bay area technology startup. He is also a longtime Linux geek, and he has held roles in Linux system administration. This unusual combination of “hard” technical skills with a focus on social and political matters helps Christopher think in unique ways about how technology impacts business and society.

Related content

Ethics for ransomware: to pay or not to pay, can you have too many security tools, strategize, modernize, and lead: transform your business with application portfolio modernization, security team management: top 4 findings from discussions with cisos, from our editors straight to your inbox, show me more, the hp-autonomy lawsuit: timeline of an m&a disaster.

Image

The real AI training gap? IT leaders believe in it, but many don’t provide it

Image

Rajendra Kadam, SVP, Health Plan Operations & CIO at Liberty Dental, joins CIO Leadership Live from Foundry's CIO100 event

Image

CIO Leadership Live Middle East with Angela Halawi, Women in Tech Ambassador, UAE

Image

An extended goal programming approach with piecewise penalty functions for uncertain supplier-material selection problem in cardboard box manufacturing systems

  • Zahra Najibzadeh 1 ,
  • Hamid Reza Maleki 1 &
  • Sadegh Niroomand 2  

Scientific Reports volume  14 , Article number:  20714 ( 2024 ) Cite this article

Metrics details

  • Applied mathematics
  • Engineering

In this study a real case multi-objective material and supplier selection problem in cardboard box production industries is studied. This problem for the first time optimizes the objective functions such as total wastage amounts remained from all raw sheets, total costs of the system including purchasing cost and transportation cost (including fixed and variable costs) of the raw sheets, and total overplus of produced cardboard boxes. To be closer to the real situations, as a novelty, the problem is formulated in belief-degree-based uncertain environment with normal distribution where this type of uncertainty applies the ideas of experts. A solution approach including two steps is proposed to solve the problem. In the first step, the proposed uncertain formulation is converted to a crisp form using a typical chance constrained programming scheme. In the second step, a new goal programming approach containing a piecewise penalty function is developed in order to solve the obtained multi-objective crisp formulation. In this approach, based on the ideas of experts, multiple goals are considered with different penalty values. A case study from cardboard box industries is considered to evaluate the proposed formulations and solution approach. According to the obtained results, the proposed solution approach is compared to similar approaches of the literature and its efficiency is studied.

Introduction

Regarding the importance of selling/purchasing performance issues, the manufacturing companies are more trying to increase their ability to attract customers, communicate suppliers, and compete with their competitors and surpass them. A challenging problem in this field is choosing the right suppliers (known as supplier selection problem (SSP)) (see Ayhan 1 , Ayhan and Kilic 2 , Tan and Alp 3 , Asgari et al. 4 , Hajiaghaei-Keshteli and Fathollahi-Fard 5 , Khalili Goudarzi et al. 6 , Heydari et al. 7 , Aghaei Fishani et al. 8 , Ma and Zhou 9 , Peukert et al. 10 , Hajiaghaei-Keshteli et al. 11 , Heraud et al. 12 ). In this problem, the choice between suppliers that provide raw materials with better quality, lower prices, and shorter delivery times is significant. However, among the SSP criteria, the most effective factor on the company’s performance is the price of raw materials. For example, this cost may change from 70% of total revenue in automotive industry to 80% in high-tech industries 13 . So that the price factor can be considered as a priority criterion for selecting the suppliers of a factory. In the SSP, there are other important factors such as waste of time and raw materials, transportation cost, etc. Therefore, this problem can be considered as a multi-objective problem based on some constraints such as meeting the customers’ demands under the supplier’s capacities, etc. (see Mosallaeipour et al. 14 ).

The literature of supplier material selection topic contains many interesting studies and here we will briefly explain some of them. Awasthi et al. 15 considered a supplier selection problem with a single producer to find a low-cost set of suppliers that can satisfy stochastic demand. Aghai et al. 16 considered the performance of potential suppliers against multiple criteria in the supplier selection problem with fuzzy type uncertainty. Also, they proposed a discount method to determine the best suppliers. Nekooie et al. 17 considered supplier selection problem with qualitative and quantitative factors. Strategic and operational risks were taken into account. Arikan 18 considered multiple sourcing supplier selection problem under fuzzy uncertainty with three objective functions minimizing total monetary costs, maximizing total quality, and maximizing service level of purchased items, considered SSP under stochastic demand with two extensions: one restricts the number of suppliers and the other allows multi-period sourcing. Also, Abdollahi et al. 19 proposed the method of selecting an appropriate supplier based on product-related and organization-related factors. Niromand et al. 20 , 21 considered multi-criteria supplier material selection in carton box manufacturing under robust uncertainty. Also, in continue they studied the simultaneous selection of suppliers and materials in the cardboard box manufacturing industry and proposed some new hybrid form of the fuzzy programming approach to solve the problem in fuzzy environment 20 , 21 , 22 . Proposed a fuzzy interactive approach for a multi-objective SSP model including three minimization functions such as cost delivery, time, and rejected items.

In this study, we discuss supplier selection programming with a multi-objective optimization model in a real cardboard box manufacturing company. The purpose of this issue is to minimize the wastage of cutting raw materials, and at the same time minimizing the purchasing cost of raw materials and its transportation cost, and also minimizing the surplus of production. So, it is modeled as a multi-objective mixed integer linear programming model. This problem is an extended version of the problem considered by Niroomand et al. 20 , 21 where a different discount logic for purchasing the raw materials is applied and transportation costs with fixed and variable charges (see Ref. 23 ) are added. Since the problem is investigated in real situation some parameters cannot be precisely determined, so uncertainty is an important issue in this problem. But in some situations, decision maker cannot obtain obvious historical data of parameters, and this sometimes happens due to starting the project for the first time in a new location, marketing fluctuations, etc. Due to these conditions, the exact value of the parameters cannot be easily predicted and requires expert opinion, so the uncertain values are modeled by the uncertainty theory based on the degree of belief 24 , Niroomand et al. 25 , Niroomand et al. 20 , 21 ). According to the conditions some parameters of the problem such as demand, price and transportation cost coefficients cannot be clearly determined, and are considered under belief-degree-based uncertainty. This type of uncertainty arises from the lack of precise historical data or the influence of unpredictable market conditions, which makes it challenging to assign exact numerical values to these parameters. In real-world scenarios, especially in new projects or volatile markets, this uncertainty needs to be carefully managed to ensure robust decision-making. By incorporating belief-degree-based uncertainty, the model accounts for the expert opinions and subjective judgments that are often necessary when precise data is unavailable. So, it is the first time that these types of problems are investigated under this type of uncertainty. This novel approach allows for a more realistic representation of the decision-making environment, enhancing the model's applicability and reliability. In the process of problem solving, there is a need to eliminate uncertainty and develop crisp equations, so the chance constraint method is used to convert the uncertain model to a multi-objective crisp form. The chance constraint method provides a systematic way to handle uncertainty by transforming the probabilistic constraints into deterministic equivalents, thereby simplifying the problem without losing the essence of uncertainty. This transformation is crucial for applying standard optimization techniques and obtaining feasible solutions that are practical and implementable. Moreover, this approach ensures that the solutions are robust and reliable, offering a higher degree of confidence in the decision-making process. As another novelty, the method proposed by Jadidi et al. 26 is extended as a new goal programming method where several aspiration levels are determined for each objective function and apply piece-wise penalty function in order to achieve a better result. This extension allows for a more flexible and nuanced approach to goal programming, accommodating varying levels of aspirations and priorities for each objective. By implementing piece-wise penalty functions, the model can better handle deviations from the desired goals, leading to more balanced and effective solutions. This innovative method not only enhances the precision and adaptability of goal programming but also provides a more comprehensive framework for decision-makers to navigate complex multi-objective scenarios. Finally, a numerical instance from the case study is used to evaluate the performance of the proposed new goal programming approach and compare it to the methods of the literature. The results of this evaluation demonstrate the superiority of the extended method in achieving optimal trade-offs among multiple objectives, showcasing its potential as a powerful tool in multi-objective optimization. Detailed comparisons with existing methods highlight the advantages and improvements brought by the new approach, underscoring its practical relevance and applicability in real-world situations.

The paper is organized in several sections. Section “ Literature review ” represents literature on the subject in different fields of this article. Section “ Problem description and formulation ” describes and models the multi-objective supplier and material selection of the cardboard box manufacturing company in uncertain and crisp forms. Section “ Solution approach: goal programming with piecewise penalty function ” presents the new goal programming approach. Section “ Computational experiment of the case study ” reports the computational experiments. Section “ Conclusion ” represents the concluding remarks.

Literature review

In this part, we will discuss the subject literature in the fields of goal programming, cardboard box manufacturing and the belief-degree-based uncertainty, and we will briefly mention several articles that have researched these issues.

  • Goal programming

Since SSP can be formulated in the category of multi-objective problems, so they can be optimized by using appropriate multi-objective methods such as goal programming (GP), fuzzy multi-objective programming, weighted maximum optimization, etc. as have been proposed in the literatures and some of them are described here. Chang 27 presented a new technique called multi-choice goal programming (MCGP) for supply chain modeling. Afterwards he improved the method and provided aspiration levels for each objective for obtaining better result (see Chang 28 ). Afterwards, Chang et al. 29 extended the proposed method of Chang 28 and developed fuzzy multi-choice goal programming for SSP and defined membership function in the process of solving. Tabrizi et al. 30 , extended the model of Chang 28 and applied ambiguous aspiration level to introduce fuzzy multi-choice goal programming. Extended the previous methods and proposed lower and upper bounds for the aspiration level of each objectives. Rabieh et al. 31 presented an integrated robust-fuzzy method to select suppliers by considering risk and it was applied to a real case of supplier selection in automobile industry. Mirzaee et al. 32 discussed the problem of supplier selection and order allocation with multi-period, multi-product, multi-supplier, multi-objective cases. The problem was formulated by a mixed integer linear programming model and for solving they applied, preemptive fuzzy goal programming approach. Jokar et al. 33 suggested weighted fuzzy AHP method for the SSP model based on two-stage stochastic programming and robust optimization approaches. Kilic and Yalcin 34 considered the environmental factors that are the main decision point in the supply chain in the form of supplier selection problem and to find the best suppliers applied two-phase modified fuzzy objective programming.

  • Cardboard box manufacturing

Cardboard box manufacturing industry is one of the most important manufacturing industries in which cardboard boxes are obtained by cutting the raw materials, which are in the form of rectangular raw sheets, into smaller parts. The raw materials required by these factories are provided to the manufacturer so choosing a supplier who provides the raw materials to the manufacturer in a shorter time and at a lower cost is very important, and therefore these types of issues are among the issues of supplier selection problem. In this section, we will briefly describe the articles that have been researched on this issue.

Mosallaeipour 35 has addressed the issue of selecting raw material suppliers in the cardboard box production industry, which is obtained by cutting rectangular raw materials into smaller pieces, and in this issue, uncertainty of the fuzzy type has been considered. Also, Ref. 20 , 21 investigated the problem of selecting suppliers and raw materials simultaneously in carton manufacturing industries and developed a multi-criteria mixed integer formula to select the size, quantity and supplier of raw sheets used and with the aim of minimizing objectives such as cost, the wastage of sheets and the excess of cardboard boxes at the same time. Later Gavrilescu et al. 36 , had a challenging work program through the reuse of production waste in the form of cardboard strips, edges and other waste to create a new engineered product that is environmentally friendly and sustainable that the market needs, by extending the life cycle of cardboard waste. We created and applied the basis of an innovative approach in the environment, which follows practical environmental design. Lo-Iacono-Ferreira et al. 37 , scrutinized the carbon footprint of cardboard box manufacturing and the impact of using cardboard box containers to store and transport 1000 tons of fruit and vegetable products by road from their origin in Almeria, Spain, to their destination market. Afterwards Betul and Akpinar 38 investigated the weight and thickness of E flute and BC flute corrugated cardboards, which are prepared using different types of paper, and for this purpose, they were subjected to ECT crushing test, and the obtained results show that the strength of corrugated cardboard increases with the increase in paper weight. Buendía et al. 39 , investigated the effects of active packaging (a cardboard box containing a complex containing bicyclodextrin (βCD) with a mixture of EOs) on the quality of bell peppers (green, red and yellow) at a certain temperature. Also Tannady and Purwanto 40 , studied the corrugated cardboard box and the advantages of using it and solving the causes of defects in their production, which included human factors, poor training of machine operators, motor-operated machines, etc. Considering that in the production of cartons, features such as diversity in the type and processing method for each carton, special operating machines that are set up by a technician are important, therefore, in this study, Recently, You and Hsieh 41 created a mathematical model and a safety-based algorithm ((IBA) and Genetic Based Algorithm (GBA) to develop decision making and production schedule and determine the best decisions to minimize total cost as well as early product delivery.

Belief degree-based uncertainty

When examining the problem in real conditions, some parameters of the problem cannot be determined definitively, so these parameters are affected by the uncertainties such as fuzzy theory, robust probability theory, uncertainty of degree of belief, etc. But sometimes, due to the lack of historical data or their invalidity or factors such as weather conditions, sudden accidents and crowding, the probability distribution of these parameters is not available. In some cases, it is not even possible to conduct experiments and collect data. Like checking the resistance of a built bridge against the force applied to it or the number of volcanoes recorded in a certain area. In these cases, one of the solutions is to use the opinion of experts in the relevant field to express their opinion based on the available evidence and documentation and their experiences. Experts and specialists are used to evaluate the degree of belief in the occurrence of each event to describe these parameters. In this case, the uncertainty theory proposed by Liu 24 can be used to deal with the degree of belief. In this section, we will briefly describe articles in this field.

Chen et al. 42 proposed a semi-variance method for choosing diversified portfolios, where security returns are considered as uncertain variables and are presented based on experts' estimates. Based on the concept of semi-variance and presenting three features for this method, he has proposed two different types of mean-semi variance diversified models for selecting the portfolio of uncertain variables, and to solve the models due to their complexity, a combined intelligent algorithm based on 99 methods and genetic algorithm has designed. Mahmoodirad et al. 43 , examined a linear fractional transportation problem in an uncertain environment with uncertain parameters of belief-degree-based uncertainty, which is transformed into an explicit form using three approaches: expected value model and chance constraint model and the combination of two methods. We can also mention Mahmoodirad and Niroomand 44 , who for the first time investigated the problem of designing a supply chain network with environmental effects and direct transportation in an uncertain environment based on the degree of belief. They used the three approaches of expected value model, chance constraint method and their combination to transform the proposed uncertain problem into its explicit form. Also, to solve the obvious problems obtained from two multi-objective optimization approaches, Goal Programming (GP) and Global Criterion Method (GCM) used. Also, for the first time, Mahmoodirad and Niroomand 45 , studied the problem of designing an uncertain dual-purpose supply chain network with cost and environmental effects under belief-degree-based uncertainty. He used the two approaches of expected value and chance constraint method to transform the uncertain problem to transform the uncertain model into its explicit form. Shen and Zhu 46 , investigated a two-echelon fixed charge transportation problem under uncertainty and variables like the demands, supplies, availabilities, fixed charges, and transported quantities in this problem are assumed as belief-degree-based uncertainty variables. they applied the expected value, a chance-constrained method to find the deterministic equivalent, and then proposed a Genetic algorithm and particle swarm optimization to solve the model. Also, Song et al. 47 investigated uncertain mixed-integer programming for uncertain product configuration model with consideration uncertain lead-time and time-sensitive demand. Niroomand et al. 48 takes into account the efficiency of production boxes, the waste value of raw sheets, and the inventory cost of excess boxes produced in the carton industry. This problem is considered under the belief-degree-based uncertainty, and the expected value method was used to achieve a crisp model.

Summary of the contributions of this study

In this article, as previously explained in the previous chapter, the problem of making a cardboard box from rectangular raw sheets with the three objectives of minimizing the cost of supplying and transporting raw materials, minimizing waste caused by cutting raw materials, and reducing surplus production. It has been noticed that the variables of the problem are of belief-degree-based uncertainty, which according to the fluctuations affecting the market have been used to estimate them from the point of view of experts, therefore, the uncertainty of belief has been applied to the variables and then using the chance constraint method of equations. After obtaining the crisp model, we solved the problem by using the modified method of goal programming. The contributions of this study can be summarized as below.

Comparing to the literature of the cardboard box manufacturing planning problem, a new discount policy is considered in the proposed formulation.

Such problem, for the first time is formulated with belief-degree-based uncertain parameters.

According to the preferences of the managers, a new goal programming approach with piece-wise penalty function is introduced.

Problem description and formulation

In this section, the multi-objective problem of material and supplier selection (MSMSP) in the cardboard box production environment is described and formulated. The problem consists of different aspects, so, is defined as a multi-objective programming problem. Since the problem is considered in real conditions, some parameters are affected by uncertainty, which according to the conditions of the problem and the lack of historical data, the belief-degree-based uncertainty is appropriate for that. More details are given in the following sub-sections.

Description of the MSMSP

As mentioned earlier, the problem of this study is related to the suppliers and the materials in a cardboard box manufacturing industry which involves suppliers, producer, and consumer together. Cardboard boxes are produced in different sizes and usually used to package and transport goods. In this problem, raw paper sheets are provided by suppliers in different sizes. Each size of the raw sheets can be cut to produce a certain quantity of a certain size of cardboard box. After cutting, an unused area of the raw sheet is remained. This unused area is called wastage . On the other hand, as all raw sheets should be converted to cardboard boxes in the production system, some quantity of each cardboard box may be produced extra than the considered demands. This extra quantity is called product overplus . In this production system, the costs play critical role. The costs include purchasing costs and transportation costs. The summation of these two costs is called net cost . Notably, the purchasing cost follow a discount policy where for each size of raw sheet for orders more than a certain value (break point) the purchasing cost of the extra units is decreased. Also, transportation cost includes fixed transportation cost and variable cost which is depended to the number of raw sheets transported by each transportation device. Notably, the variable transportation cost follows a discount policy where for each raw sheet size for orders more than a certain value (break point) the variable transportation cost of the extra units is decreased. The considered problem is more complete than the study of Niroomand et al. 20 , 21 . Other than the concepts of the mentioned study, in this study we consider different discount policy and also fixed and variable transportations costs.

In addition, some parameters of this problem such as discount break point, raw material price, raw sheet transportation cost, etc. may not be possible to be determined exactly. Since we consider a real company and due to the market fluctuations, the historical data of the parameters may not be available certainly, so, the uncertainty theory explained by the Appendix is considered to represent the problem. Therefore, in the rest of this section, first the problem is formulated as a deterministic model, then its belief-degree-based uncertain form is represented, and finally the uncertain form of the problem is converted to a crisp form to be solved.

Deterministic mathematical formulation

In order to formulate the problem described by Section “ Description of the MSMSP ”, the following notations are defined in advance.

Indexes:

\(i\)

index used for types of cardboard box,

\(j\)

index used for types (sizes) of raw sheet,

\(k\)

index used for suppliers

Parameters:

\(I\)

number of cardboard box types available in the planning horizon,

\(J\)

number of different types of row sheet to be supplied by the suppliers,

\(K\)

number of suppliers,

\(M\)

a large positive value,

\({d}_{i}\)

demand of cardboard box type \(i\) displayed by unit amount,

\({a}_{ij}\)

number of cardboard box type \(i\) that can be cut from raw sheet type \(j\),

\({w}_{ij}\)

wastage amount residuary after cutting cardboard box type \(i\) from raw sheet type ,

\({g}_{jk}\)

discount break point for purchasing raw sheet \(j\) from supplier \(k\),

\({g{\prime}}_{jk}\)

discount break point for transportation of raw sheet \(j\) from supplier \(k,\)

\({pc}_{jk}^{1}\)

normal price of row sheet \(j\) provided by supplier \(k\),

\({pc}_{jk}^{2}\)

reduced price of row sheet \(j\) provided by supplier \(k\) (\({pc}_{jk}^{1}\ge {pc}_{jk}^{2}\)),

\({fc}_{ijk}\)

fixed cost for transportation of raw sheets type \(j\) which is purchased from supplier \(k\) and used to produced box type \(i\),

\({tc}_{jk}^{1}\)

normal cost for transportation of raw sheet \(j\) provided by supplier \(k\),

\({tc}_{jk}^{2}\)

reduced cost for transportation of raw sheet \(j\) provided by supplier \(k\) (\({tc}_{jk}^{1}\ge {tc}_{jk}^{2}\))

Variables:

\({T}_{jk}^{1}\)

binary variable demonstrates if normal price is applied for row sheet \(j\) provided by supplier \(k\),

\({T}_{jk}^{2}\)

binary variable demonstrates if reduced price is applied for row sheet \(j\) provided by supplier \(k\),

\({T}_{jk}^{{\prime}1}\)

binary variable demonstrates if normal price is applied for transporting raw sheet \(j\) provided by supplier \(k\),

\({T}_{jk}^{{\prime}2}\)

binary variable demonstrates if reduced price is applied for transporting raw sheet \(j\) provided by supplier \(k\),

\({Y}_{ijk}\)

quantity of raw sheet \(j\) purchased from supplier \(k\) used for producing box type \(i\),

According to the above-mentioned notations, the following multi-objective non-linear model is proposed for the MSMSP described by Section “ Description of the MSMSP ”.

Objective function ( 1 ) minimizes total wastage amounts remained from all raw sheets used for producing all cardboard boxes. Objective function ( 2 ) minimizes total costs of the system where its first term calculates total purchasing cost, the second term calculates total fixed transportation cost, and the third term calculates total variable transportation cost. Objective function ( 3 ) minimizes total number of produced cardboard boxes. Constraints set ( 4 ) satisfies the demand values. It is notable to mention that Objective function ( 3 ) and Constraint ( 4 ) together minimized total overplus of the cardboard boxes. Constraints sets ( 5 )–( 8 ) all together respect to the price discount policy of raw sheet. Constraints sets ( 9 )–( 12 ) together respect to the discount policy of the variable transportation cost of the raw sheets. Constraints sets ( 13 ) and ( 14 ) are sign constraints of the model.

In order to linearize the above-mentioned model, the non-linear terms of objective function (2) such as \({T}_{jk}^{1}\left(\sum_{i=1}^{I}{Y}_{ijk}\right)\) , \({T}_{jk}^{2}\left(\sum_{i=1}^{I}{Y}_{ijk}\right)\) , \({T{\prime}}_{jk}^{1}\left(\sum_{i=1}^{I}{Y}_{ijk}\right)\) , and \({T}_{jk}^{{\prime}2}\left(\sum_{i=1}^{I}{Y}_{ijk}\right)\) should be linearized. For this aim, the continuous variables \({Z}_{jk}^{1}{=T}_{jk}^{1}\left(\sum_{i=1}^{I}{Y}_{ijk}\right)\) , \({Z}_{jk}^{2}{=T}_{jk}^{2}\left(\sum_{i=1}^{I}{Y}_{ijk}\right)\) , \({Z}_{jk}^{{\prime}1}{=T}_{jk}^{{\prime}1}\left(\sum_{i=1}^{I}{Y}_{ijk}\right)\) , and \({Z}_{jk}^{{\prime}2}{=T{\prime}}_{jk}^{2}\left(\sum_{i=1}^{I}{Y}_{ijk}\right)\) are introduced and instead of each of the non-linear terms a set of constraints is defined. For example, for non-linear term \({T}_{jk}^{1}\left(\sum_{i=1}^{I}{Y}_{ijk}\right)\) and its associated continuous variable \({Z}_{jk}^{1}\) the below set of constraints are defined and the same is done for other non-linear terms.

Therefore, the following multi-objective mixed integer linear model is obtained instead of the non-linear model ( 1 )–( 14 ).

Uncertain formulation

As mentioned earlier, in lack of historical data the belief-degree-based uncertainty theory proposed by Liu 24 can be a suitable tool to deal with uncertainty in optimization problems. In the case of the proposed MSMSP, according to the reasons like starting a new project and market fluctuations, the belief-degree-based uncertainty can be used to formulate the problem. All required definitions, theorems and lemmas of the belief-degree-based uncertainty are explained in the Appendix . Therefore, the demand, cost, and some other parameters of the MSMSP are expressed by uncertain variables and the uncertain variables \({\zeta }_{{d}_{i}}\) , \({\zeta }_{{pc}_{jk}^{1}}\) , \({\zeta }_{{pc}_{jk}^{2}}\) , \({\zeta }_{{tc}_{jk}^{1}}\) , \({\zeta }_{{tc}_{jk}^{2}}\) , \({\zeta }_{{fc}_{ijk}}\) , \({\zeta }_{{g}_{jk}}\) , and \({\zeta }_{{g{\prime}}_{jk}}\) with normal type distribution are defined. The normal distribution is considered as it needs just estimation of the mean and standard deviation parameters. Therefore, it can be more practical when asking from experts to estimate it. The following uncertain form of the deterministic model ( 19 )–( 35 ) is obtained.

As the uncertain model ( 36 )–( 44 ) cannot be solved by the available exact solution methods of optimization software, first it should be converted to a crisp form and then be solved exactly. The next sub-section represents a crisp form of this model.

Equivalent crisp model

According to the literature, three popular methods have been proposed to convert a belief-degree-based uncertain model to its equivalent crisp form 24 . These methods are (1) expected value model (EVM) which considers the expected value of uncertain parameters in the crisp form, (2) chance-constrained model (CCM) where instead of each uncertain objective function or uncertain constraint its chance-constrained form is considered, and (3) mix of the expected value and chance-constrained models (EVCCM) which considers the expected value of uncertain objective functions and the chance-constrained form of uncertain constraints. In this section we consider the chance-constrained model in order to obtain the equivalent crisp form of uncertain formulation ( 36 )–( 44 ) where the uncertain parameters have normal distribution. In order to apply this method, each uncertain objective function is converted to a constraint that is less than or equal to a variable and then the introduced variable is minimized instead. Then for each uncertain constraint its chance-constrained form is defined easily. Therefore, the following model is introduced instead of uncertain formulation ( 36 )–( 44 ).

In continue, the following theorems and corollaries are used to obtain the CCM crisp form of uncertain model ( 45 )–( 54 ).

Suppose that independent uncertain variables \({\zeta }_{{d}_{i}}\) , \({\zeta }_{{pc}_{jk}^{1}}\) , \({\zeta }_{{pc}_{jk}^{2}}\) , \({\zeta }_{{tc}_{jk}^{1}}\) , \({\zeta }_{{tc}_{jk}^{2}}\) , \({\zeta }_{{fc}_{ijk}}\) , \({\zeta }_{{g}_{jk}}\) , and \({\zeta }_{{g{\prime}}_{jk}}\) have uncertain distributions \({\phi }_{{d}_{i}}\) , \({\phi }_{{pc}_{jk}^{1}}\) , \({\phi }_{{pc}_{jk}^{2}}\) , \({\phi }_{{tc}_{jk}^{1}}\) , \({\phi }_{{tc}_{jk}^{2}}\) , \({\phi }_{{fc}_{ijk}}\) , \({\phi }_{{g}_{jk}}\) and \({\phi }_{{g{\prime}}_{jk}}\) respectively \(.\) Then, uncertain model ( 45 )–( 55 ) is converted to the below model.

By applying Theorem 2 and Lemma 1 (see the Appendix ), constraint ( 48 ) is converted to the below constraints respectively.

On the other hand, according to the theorems and definitions of the Appendix , the following conversion is done for constraint ( 49 ).

Other constraints of uncertain model ( 45 )–( 54 ) are converted like conversion ( 66 ). ∎

Corollary 1

Assume normal distribution of \({\rm N}(\mu ,\sigma )\) for the independent uncertain variables \({\zeta }_{{d}_{i}}\) , \({\zeta }_{{C}_{jk}^{1}}\) , \({\zeta }_{{C}_{jk}^{2}}\) , \({\zeta }_{{C}_{jk}^{{\prime}1}}\) , \({\zeta }_{{C}_{jk}^{{\prime}2}}\) , \({\zeta }_{{C}_{ijk}}\) , \({\zeta }_{{g}_{jk}}\) , and \({\zeta }_{{g{\prime}}_{jk}}\) . The CCM formulation ( 55 )–( 64 ) is written as the below model.

The formulation ( 67 )–( 75 ) is the final crisp model (CCM) to be used instead of each of the uncertain formulations ( 36 )–( 44 ) and ( 45 )–( 54 ) where the uncertain variables have normal distribution. This is a multi-objective model and in the next section a typical goal programming approach is introduced to solve it.

Solution approach: goal programming with piecewise penalty function

As the crisp model ( 67 )–( 75 ) is a multi-objective model, in this section a typical goal programming approach is introduced to solve it. The proposed approach is based on the preferences of the decision maker (DM). In the rest of this section, first, classical goal programming approaches are reviewed and then the proposed goal programming approach of this study is presented.

Goal programming approach

Goal programming is of the useful optimization approaches to deal with multi-objective optimization problems. It provides Pareto-optimal solutions for multi-objective problems. Considering a certain multi-objective problem, the main idea of goal programming is to decrease the sum of violations of the objective functions from their pre-determined goals. The classical goal programming approach has been many applications in multi-objective optimization domain.

As a newer version of the goal programming, a weighted goal programming (WGP) approach was introduced. In this approach the positive and negative deviations from the goals are weighted by decision maker (DM). The original version of multi-choice goal programming (MCGP) approach was introduced by Chang 27 . In this approach among several goals (aspiration levels) considered for each objective function by DM, only one of them is selected by the optimization procedure (not DM). For this aim some binary variables are used in the formulation of the MCGP. Later, the original multi-choice goal programming approach was revised by Chang 28 . In their proposed version (R-MCGP) the binary variables are removed and are replaced by some continuous variables and constraints. So, the complexity of the model is decreased comparing to the original MCGP. Later, Chang 49 presented the MCGP with utility function (MCGP-U). The aim of this version of the MCGP is to apply preferences of DM by using a utility function. Another version of the MCGP was introduced by Jadidi et al. 50 considering an interval goal for each objective function. They were inspired by the fuzzy model of Tiwari et al. 51 and considered two pivot points for optimizing each objective function by enabling DM in order to have more control on the interval of each goal.

A goal programming with piecewise penalty function

In order to be closer to real situations specially the preferences of the managers of the case study related to the MSMSP described by Section " Problem description and formulation ", a typical multi-choice goal programming approach is introduced in this section. As one of the main preferences of the managers, there could be multiple goals for each objective function. These goals for objective function \(i\) start from the positive ideal solution ( \({OF}_{i}^{+}\) ) of the objective function and are increased gradually where the goals are determined by DM. Considering this issue, for minimization type objective function \(i\) , a set of \(m\) aspiration levels ( \(m\) goals) as \(\left\{{OF}_{i}^{1},\dots ,{OF}_{i}^{j},\dots ,{OF}_{i}^{m}\right\}\) is determined where \({OF}_{i}^{1}={OF}_{i}^{+}\) and \({OF}_{i}^{1}<\dots <{OF}_{i}^{j}<\dots <{OF}_{i}^{m}\) . According to this set of aspiration levels there are \(m-1\) intervals and for each objective function in each interval a penalty value is considered by DM. Therefore, a set of penalty values for each objective function is determined as \(\left\{{p}_{i1},\dots ,{p}_{ij},\dots ,{p}_{i,m-1}\right\}\) where \({p}_{ij}\) is the penalty value and \({p}_{i1}<\dots <{p}_{ij}<\dots <{p}_{i,m-1}\) . These penalty functions for each objective function can be normalized easily. Now, two main issues are considered as below while modeling the proposed goal programming approach.

Optimizing each objective function (minimization type) as much close to its smallest aspiration

Level \({OF}_{i}^{1}\) .

Optimizing each objective function (minimization type) in order to get a value from the interval with lowest penalty value.

Now the following steps are introduced to construct the proposed goal programming approach for the crisp version of the MSMSP represented by the crisp formulation ( 67 )–( 75 ).

Step 1. Determine all parameters of the crisp formulation ( 67 )–( 75 ).

Step 2. Solve each of the objective functions ( 67 ), ( 68 ), and ( 69 ) separately in their minimization form subject to constraints ( 70 )–( 75 ) in order to obtain the positive ideal solution of each objective function ( \({OF}_{1}^{+}\) , \({OF}_{2}^{+}\) , and \({OF}_{3}^{+}\) ).

Step 3. Determine the importance weight values of the objective functions as \({\omega }_{1}\) , \({\omega }_{2}\) , and \({\omega }_{3}\) by the DM.

Step 4. Determine the membership function of each objective function in each of its aspiration level’s interval as \({\alpha }_{ij}=\frac{{OF}_{i}^{j+1}-{OF}_{i}}{{OF}_{i}^{j+1}-{OF}_{i}^{j}}\) for all \(i\) and \(j\) .

Step 5. Construct the below non-linear goal programming formulation to solve the formulation ( 67 )–( 75 ) where variable \({\lambda }_{ij}\in \left\{\text{0,1}\right\}\) shows whether or not the value of objective function \(i\) is in the \(j\) -th interval.

In this model, the weighted objective function ( 76 ) minimizes total penalty values and total difference of the objective functions from the aspiration level of their selected intervals. This objective function satisfies the above-mentioned two issues expected from the proposed approach. Equality ( 77 ) calculates the membership function of each objective function according to each interval aspiration level. As can be seen, if an objective function be in one of the intervals, the membership function of that interval is between 0 and 1, some membership functions are greater than 1 and some other membership functions are negative. Constraints ( 78 )–( 80 ) simultaneously guarantee that only if \(0<{\alpha }_{ij}\le 1\) (which means \({OF}_{i}^{j}\le {OF}_{i}<{OF}_{i}^{j+1}\) ) then \({\lambda }_{ij}=1\) .

As the above model is in a non-linear form, it should be linearized before solving it. For this aim, the continuous variable \({r}_{ij}={\alpha }_{ij}{\lambda }_{ij}\) is defined and the model ( 76 )–( 82 ) is rewritten as the below linearized model where \(M\) is a pre-determined large positive value.

Finally, the linearized model ( 83 )–( 92 ) is used as the proposed goal programming with piecewise penalty function to solve the multi-objective crisp formulation ( 67 )–( 75 ) of the MSMSP of this study.

Computational experiment of the case study

In this section a case study from cardboard box production industries of Iran is considered to solve the MSMSP of this study by the goal programming approach proposed by Section " Experiments, results, and comparative study ". The mathematical models of the proposed approach are coded in GAMS and are solved on a computer with AMD E2-1800 APU processor and 8.00 GB RAM. The data of the case study, the obtained results, and the related interpretations are described by the rest of this section.

Data of the case study

The data of the considered case study are represented by this sub-section. For this aim, the following points should be considered.

The data is obtained from a company of the cardboard box production industries of Iran. These data are gathered according to the characteristics of the problem under study.

There are 10 types of cardboard box, 5 types (sizes) of raw sheets, and 3 suppliers where all suppliers can provide all raw sheets. Therefore, \(I=10\) , \(J=5\) , and \(K=3\) .

The mean ( \(\mu \) ) of the normal uncertain values of the parameters are determined by the experts of the company of the case study. According to these experts 10% of each of these normal uncertain values is considered as its standard deviation ( \(\sigma \) ).

The uncertain demand values for 10 types of boxes provided by the experts is as follows: \({\mu }_{{d}_{1}}=19975,\) \({\mu }_{{d}_{2}}=21930,\) \({\mu }_{{d}_{3}}=35814,\) \({\mu }_{{d}_{4}}=55257,\) \({\mu }_{{d}_{5}}=17707,\) \({\mu }_{{d}_{6}}=17313,\) \({\mu }_{{d}_{7}}=51508,\) \({\mu }_{{d}_{8}}=46582,\) \({\mu }_{{d}_{9}}=20762\) and \({\mu }_{{d}_{10}}=16161.\)

For the transportation costs the values of \({\mu }_{{tc}_{jk}^{1}}=3\) , \({\mu }_{{tc}_{jk}^{2}}=2\) , and \({\mu }_{{fc}_{ijk}}=10\) are considered by the experts.

Also, for other parameters, the values of Table 1 and Table 2 are determined by the experts. This is notable to mention that due to the available cutting patterns of the company, the values of \({w}_{ij}\) , and \({a}_{ij}\) are deterministic.

It is notable to mention that the data are original, and no update or modification is done on the data.

Experiments, results, and comparative study

In order to perform the computational experiments of the case study, the equivalent crisp formulations of the proposed MSMSP represented by Section " Equivalent crisp model " are solved by the proposed goal programming approach of Section " Experiments, results, and comparative study ". For this aim the following issues are considered in advance.

Five confidence levels are considered as 0.5, 0.6, 0.7, 0.8, and 0.9.

Six goals are considered for each objective function. The first goal is the positive ideal solution and other goals are set by the experts. Therefor for each objective function (say \(i\) ), the set of goals \({OF}_{i}^{1}={OF}_{i}^{+}<{OF}_{i}^{2}<{OF}_{i}^{3}<{OF}_{i}^{4}<{OF}_{i}^{5}<{OF}_{i}^{6}\) is considered. This means that for each objective function five interval goals are considered. The penalty values of \({p}_{i1}=0\) , \({p}_{i2}=\frac{{OF}_{i}^{2}}{{OF}_{i}^{6}}\) , \({p}_{i2}=\frac{{OF}_{i}^{3}}{{OF}_{i}^{6}}\) , \({p}_{i2}=\frac{{OF}_{i}^{4}}{{OF}_{i}^{6}}\) ,

and \({p}_{i2}=\frac{{OF}_{i}^{5}}{{OF}_{i}^{6}}\) are considered for the interval goals 1 to 5 respectively.

Three combinations of objective function weight values for the integrated objective function ( 86 ) are considered as shown by Table 3 .

Fifteen scenarios are applied to the hyperparameters of the objective function ( 83 ), including three weight combinations for five confidence levels as shown in Tables 3 and 4 . The weight values are differed from 0.1 to 0.6 for each objective function. Therefore, the importance of each objective function is considered here.

For comparing the proposed goal programming approach to the approaches of the literature, the goal programming approach of Jadidi et al. 50 is considered. The multi-choice goal programming (MCGP) approach of this study is the most close method to the approach presented in Section " Computational experiment of the case study ". The MCGP introduced by Jadidi et al. 50 considers an interval goal for each objective function. They were inspired by the fuzzy model of Tiwari et al. 51 and considered two pivot points for optimizing each objective function by enabling DM to have more control on the interval of each goal. In our study, the common point of these intervals is considered as \(\frac{{OF}_{i}^{1}+{OF}_{i}^{6}}{2}\) to implement the method of Jadidi et al. 50 .

First in each confidence level the positive ideal solution of model ( 67 )–( 75 ) is obtained. For this aim the data of Sect. “ Data of the case study ” is used to solve model ( 67 )–( 75 ). This model is solved three times and, in each time, one of the objective functions is optimized individually according to all of the constraints in order to obtain the positive ideal solution of the objective function. Then according to the experts of the company of the case study, in addition to the positive ideal solution of each objective function, five more goals are determined. Therefore, totally six goals for each objective function in each confidence level are considered and represented by Table 4 .

Using the data of Sect. “ Data of the case study ”, the weight values of Table 3 , and the goal values of Table 5 , the required final experiments by applying the integrated model ( 83 )–( 92 ) are done, and the obtained results (the obtained Pareto-optimal solutions) are represented in terms of objective function values by Table 6 . In order to be more clear, deviation of each objective function value of Table 6 from its positive ideal solution (represented by Table 5 ) is calculated and reported by Table 7 . In addition, the results obtained by the method of Jadidi et al. 50 are represented by these tables.

The results shown by Table 7 can be used for comparing the applied methods and also for further interpretations. Based on the obtained results (bolded values of Table 7 show better performances), in 13 out of 15 experiments the proposed goal programming provides better value for objective function 1. In the case of objective function 2, the approach of Jadidi et al. 50 performs better than the proposed goal programming approach. Based on the obtained results, in 13 out of 15 experiments the goal programming approach of Jadidi et al. 50 provides better value for objective function 2 and in two experiments, the better value is obtained by the proposed goal programming approach of this study. In the case of objective function 3, based on the obtained results, in 11 out of 15 experiments the proposed goal programming approach of this study provides better value than the approach of Jadidi et al. 50 .

Behavior of objective functions 1, 2, and 3 over changing confidence level value are also depicted by Figs.  1 , 2 , and 3 respectively. In addition, the improvements of Table 6 are depicted by Fig.  4 where the negative values are the improvements made by the proposed approach and the positive values are the improvements made by the approach of Jadidi et al. 50 .

figure 1

Behavior of objective function 1 over changing confidence level value.

figure 2

Behavior of objective function 2 over changing confidence level value.

figure 3

Behavior of objective function 3 over changing confidence level value.

figure 4

The improvements in the objective functions obtained by the proposed approach and the approach of Jadidi et al. 50 .

Managerial insights

As the managerial implications of the proposed problem and solution methodology of this study, the followings can be mentioned,

For cardboard box industries the model and solution approaches can be used to optimize their supplier and material selection decisions.

The proposed mathematical model can be used for cardboard box industries, in order to reduce purchasing and transportation costs.

Using the proposed formulation, in cardboard box industries, the amount of wastage of the raw sheets can be decreased.

The proposed solution methodology and the uncertainty applied to define the problem, can be easily applied to supply chain related problems.

The belief-degree-based uncertainty can be a useful method for employing the idea of experts.

The belief-degree-based uncertainty can be a good tool for tackling a new problem in any organization when there is no historical data.

In this study, we discussed a supplier and material selection programming with a multi-objective optimization model in a real cardboard box manufacturing company. The purpose of the problem and its model was to minimize the wastage of cutting raw materials, and at the same time minimizing the purchasing cost of raw materials and its transportation cost, and also minimizing the surplus of production. So, it was modeled as a multi-objective mixed integer linear programming model. This problem is an extended version of the problems of literature where a different discount logic for purchasing the raw materials was applied and transportation costs with fixed and variable charges were added. According to the conditions some parameters of the problem such as demand, price and transportation cost coefficients could not be clearly determined, therefore, were considered under belief-degree-based uncertainty. So, for the first time these types of problems were investigated under this type of uncertainty in this study. As solution approach first, the chance constraint method was used to convert the uncertain model to a multi-objective crisp form. Then, as another novelty, the method proposed by Jadidi et al. 26 was extended as a new goal programming method where several aspiration levels are determined for each objective function and apply piece-wise penalty function in order to achieve a better result. Finally, a numerical instance from the case study was used to evaluate the performance of the proposed new goal programming approach and compare it to the methods of the literature.

For further study, the problem can be examined in different and larger sizes, and due to the fact that it becomes larger and may take time to solve by GAMS software, the meta-heuristic algorithms can be used to solve it. On the other hand, other assumptions like multi-mode demand satisfaction strategy, selling prices consideration, etc. can be considered while modeling the problem.

Data availability

Data is provided within the manuscript.

Ayhan, M. B. A fuzzy AHP approach for supplier selection problem: A case study in a Gear motor company. Preprint at https://arXiv.org/quant-ph/1311.2886 (2013).

Ayhan, M. B. & Kilic, H. S. A two stage approach for supplier selection problem in multi-item/multi-supplier environment with quantity discounts. Comput. Ind. Eng. 85 , 1–12 (2015).

Article   Google Scholar  

Tan, T. & Alp, O. An integrated approach to inventory and flexible capacity management subject to fixed costs and non-stationary stochastic demand. OR Spectrum 31 , 337–360 (2009).

Article   MathSciNet   Google Scholar  

Asgari, N., Nikbakhsh, E., Hill, A. & Farahani, R. Z. Supply chain management 1982–2015: A review. IMA J. Manag. Math. 27 (3), 353–379 (2016).

Google Scholar  

Hajiaghaei-Keshteli, M. & Fathollahi-Fard, A. M. A set of efficient heuristics and metaheuristics to solve a two-stage stochastic bi-level decision-making model for the distribution network problem. Comput. Ind. Eng. 123 , 378–395 (2018).

Khalili Goudarzi, F., Maleki, H. R. & Niroomand, S. Mathematical formulation and hybrid meta-heuristic algorithms for multiproduct oil pipeline scheduling problem with tardiness penalties. Concurr. Computat. Pract. Exp. 33 (17), e6299 (2021).

Heydari, A., Niroomand, S. & Garg, H. An improved weighted principal component analysis integrated with TOPSIS approach for global financial development ranking problem of Middle East countries. Concurr. Computat. Pract. Exp. 34 (13), e6923 (2022).

Aghaei Fishani, B., Mahmoodirad, A., Niroomand, S. & Fallah, M. Multi-objective location-allocation-routing problem of perishable multi-product supply chain with direct shipment and open routing possibilities under sustainability. Concurr. Computat. Pract. Exp. 34 (11), e6860 (2022).

Ma, P. & Zhou, X. Financing strategies and government incentives in a competing supply chain with Trading-Old-for-Remanufactured programs. CIRP J. Manuf. Sci. Technol. 46 , 242–263 (2023).

Peukert, S., Hörger, M. & Zehner, M. Linking tactical planning and operational control to improve disruption management in global production networks in the aircraft manufacturing industry. CIRP J. Manuf. Sci. Technol. 46 , 36–47 (2023).

Hajiaghaei-Keshteli, M. et al. Designing a multi-period dynamic electric vehicle production-routing problem in a supply chain considering energy consumption. J. Clean. Prod. 421 , 138471 (2023).

Heraud, J., Medini, K. & Andersen, A. L. Managing agile ramp-up projects in manufacturing–Status quo and recommendations. CIRP J. Manuf. Sci. Technol. 45 , 125–137 (2023).

Weber, C. A., Current, J. R. & Benton, W. C. Vendor selection criteria and methods. Eur. J. Oper. Res. 50 (1), 2–18 (1991).

Mosallaeipour, S., Mahmoodirad, A., Niroomand, S. & Vizvari, B. Simultaneous selection of material and supplier under uncertainty in carton box industries: A fuzzy possibilistic multi-criteria approach. Soft Comput. 22 , 2891–2905 (2018).

Awasthi, A., Chauhan, S. S., Goyal, S. K. & Proth, J. M. Supplier selection problem for a single manufacturing unit under stochastic demand. Int. J. Prod. Econ. 117 (1), 229–233 (2009).

Aghai, S., Mollaverdi, N. & Sabbagh, M. S. A fuzzy multi-objective programming model for supplier selection with volume discount and risk criteria. Int. J. Adv. Manuf. Technol. 71 , 1483–1492 (2014).

Nekooie, M. A., Sheikhalishahi, M. & Hosnavi, R. Supplier selection considering strategic and operational risks: A combined qualitative and quantitative approach. Prod. Eng. 9 , 665–673 (2015).

Arikan, F. An interactive solution approach for multiple objective supplier selection problem with fuzzy parameters. J. Intell. Manuf. 26 , 989–998 (2015).

Abdollahi, M., Arvan, M. & Razmi, J. An integrated approach for supplier portfolio selection: Lean or agile?. Expert Syst. Appl. 42 (1), 679–690 (2015).

Niroomand, S., Bazyar, A., Alborzi, M., Miami, H. & Mahmoodirad, A. A hybrid approach for multi-criteria emergency center location problem considering existing emergency centers with interval type data: A case study. J. Ambient Intell. Hum. Comput. 9 (6), 1999–2008 (2018).

Niroomand, S., Mosallaeipour, S., Mahmoodirad, A. & Vizvari, B. A study of a robust multi-objective supplier-material selection problem. IMA J. Manag. Math. 29 (3), 325–349 (2018).

MathSciNet   Google Scholar  

Niroomand, S., Mahmoodirad, A. & Mosallaeipour, S. A hybrid solution approach for fuzzy multiobjective dual supplier and material selection problem of carton box production systems. Expert Syst. 36 (1), e12341 (2019).

Sanei, M., Mahmoodirad, A., Niroomand, S., Jamalian, A. & Gelareh, S. Step fixed-charge solid transportation problem: A Lagrangian relaxation heuristic approach. Computat. Appl. Math. 36 , 1217–1237 (2017).

Liu, B. Uncertainty Theory 2nd edn. (Springer, 2007).

Niroomand, S., Hadi-Vencheh, A., Mirzaei, N. & Molla-Alizadeh-Zavardehi, S. Hybrid greedy algorithms for fuzzy tardiness/earliness minimisation in a special single machine scheduling problem: Case study and generalisation. Int. J. Comput. Integr. Manuf. 29 (8), 870–888 (2016).

Jadidi, O. M. I. D., Zolfaghari, S. & Cavalieri, S. A new normalized goal programming model for multi-objective problems: A case of supplier selection and order allocation. Int. J. Prod. Econ. 148 , 158–165 (2014).

Chang, C. T. Multi-choice goal programming. Omega 35 (4), 389–396 (2007).

Chang, C. T. Revised multi-choice goal programming. Appl. Math. Modell. 32 (12), 2587–2595 (2008).

Chang, C., Ku, C. & Ho, H. Fuzzy multi-choice goal programming for supplier selection. Int. J. Oper. Res. Inf. Syst. (IJORIS) 1 (3), 28–52 (2010).

Bankian-Tabrizi, B., Shahanaghi, K. & Jabalameli, M. S. Fuzzy multi-choice goal programming. Appl. Math. Model. 36 (4), 1415–1420 (2012).

Rabieh, M., Modarres, M. & Azar, A. Robust-fuzzy model for supplier selection under uncertainty: An application to the automobile industry. Scientia Iranica 25 (4), 2297–2311 (2018).

Mirzaee, H., Naderi, B. & Pasandideh, S. H. R. A preemptive fuzzy goal programming model for generalized supplier selection and order allocation with incremental discount. Comput. Ind. Eng. 122 , 292–302 (2018).

Jokar, M., Mozafari, M. & Akbari, A. A weighted robust two-stage stochastic optimization model for supplier selection and order allocation under uncertainty. J. Ind. Manag. Persp. 10 (2), 111–135 (2020).

Kilic, H. S. & Yalcin, A. S. Modified two-phase fuzzy goal programming integrated with IF-TOPSIS for green supplier selection. Appl. Soft Comput. 93 , 106371 (2020).

Mosallaeipour, S. Optimization of the Production Planning and Supplier-Material Selection Problems in Carton Box Production Industries. (2017).

Gavrilescu, M., Campean, T. & Gavrilescu, D. A. Extending production waste life cycle and energy saving by eco-innovation and eco-design: The case of packaging manufacturing. In Nearly Zero Energy Communities: Proceedings of the Conference for Sustainable Energy (CSE) 2017 Vol. 5 (ed. Gavrilescu, M.) 611–631 (Springer International Publishing, 2018).

Chapter   Google Scholar  

Lo-Iacono-Ferreira, V. G., Viñoles-Cebolla, R., Bastante-Ceca, M. J. & Capuz-Rizo, S. F. Transport of Spanish fruit and vegetables in cardboard boxes: A carbon footprint analysis. J. Clean. Prod. 244 , 118784 (2020).

Article   CAS   Google Scholar  

Betul, G. O. K. & Akpinar, D. Investigation of strength and migration of corrugated cardboard boxes. Hittite J. Sci. Eng. 7 (3), 163–168 (2020).

Buendía, L. et al. An innovative active cardboard box for bulk packaging of fresh bell pepper. Postharvest Biol. Technol. 164 , 111171 (2020).

Tannady, H. & Purwanto, E. Quality control of frame production using DMAIC method in plastic PP corrugated box manufacturer. J. Phys. Conf. Ser. 1783 (1), 012078 (2021).

You, P. S., & Hsieh, Y. C. Heuristic algorithms for carton production scheduling problems with technicians and different machines. Proc. Inst. Mech. Eng. B J. Eng. Manuf. 09544054221128853. (2022).

Chen, L., Peng, J., Zhang, B. & Rosyida, I. Diversified models for portfolio selection based on uncertain semivariance. Int. J. Syst. Sci. 48 (3), 637–648 (2017).

Article   ADS   MathSciNet   Google Scholar  

Mahmoodirad, A., Dehghan, R. & Niroomand, S. Modelling linear fractional transportation problem in belief degree—Based uncertain environment. J. Exp. Theor. Artif. Intell. 31 (3), 393–408 (2019).

Mahmoodirad, A. & Niroomand, S. A belief degree-based uncertain scheme for a bi-objective two-stage green supply chain network design problem with direct shipment. Soft Comput. 24 (24), 18499–18519 (2020).

Mahmoodirad, A. & Niroomand, S. Uncertain location–allocation decisions for a bi-objective two-stage supply chain network design problem with environmental impacts. Expert Syst. 37 (5), e12558 (2020).

Shen, J. & Zhu, K. An uncertain two-echelon fixed charge transportation problem. Soft Comput. 24 , 3529–3541 (2020).

Song, Q., Ni, Y. & Ralescu, D. A. The impact of lead-time uncertainty in product configuration. Int. J. Prod. Res. 59 (3), 959–981 (2021).

Niroomand, S. et al. A bi-objective carton box production planning problem with benefit and wastage objectives under belief degree-based uncertainty. Granul. Comput. 9 (1), 1 (2024).

Chang, C. T. Multi-choice goal programming with utility functions. Eur. J. Oper. Res. 215 (2), 439–445 (2011).

Jadidi, O., Cavalieri, S. & Zolfaghari, S. An improved multi-choice goal programming approach for supplier selection problems. Appl. Math. Modell. 39 (14), 4213–4222 (2015).

Tiwari, R. N., Dharmar, S. & Rao, J. Fuzzy goal programming—an additive model. Fuzzy Sets Syst. 24 (1), 27–34 (1987).

Download references

Author information

Authors and affiliations.

Department of Mathematics, Shiraz University of Technology, Shiraz, Iran

Zahra Najibzadeh & Hamid Reza Maleki

Department of Industrial Engineering, Firouzabad Higher Education Center, Shiraz University of Technology, Shiraz, Iran

Sadegh Niroomand

You can also search for this author in PubMed   Google Scholar

Contributions

Z.N. contributed to basic concepts, formulation development, methodology design, and implementation. H.M contributed to basic concepts, methodology design, and results interpretation. S.N. contributed to formulation development, methodology design, and writing the paper.

Corresponding author

Correspondence to Hamid Reza Maleki .

Ethics declarations

Competing interests.

The authors declare no competing interests.

Additional information

Publisher's note.

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

Supplementary Information

Supplementary information., rights and permissions.

Open Access This article is licensed under a Creative Commons Attribution-NonCommercial-NoDerivatives 4.0 International License, which permits any non-commercial use, sharing, distribution and reproduction in any medium or format, as long as you give appropriate credit to the original author(s) and the source, provide a link to the Creative Commons licence, and indicate if you modified the licensed material. You do not have permission under this licence to share adapted material derived from this article or parts of it. The images or other third party material in this article are included in the article’s Creative Commons licence, unless indicated otherwise in a credit line to the material. If material is not included in the article’s Creative Commons licence and your intended use is not permitted by statutory regulation or exceeds the permitted use, you will need to obtain permission directly from the copyright holder. To view a copy of this licence, visit http://creativecommons.org/licenses/by-nc-nd/4.0/ .

Reprints and permissions

About this article

Cite this article.

Najibzadeh, Z., Maleki, H.R. & Niroomand, S. An extended goal programming approach with piecewise penalty functions for uncertain supplier-material selection problem in cardboard box manufacturing systems. Sci Rep 14 , 20714 (2024). https://doi.org/10.1038/s41598-024-71527-8

Download citation

Received : 21 November 2023

Accepted : 28 August 2024

Published : 05 September 2024

DOI : https://doi.org/10.1038/s41598-024-71527-8

Share this article

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

  • Supplier selection
  • Belief-degree-based uncertainty
  • Multi-objective optimization

By submitting a comment you agree to abide by our Terms and Community Guidelines . If you find something abusive or that does not comply with our terms or guidelines please flag it as inappropriate.

Quick links

  • Explore articles by subject
  • Guide to authors
  • Editorial policies

Sign up for the Nature Briefing: AI and Robotics newsletter — what matters in AI and robotics research, free to your inbox weekly.

what are the different steps in problem solving using computer

IMAGES

  1. The 5 Steps of Problem Solving

    what are the different steps in problem solving using computer

  2. 6 steps of the problem solving process

    what are the different steps in problem solving using computer

  3. 5 Step Problem Solving Process

    what are the different steps in problem solving using computer

  4. 6 Ways to Improve Your Programming Problem Solving

    what are the different steps in problem solving using computer

  5. 5 step problem solving method

    what are the different steps in problem solving using computer

  6. Problem Solving Techniques

    what are the different steps in problem solving using computer

VIDEO

  1. Exemplary Online Awards at UF

  2. F.Y.B.Sc.(C.S.)|Sem-I |CS-111: Problem Solving using Computer and C Programming

  3. fy Bcs problem solving using computer and 'c' programming semister 1 #questionpaper#bsc#cs#science

  4. Types of Problem solving And purpose

  5. Lecture 2 Part 3 : Problem Solving using Computer

  6. 10 Strategies to Improve Your Problem Solving Skills

COMMENTS

  1. Problem Solving Using Computer (Steps)

    Computer based problem solving is a systematic process of designing, implementing and using programming tools during the problem solving stage. In this tutorial we will discuss different steps while solving problem using computer.

  2. How to Solve Coding Problems with a Simple Four Step Method

    In this post, we've gone over the four-step problem-solving strategy for solving coding problems. Let's review them here: Step 1: understand the problem. Step 2: create a step-by-step plan for how you'll solve it. Step 3: carry out the plan and write the actual code.

  3. How to Use Algorithms to Solve Problems?

    End - End the execution. Let's take some examples of algorithms for computer science problems. Example 1. Swap two numbers with a third variable. Step 1: Start. Step 2: Take 2 numbers as input. Step 3: Declare another variable as "temp". Step 4: Store the first variable to "temp". Step 5: Store the second variable to the First variable.

  4. Discover how computers solve problems

    These logical operations are written by us and provide the computer with the instructions needed to perform the problem-solving. This means you need to think like a computer and translate what you need it to do into program instructions it understands.

  5. PDF Exploring Computer Science

    Journal Entry: How is solving this kind of problem the same/different from how you solve a problem in "real life"? Discuss what makes a problem solvable by computer—being able to provide a step-by-step algorithm is one important piece, but context matters.

  6. 21 principles for systematically solving problems in computer ...

    Redefine the problem. 4. Relax one assumption at a time from the problem statement (to make the problem easier) Many problems are too hard to solve on their own. However, by solving a easier ...

  7. Steps in Problem Solving

    The good thing is that the system translates nicely to computer problems, which is very useful, since the focus of the book is to solve problems on a computer. The six steps in this system are: What is the problem. Make a model. Analyze the model. Find the solution.

  8. CBSE Class 11

    The several steps of this cycle are as follows : Step by step solution for a problem (Software Life Cycle) 1. Problem Definition/Specification: A computer program is basically a machine language solution to a real-life problem. Because programs are generally made to solve the pragmatic problems of the outside world.

  9. 4. Problem Solving and Algorithms

    Problem Solving and Algorithms Learn a basic process for developing a solution to a problem. Nothing in this chapter is unique to using a computer to solve a problem. This process can be used to solve a wide variety of problems, including ones that have nothing to do with computers.

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

  11. How to think like a programmer

    "Everyone in this country should learn to program a computer, because it teaches you to think." — Steve Jobs You probably also wondered what does it mean, exactly, to think like a programmer? And how do you do it?? Essentially, it's all about a more effective way for problem solving. In this post, my goal is to teach you that way.

  12. Problem Solving

    Solving problems is the core of computer science. Programmers must first understand how a human solves a problem, then understand how to translate this "algorithm" into something a computer can do, and finally how to "write" the specific syntax (required by a computer) to get the job done. It is sometimes the case that a machine will solve a problem in a completely different way than a human.

  13. 40 problem-solving techniques and processes

    Create innovative solutions and solve tough challenges with these problem-solving techniques and tips for running an effective problem solving process.

  14. Problem Solving Through Programming in C

    In this tutorial you will learn Problem Solving Through Programming in C.Regardless of the area of the study, computer science is all about problem solving.

  15. What is Problem Solving? (Steps, Techniques, Examples)

    The problem-solving process typically includes the following steps: Identify the issue: Recognize the problem that needs to be solved. Analyze the situation: Examine the issue in depth, gather all relevant information, and consider any limitations or constraints that may be present. Generate potential solutions: Brainstorm a list of possible ...

  16. Problem Solving with Computer

    Problem Solving is a scientific technique to discover and implement the answer to a problem. The computer is the symbol manipulating device that follows the set of commands known as program.

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

    What is computational thinking? Can thinking like a computer really help us solve everyday problems? Well, experts seem to think so, so what is it?

  18. Oberlin College Computer Science » Problem Solving Tips

    Problem Solving Tips One of the most important skills you learn in your computer science courses is how to problem solve. Although we cover some general problem solving paradigms in class, the best way to improve these skills is to get practice, practice, and more practice. Different people have different techniques that work best for them; below are some general tips that work for most people.

  19. Mastering Problem-Solving: Steps, Skills & Examples

    A computer specialist might be looking for a way to speed up a slow program. Problem-Solving Steps and Skills Now that we've brainstormed a list of potential challenges, ... them. Here are five steps most commonly used in problem-solving, their associated skills, and examples of where each step is utilized in different career sectors. 1.

  20. Steps of Problem Solving in Computer Science

    Abstract Solving problems is the core of computer science. Programmers must first understand how a human solves a problem, then understand how to translate this "algorithm" into something a ...

  21. Problem Solving in Artificial Intelligence

    On the basis of the problem and their working domain, different types of problem-solving agent defined and use at an atomic level without any internal state visible with a problem-solving algorithm. The problem-solving agent performs precisely by defining problems and several solutions. So we can say that problem solving is a part of artificial intelligence that encompasses a number of ...

  22. Computer-Based Problem Solving Process

    Computer-Based Problem Solving Process is a work intended to offer a systematic treatment to the theory and practice of designing, implementing, and using software tools during the problem solving process. This method is obtained by enabling computer systems to be more Intuitive with human logic rather than machine logic.

  23. Computer Basics: Basic Troubleshooting Techniques

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

  24. Problem-Solving Skills for Software Developers: Why & How to Improve

    What are Problem-Solving Skills? As a developer, what do we mean by problem-solving? Let's attempt a simple definition. In software development, problem-solving is the process of using theories and research to find solutions to a problem domain, while testing different ideas and applying best practices to achieve a desired result.

  25. Differentiating people, process, and technology problems: A guide for

    Finding the root cause of, and solving, security problems requires teasing out whether the issue is tied to people, process, or technology — or whether it's a combination of factors. Having a ...

  26. Science Fair Project Ideas, Answers, & Tools

    Free Topic Selection Wizard, science fair project ideas, step by step how to do a science fair project, Ask an Expert discussion board, and science fair tips for success.

  27. An extended goal programming approach with piecewise penalty ...

    A solution approach including two steps is proposed to solve the problem. In the first step, the proposed uncertain formulation is converted to a crisp form using a typical chance constrained ...