Learn by   .css-1v0lc0l{color:var(--chakra-colors-blue-500);} doing

Guided interactive problem solving that’s effective and fun. Master concepts in 15 minutes a day.

Data Analysis

Computer Science

Programming & AI

Science & Engineering

Join over 10 million people learning on Brilliant

Master concepts in 15 minutes a day.

Whether you’re a complete beginner or ready to dive into machine learning and beyond, Brilliant makes it easy to level up fast with fun, bite-sized lessons.

Effective, hands-on learning

Visual, interactive lessons make concepts feel intuitive — so even complex ideas just click. Our real-time feedback and simple explanations make learning efficient.

Learn at your level

Students and professionals alike can hone dormant skills or learn new ones. Progress through lessons and challenges tailored to your level. Designed for ages 13 to 113.

Guided bite-sized lessons

We make it easy to stay on track, see your progress, and build your problem-solving skills one concept at a time.

Guided bite-sized lessons

Stay motivated

Form a real learning habit with fun content that’s always well-paced, game-like progress tracking, and friendly reminders.

© 2024 Brilliant Worldwide, Inc., Brilliant and the Brilliant Logo are trademarks of Brilliant Worldwide, Inc.

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

Foundations course, introduction.

Before we start digging into some pretty nifty JavaScript, we need to begin talking about problem solving : the most important skill a developer needs.

Problem solving is the core thing software developers do. The programming languages and tools they use are secondary to this fundamental skill.

From his book, “Think Like a Programmer” , V. Anton Spraul defines problem solving in programming as:

Problem solving is writing an original program that performs a particular set of tasks and meets all stated constraints.

The set of tasks can range from solving small coding exercises all the way up to building a social network site like Facebook or a search engine like Google. Each problem has its own set of constraints, for example, high performance and scalability may not matter too much in a coding exercise but it will be vital in apps like Google that need to service billions of search queries each day.

New programmers often find problem solving the hardest skill to build. It’s not uncommon for budding programmers to breeze through learning syntax and programming concepts, yet when trying to code something on their own, they find themselves staring blankly at their text editor not knowing where to start.

The best way to improve your problem solving ability is by building experience by making lots and lots of programs. The more practice you have the better you’ll be prepared to solve real world problems.

In this lesson we will walk through a few techniques that can be used to help with the problem solving process.

Lesson overview

This section contains a general overview of topics that you will learn in this lesson.

  • Explain the three steps in the problem solving process.
  • Explain what pseudocode is and be able to use it to solve problems.
  • Be able to break a problem down into subproblems.

Understand the problem

The first step to solving a problem is understanding exactly what the problem is. If you don’t understand the problem, you won’t know when you’ve successfully solved it and may waste a lot of time on a wrong solution .

To gain clarity and understanding of the problem, write it down on paper, reword it in plain English until it makes sense to you, and draw diagrams if that helps. When you can explain the problem to someone else in plain English, you understand it.

Now that you know what you’re aiming to solve, don’t jump into coding just yet. It’s time to plan out how you’re going to solve it first. Some of the questions you should answer at this stage of the process:

  • Does your program have a user interface? What will it look like? What functionality will the interface have? Sketch this out on paper.
  • What inputs will your program have? Will the user enter data or will you get input from somewhere else?
  • What’s the desired output?
  • Given your inputs, what are the steps necessary to return the desired output?

The last question is where you will write out an algorithm to solve the problem. You can think of an algorithm as a recipe for solving a particular problem. It defines the steps that need to be taken by the computer to solve a problem in pseudocode.

Pseudocode is writing out the logic for your program in natural language instead of code. It helps you slow down and think through the steps your program will have to go through to solve the problem.

Here’s an example of what the pseudocode for a program that prints all numbers up to an inputted number might look like:

This is a basic program to demonstrate how pseudocode looks. There will be more examples of pseudocode included in the assignments.

Divide and conquer

From your planning, you should have identified some subproblems of the big problem you’re solving. Each of the steps in the algorithm we wrote out in the last section are subproblems. Pick the smallest or simplest one and start there with coding.

It’s important to remember that you might not know all the steps that you might need up front, so your algorithm may be incomplete -— this is fine. Getting started with and solving one of the subproblems you have identified in the planning stage often reveals the next subproblem you can work on. Or, if you already know the next subproblem, it’s often simpler with the first subproblem solved.

Many beginners try to solve the big problem in one go. Don’t do this . If the problem is sufficiently complex, you’ll get yourself tied in knots and make life a lot harder for yourself. Decomposing problems into smaller and easier to solve subproblems is a much better approach. Decomposition is the main way to deal with complexity, making problems easier and more approachable to solve and understand.

In short, break the big problem down and solve each of the smaller problems until you’ve solved the big problem.

Solving Fizz Buzz

To demonstrate this workflow in action, let’s solve Fizz Buzz

Understanding the problem

Write a program that takes a user’s input and prints the numbers from one to the number the user entered. However, for multiples of three print Fizz instead of the number and for the multiples of five print Buzz . For numbers which are multiples of both three and five print FizzBuzz .

This is the big picture problem we will be solving. But we can always make it clearer by rewording it.

Write a program that allows the user to enter a number, print each number between one and the number the user entered, but for numbers that divide by 3 without a remainder print Fizz instead. For numbers that divide by 5 without a remainder print Buzz and finally for numbers that divide by both 3 and 5 without a remainder print FizzBuzz .

Does your program have an interface? What will it look like? Our FizzBuzz solution will be a browser console program, so we don’t need an interface. The only user interaction will be allowing users to enter a number.

What inputs will your program have? Will the user enter data or will you get input from somewhere else? The user will enter a number from a prompt (popup box).

What’s the desired output? The desired output is a list of numbers from 1 to the number the user entered. But each number that is divisible by 3 will output Fizz , each number that is divisible by 5 will output Buzz and each number that is divisible by both 3 and 5 will output FizzBuzz .

Writing the pseudocode

What are the steps necessary to return the desired output? Here is an algorithm in pseudocode for this problem:

Dividing and conquering

As we can see from the algorithm we developed, the first subproblem we can solve is getting input from the user. So let’s start there and verify it works by printing the entered number.

With JavaScript, we’ll use the “prompt” method.

The above code should create a little popup box that asks the user for a number. The input we get back will be stored in our variable answer .

We wrapped the prompt call in a parseInt function so that a number is returned from the user’s input.

With that done, let’s move on to the next subproblem: “Loop from 1 to the entered number”. There are many ways to do this in JavaScript. One of the common ways - that you actually see in many other languages like Java, C++, and Ruby - is with the for loop :

If you haven’t seen this before and it looks strange, it’s actually straightforward. We declare a variable i and assign it 1: the initial value of the variable i in our loop. The second clause, i <= answer is our condition. We want to loop until i is greater than answer . The third clause, i++ , tells our loop to increment i by 1 every iteration. As a result, if the user inputs 10, this loop would print numbers 1 - 10 to the console.

Most of the time, programmers find themselves looping from 0. Due to the needs of our program, we’re starting from 1

With that working, let’s move on to the next problem: If the current number is divisible by 3, then print Fizz .

We are using the modulus operator ( % ) here to divide the current number by three. If you recall from a previous lesson, the modulus operator returns the remainder of a division. So if a remainder of 0 is returned from the division, it means the current number is divisible by 3.

After this change the program will now output this when you run it and the user inputs 10:

The program is starting to take shape. The final few subproblems should be easy to solve as the basic structure is in place and they are just different variations of the condition we’ve already got in place. Let’s tackle the next one: If the current number is divisible by 5 then print Buzz .

When you run the program now, you should see this output if the user inputs 10:

We have one more subproblem to solve to complete the program: If the current number is divisible by 3 and 5 then print FizzBuzz .

We’ve had to move the conditionals around a little to get it to work. The first condition now checks if i is divisible by 3 and 5 instead of checking if i is just divisible by 3. We’ve had to do this because if we kept it the way it was, it would run the first condition if (i % 3 === 0) , so that if i was divisible by 3, it would print Fizz and then move on to the next number in the iteration, even if i was divisible by 5 as well.

With the condition if (i % 3 === 0 && i % 5 === 0) coming first, we check that i is divisible by both 3 and 5 before moving on to check if it is divisible by 3 or 5 individually in the else if conditions.

The program is now complete! If you run it now you should get this output when the user inputs 20:

  • Read How to Think Like a Programmer - Lessons in Problem Solving by Richard Reis.
  • Watch How to Begin Thinking Like a Programmer by Coding Tech. It’s an hour long but packed full of information and definitely worth your time watching.
  • Read this Pseudocode: What It Is and How to Write It article from Built In.

Knowledge check

The following questions are an opportunity to reflect on key topics in this lesson. If you can’t answer a question, click on it to review the material, but keep in mind you are not expected to memorize or master this knowledge.

  • What are the three stages in the problem solving process?
  • Why is it important to clearly understand the problem first?
  • What can you do to help get a clearer understanding of the problem?
  • What are some of the things you should do in the planning stage of the problem solving process?
  • What is an algorithm?
  • What is pseudocode?
  • What are the advantages of breaking a problem down and solving the smaller problems?

Additional resources

This section contains helpful links to related content. It isn’t required, so consider it supplemental.

  • Read the first chapter in Think Like a Programmer: An Introduction to Creative Problem Solving ( not free ). This book’s examples are in C++, but you will understand everything since the main idea of the book is to teach programmers to better solve problems. It’s an amazing book and worth every penny. It will make you a better programmer.
  • Watch this video on repetitive programming techniques .
  • Watch Jonathan Blow on solving hard problems where he gives sage advice on how to approach problem solving in software projects.

Support us!

The odin project is funded by the community. join us in empowering learners around the globe by supporting the odin project.

  • Trending Now
  • Foundational Courses
  • Data Science
  • Practice Problem
  • Machine Learning
  • System Design
  • DevOps Tutorial

Basic Programming Problems

Learn Programming – How To Code

In the world of programming , mastering the fundamentals is key to becoming a proficient developer. In this article, we will explore a variety of basic programming problems that are essential for every aspiring coder to understand. By delving into these foundational challenges, you will gain valuable insights into problem-solving techniques and build a strong foundation for your programming journey. Whether you’re a novice programmer or looking to refresh your skills, this guide will provide you with a solid introduction to essential programming problems

Why to Start with Basics Programming Problems?

Starting with basics is important because it helps you build a strong foundation. When you understand the basics well, it becomes easier to learn more advanced things later on. It’s like building a solid base for a tall building – if the base is strong, the building will be strong too. Mastering the basics also helps you become better at solving problems, which is really important in programming and other technical areas.

Benefits of Starting with Basic Programming Problems:

Foundation Building: Establishes a strong foundation in coding by introducing fundamental concepts.

  • Improve Problem-Solving: Enhances problem-solving skills, preparing for more complex challenges.
  • Language Proficiency: Fosters proficiency in a programming language, facilitating expression of thoughts and implementation of solutions.
  • Debugging Skills: Provides practice in debugging techniques and understanding common errors.
  • Algorithmic Thinking: Encourages efficient and optimized thinking, laying the groundwork for advanced problem-solving.
  • Confidence Building: Boosts confidence in coding and problem-solving abilities through successful progression.
  • Get Ready for Interviews: Prepares for coding job interviews by mastering fundamental concepts commonly assessed.

Basic Programming Problems:

Problem

Practice

Solve

Solve

































Related Article:

  • What is Programming? A Handbook for Beginners
  • What is a Code in Programming?
  • What Is Coding and What Is It Used For?
  • How to Learn Programming?

Please Login to comment...

Similar reads.

  • Programming
  • Best Twitch Extensions for 2024: Top Tools for Viewers and Streamers
  • Discord Emojis List 2024: Copy and Paste
  • Best Adblockers for Twitch TV: Enjoy Ad-Free Streaming in 2024
  • PS4 vs. PS5: Which PlayStation Should You Buy in 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?

Filter by Keywords

The 10 Best Problem-Solving Software to Use in 2024

Engineering Team

May 13, 2024

Start using ClickUp today

  • Manage all your work in one place
  • Collaborate with your team
  • Use ClickUp for FREE—forever

Do you want a solution to help your teams work well together, reduce friction, and speed up productivity?

The best problem-solving software has all the answers for you. Problem-solving software helps find bottlenecks, simplify workflows, and automate tasks to improve efficiency. The result? Communication is easy, and your team enjoys a collaborative work environment.

Problem-solving software gives you the right visualization tools and techniques to better articulate your ideas and concepts.

That’s not all; it also automates repetitive tasks while your team focuses on brainstorming and ideating. 

In this article, we’ll cover the best problem-solving software and highlight its various features, limitations, customer ratings, and pricing details to help you make an informed decision. 

What Should You Look For In Problem-Solving Software? 

1. clickup , 2. omnex systems , 5. meistertask, 6. teamwork, 10. airtable .

Avatar of person using AI

Businesses encounter many challenges, from operational inefficiencies and customer complaints to financial discrepancies. 

As your team slowly navigates through these issues, having problem-solving software with the right features will reduce the hassle. Before investing in one, consider some of these following factors:

  • User-friendly interface: The software should have an intuitive and easy-to-use interface to minimize the learning curve for users
  • Versatility: Look for software that addresses various problem types and complexities. It should be adaptable to different industries and scenarios
  • Mind maps and Visualization features: Get yourself problem-solving software solutions that offers mind maps and other visual tricks. It must be a digital canvas for your team to brainstorm ideas, connect the dots, and execute strategies
  • AI assistant: If your team is stuck with repetitive mundane tasks, then it’s time you let AI take over. With the right problem-solving tool comes in-built AI that handles  everyday tasks, leaving your team to focus on the important stuff
  • Automation capabilities:  Look for problem-solving process that’s all about automation. This way, you ensure efficiency and effectiveness without the grunt work
  • Goal tracking: Your efforts improve when you optimize your tracking process. You need goal monitoring and tracking features to ensure you are on track 
  • Cost-effectiveness: Look for the features that various plans offer and compare them to choose an option that provides maximum features while the benefits justify the cost 

The 10 Best Problem Solving Software In 2024

While you have many options, select the one with the right features that suit your needs . 

Check out our list of the ten best problem-solving tools to ensure you have the features to solve complex issues effectively: 

Henry Ford once said that success takes care of itself if everyone moves forward together. ClickUp problem-solving software helps you succeed by ensuring all your team members are always on the same page. 

With its live collaboration, you can see if your teammates are looking at or editing documents. Also, edit documents together in real-time. Moreover, any changes on any device are updated instantly, so nobody falls behind. 

The whiteboard feature is super helpful in getting your team together for brainstorming and ideating. As problem-solving involves generating and evaluating multiple ideas, the whiteboard helps write, modify, and build ideas together. 

Now that you have brainstormed on core problems, you must establish a clear visual reference point for ongoing analysis. That’s where the ClickUp mind maps feature stands out. Create a hierarchical structure, with the main problem at the center and subtopics branching out.

Since these maps have interconnections, it is easy to visualize connections between different elements. This feature effectively identifies possible cause-and-effect relationships in a problem.

ClickUp best features 

  • Documentation: Address and solve problems by storing and accessing project-related documents in ClickUp Docs
  • Mind maps : Identify critical connections, uncover insights, and implement creative approaches by visually mapping relationships between concepts and information with ClickUp Mind Maps
  • Task prioritization: Make problem-solving easier for your software developers—sort tasks by urgency. This helps your team focus on the most crucial aspects, making problem resolution more efficient 
  • Virtual whiteboards: Enhance collaborative problem-solving and critical thinking through ClickUp Whiteboards . Brainstorm, visualize ideas, and collectively work towards solutions in an interactive setting 
  • Goal monitoring: Set and monitor business metrics to address challenges, track progress, and ensure the software development team remains aligned with objectives 
  • Custom access rights: Customizing access rights ensures that the right individuals have the necessary permissions to contribute to problem resolution 
  • ClickUp AI: Use ClickUp AI to automate repetitive tasks, analyze data for insights, and enhance productivity in tackling complex problems 

ClickUp limitations 

  • Learning curve is involved in fully grasping all features and capabilities

ClickUp pricing

  • Free Forever Plan 
  • Unlimited Plan: $7 per month per user
  • Business Plan : $12 per month per user
  • Business Plus Plan : $19 per month per user
  • Enterprise Plan : custom pricing 
  • ClickUp AI: $5 per Workspace on all paid plans

ClickUp ratings and reviews

  • G2: 4.7/5 (2,000+ reviews)
  • Capterra: 4.7/5 (2,000+ reviews)

Omnex systems

Omnex’s problem-solving software has many helpful features to track, manage, and solve problems quickly. It’s a one-stop shop for dealing with internal and external issues. 

The platform is also customer-centric, which responds to customers in their preferred formats. This ensures a tailored and user-friendly experience, further enhancing problem resolution through seamless interaction with stakeholders. 

Omnex best features 

  • Define timelines and metrics for problem resolution 
  • Leverage several problem-solving tools, such as 5Why, Is/Is Not, etc
  • Respond to customers in various formats, including 8D, 7D, and PRR

Omnex limitations

  • Initiating projects involves many steps
  • Temporary delays may occur

Omnex pricing 

  • Omnex has custom pricing plans 

problem solving programs

Hive is another excellent platform to instruct your teams better while solving complex challenges and enhancing their problem-solving skills. It’s highly interactive and lets all your team members view what’s happening and express their opinions simultaneously. 

Collaborative work management helps you solve issues effectively. Hive is your virtual file cabinet where sharing documents with different teams and collaboratively working becomes more accessible. 

Hive best features

  • User-friendly interface ensures seamless navigation
  • Gantt view helps in mapping out project timelines
  • Project hierarchies allow for easy task execution
  • Kanban view allows you to understand progress better

Hive limitations 

  • Being a relatively new tool, it needs frequent updates and additional features
  • There are occasional bugs that slow down processes
  • Locating notes from tasks and meetings is time-consuming
  • Auto-generated reports are not always accurate
  • Apart from ticketing, the platform needs some intuitive features

Hive pricing 

  • Teams: $12 per month per user
  • Enterprise: custom plans

Hive customer ratings

  • G2: 4.6/5 (480+ reviews)
  • Capterra: 4.5/5 (190+ reviews)

Asana Timeline

Asana is a popular problem-solving tool that speeds up decision-making . It improves project management , and its many integrations are useful. The well-organized project documents make it easy to find what you need quickly.

It’s excellent for managing many small projects and suitable for teams without complex workflows or collaboration features.

Asana best features 

  • The rules and workflow feature helps automate repeating activities
  • Customizable workflows help teams adapt the tool to their unique needs
  • For easy understanding, organize tasks as a list, calendar, timeline, Gantt chart, or Kanban board
  • Integrate with popular tools and apps such as Google Drive, Dropbox, Slack, Zoom, Microsoft, etc. 

Asana limitations

  • Inefficient for handling larger projects with sub-projects and multiple workstreams
  • Limited capability to measure project deviations from original plans
  • Lack of comprehensive workflows and customizable animations, a feature some competitors offer
  • Pricing is less favorable for smaller teams; advanced features like custom fields, portfolios, and timeline views are only available in premium plans

Asana pricing 

  • Personal (free)
  • Starter: $10.99 per month per user
  • Advanced: $24.99 per month per user 

Asana customer ratings 

  • G2: 4.3/5 (9,520+ reviews)
  • Capterra: 4.5/5 (12,290+ reviews) 

MeisterTask

Mesitertask is one of those problem-solving tools that offers strong kanban boards. These boards visualize the workflow and make it easier to identify bottlenecks and trace issues back to their source. Such visualizing features are similar to the ones found in the best root cause analysis tools . 

A customizable drag-and-drop feature further allows users to rearrange and prioritize tasks easily. Therefore, your team members will easily play around the field and segregate tasks effectively. 

Meistertask best features 

  • Gain a visual representation of task timelines with a timeline view
  • Streamline processes with automated workflows
  • Easily categorize and prioritize tasks within sections 
  • Monitor and analyze time spent on tasks for valuable insights

Meistertask limitations 

  • Unnecessary negative space impacts task visibility
  • Limited report and analytics features, not accessible offline
  • Confusing registration process

Meistertask pricing

  • Basic (free)
  • Pro: $6.50 per month per user 
  • Business: $12 per month per user 
  • Enterprise: custom pricing 

Meister task ratings and reviews 

  • G2: 4.6/5 (170+ reviews)
  • Capterra: 4.7/5 (1130+ reviews) 

Tracking employee workload for better project management in Teamwork, a project management software platform

Teamwork is another viable problem-solving software dealing with operational challenges. It provides a clear overview of task assignments, project profitability, and other essential details. 

When combined with effective brainstorming techniques , such a clear division of work will help you solve complex issues faster. 

Teamwork features 

  • Get four distinct project views, including List, Table, Boards, and Gantt
  • Efficient task management simplifies the process of creating and assigning tasks to users, enhancing team collaboration  
  • The time tracking feature helps determine billable hours, aiding in project budgeting and resource allocation
  • Standard communication features, such as commenting and mentioning coworkers, are seamlessly integrated, promoting practical collaboration 

Teamwork limitations 

  • You need to subscribe to premium plans to unlock advanced features
  • The user interface is intricate and poses a challenge for some users
  • Certain features, like the reminder function, do not operate on mobile apps
  • Continuous email notifications have the potential to disrupt focus, as not all updates or status changes are crucial

Teamwork Pricing 

  • Free Forever
  • Starter: $5.99 per month per user 
  • Deliver: $9.99 per month per user
  • Grow: $19.99 per month per user 
  • Scale: custom pricing 

Teamwork Customer Ratings 

  • G2: 4.4/5 (1,070+ reviews)
  • Capterra: 4.5/5 (830+ reviews)

Trello Board

Trello is another good option if you are searching for efficient problem-solving software. With powerful task management tools, it ensures you handle your issues efficiently. 

However, Trello’s communication and collaboration tools are not up to the mark compared to other problem-solving tools. Also, it relies heavily on integrations to do the heavy lifting.

Trello Features 

  • Streamline your workflow effortlessly by arranging tasks with a simple drag-and-drop interface
  • The project map feature gives a complete overview to help you visualize tasks, dependencies, and progress at a glance
  • Focus on what matters the most and prioritize tasks effectively with its intuitive tools 
  • Stay on top of your responsibilities with dynamic to-do lists

Trello Limitations 

  • The free version imposes limitations on file attachments, a lack of advanced integrations, and automation
  • Manually arranging Trello cards one by one is a time-consuming task
  • There is a lack of functionality for creating a comprehensive dashboard or Gantt chart to provide a clear overview
  • The absence of restrictions on card movement poses a security risk, with anyone accessing and potentially disrupting the board
  • Trello becomes less practical when the board becomes densely populated with cards

Trello pricing 

  • Standard: $5 per month per user 
  • Premium: $10 per month per user 
  • Enterprise: $17.50 per month per user 

Trello customer ratings 

  • G2: 4.4/5 (13,000+ reviews)
  • Capterra: 4.5/5 (23,000+ reviews)

Wrike

Wrike is one of the preferred project management collaboration tools that help businesses of all sizes. With preconfigured templates for tasks, workflows, and communication, it takes the burden off your shoulders. 

It also has a user-friendly dashboard with enterprise-grade tools to manage recurring and one-time projects. 

Wrike best features 

  • Planning tools to outline tasks, set deadlines, and allocate resources
  • A clear visual overview helps in identifying potential challenges
  • Detailed reports to analyze project performance
  • Helps efficiently address issues by prioritizing tasks

Wrike limitations 

  • There are no options to view projects on the Kanban board (only tasks)
  • Basic project management features are missing, such as time breaks for a task
  • Pricing remains on the higher end

Wrike pricing 

  • Professional variant: $9.80 per month per user 
  • Business variant: $24.80 per month per user 

Wrike customer ratings 

  • G2: 4.2/5 (3500+ reviews) 
  • Capterra: 4.3/5 (2540+ reviews) 

moday.com List View

Monday is a cloud-based open platform, allowing businesses to collaborate better on projects. Explore many pre-built templates or create one from scratch depending on what you need. 

Monday best features

  • Streamline workflows by making bulk changes efficiently
  • Plan and organize tasks effectively with powerful scheduling tools
  • Keep a detailed record of project activities, providing transparency and aiding in tracking progress, which is critical for troubleshooting and resolving issues
  • Gain valuable insights through customizable views and comprehensive reporting, facilitating data-driven decision-making

Monday limitations 

  • There is a minimum team size of three required for paid plans 
  • The free trial lasts only for 14 days
  • Advanced features like time tracking are only available in premium plans 

Monday pricing 

  • Basic: $8 per month per user 
  • Standard: $10 per month per user 
  • Pro: $16 per month per user 
  • Enterprise: custom pricing

Monday customer ratings

  • G2: 4.7/5 (9,570+ reviews)
  • Capterra: 4.6/5 (4,430+ reviews)

Managing office time tracking tasks in Airtable

Airtable is a cloud-based collaboration platform that combines the simplicity of a spreadsheet with the complexity of a relational database.

It allows users to create and manage databases, spreadsheets, and other types of structured data in a flexible and user-friendly way. With its user-friendly interface,  you will quickly organize and track crucial information for problem-solving. 

Airtable best features

  • Supports real-time collaboration 
  • Attach files, images, and other multimedia directly to records
  • Highlight and format cells based on specific conditions with conditional formatting
  • Use pre-built templates for different use cases 

Airtable limitations

  • While the interface is user-friendly, users unfamiliar with databases may find it initially complex
  • For extremely large datasets or complex relationships, Airtable may face performance challenges
  • As a cloud-based platform, it relies on an internet connection, and lack of connectivity may hinder problem-solving efforts

Airtable pricing 

  • Team: $20 per month per user
  • Business: $45 per month per user 

Airtable customer ratings

  • G2: 4.6/5 (2,180+ reviews)
  • Capterra: 4.7/5 (1920+ reviews)

Solve Problems to Drive Successful Business Outcomes

It is best to invest in problem-solving software to ensure that problems do not bog down your team and that you have the tools to solve and focus on strategic work. Our list of the ten best problem-solving software should help you find the right fit for your organization. 

Thousands of businesses of all sizes choose ClickUp. With ClickUp, you get different tools to map your project, divide tasks, view the interdependence of tasks, allocate resources, and resolve bugs on time. Whether improving team productivity or identifying and squashing bugs, ClickUp does it all!  

Get in touch with our team, or sign up for FREE .

Questions? Comments? Visit our Help Center for support.

Receive the latest WriteClick Newsletter updates.

Thanks for subscribing to our blog!

Please enter a valid email

  • Free training & 24-hour support
  • Serious about security & privacy
  • 99.99% uptime the last 12 months

Codemonk

  • Basics of Input/Output
  • Time and Space Complexity
  • Basics of Implementation
  • Basics of Operators
  • Basics of Bit Manipulation
  • Recursion and Backtracking
  • Multi-dimensional
  • Basics of Stacks
  • Basics of Queues
  • Basics of Hash Tables
  • Singly Linked List
  • Binary/ N-ary Trees
  • Binary Search Tree
  • Heaps/Priority Queues
  • Trie (Keyword Tree)
  • Segment Trees
  • Fenwick (Binary Indexed) Trees
  • Suffix Trees
  • Suffix Arrays
  • Basics of Disjoint Data Structures
  • Linear Search
  • Binary Search
  • Ternary Search
  • Bubble Sort
  • Selection Sort
  • Insertion Sort
  • Counting Sort
  • Bucket Sort
  • Basics of Greedy Algorithms
  • Graph Representation
  • Breadth First Search
  • Depth First Search
  • Minimum Spanning Tree
  • Shortest Path Algorithms
  • Flood-fill Algorithm
  • Articulation Points and Bridges
  • Biconnected Components
  • Strongly Connected Components
  • Topological Sort
  • Hamiltonian Path
  • Maximum flow
  • Minimum Cost Maximum Flow
  • Basics of String Manipulation
  • String Searching
  • Z Algorithm
  • Manachar’s Algorithm
  • Introduction to Dynamic Programming 1
  • 2 Dimensional
  • State space reduction
  • Dynamic Programming and Bit Masking
  • Basic Number Theory-1
  • Basic Number Theory-2
  • Primality Tests
  • Totient Function
  • Basics of Combinatorics
  • Inclusion-Exclusion
  • Line Sweep Technique
  • Line Intersection using Bentley Ottmann Algorithm
  • Basic Probability Models and Rules
  • Bayes’ rules, Conditional probability, Chain rule
  • Discrete Random Variables
  • Continuous Random Variables
  • Practical Tutorial on Data Manipulation with Numpy and Pandas in Python
  • Beginners Guide to Regression Analysis and Plot Interpretations
  • Practical Guide to Logistic Regression Analysis in R
  • Practical Tutorial on Random Forest and Parameter Tuning in R
  • Practical Guide to Clustering Algorithms & Evaluation in R
  • Beginners Tutorial on XGBoost and Parameter Tuning in R
  • Deep Learning & Parameter Tuning with MXnet, H2o Package in R
  • Decision Tree
  • Simple Tutorial on Regular Expressions and String Manipulations in R
  • Practical Guide to Text Mining and Feature Engineering in R
  • Winning Tips on Machine Learning Competitions by Kazanova, Current Kaggle #3
  • Practical Machine Learning Project in Python on House Prices Data
  • Challenge #1 - Machine Learning
  • Challenge #3 - Machine Learning
  • Challenge #2 - Deep Learning
  • Transfer Learning Introduction
  • Input and Output
  • Python Variables
  • Conditionals
  • Expressions
  • Classes and Objects I
  • Classes and Objects II (Inheritance and Composition)
  • Errors and Exceptions
  • Iterators and Generators
  • Functional Programming
  • Higher Order Functions and Decorators
  • +1-650-461-4192
  • For sales enquiry [email protected]
  • For support [email protected]
  • Campus Ambassadors
  • Assessments
  • Learning and Development
  • Interview Prep
  • Engineering Blog
  • Privacy Policy
  • © 2024 HackerEarth All rights reserved
  • Terms of Service

Tutorial Playlist

Programming tutorial, your guide to the best backend languages for 2024, an ultimate guide that helps you to start learn coding 2024, what is backend development: the ultimate guide for beginners, all you need to know for choosing the first programming language to learn, here’s all you need to know about coding, decoding, and reasoning with examples, understanding what is xml: the best guide to xml and its concepts., an ultimate guide to learn the importance of low-code and no-code development, top frontend languages that you should know about, top 75+ frontend developer interview questions and answers, the ultimate guide to learn typescript generics, the most comprehensive guide for beginners to know ‘what is typescript’.

The Ultimate Guide on Introduction to Competitive Programming

Top 60+ TCS NQT Interview Questions and Answers for 2024

Most commonly asked logical reasoning questions in an aptitude test, everything you need to know about advanced typescript concepts, an absolute guide to build c hello world program, a one-stop solution guide to learn how to create a game in unity, what is nat significance of nat for translating ip addresses in the network model, data science vs software engineering: key differences, a real-time chat application typescript project using node.js as a server, what is raspberry pi here’s the best guide to get started, what is arduino here’s the best beginners guide to get started, arduino vs. raspberry pi: which is the better board, the perfect guide for all you need to learn about mean stack, software developer resume: a comprehensive guide, here’s everything all you need to know about the programming roadmap, an ultimate guide that helps you to develop and improve problem solving in programming, the top 10 awesome arduino projects of all time, pyspark rdd: everything you need to know about pyspark rdd, wipro interview questions and answers that you should know before going for an interview, how to use typescript with nodejs: the ultimate guide, what is rust programming language why is it so popular, software terminologies, an ultimate guide that helps you to develop and improve problem solving in programming.

Lesson 27 of 33 By Hemant Deshpande

An Ultimate Guide That Helps You to Develop and Improve Problem Solving in Programming

Table of Contents

Coding and Programming skills hold a significant and critical role in implementing and developing various technologies and software. They add more value to the future and development. These programming and coding skills are essential for every person to improve problem solving skills. So, we brought you this article to help you learn and know the importance of these skills in the future. 

Want a Top Software Development Job? Start Here!

Want a Top Software Development Job? Start Here!

Topics covered in this problem solving in programming article are:

  • What is Problem Solving in Programming? 
  • Problem Solving skills in Programming
  • How does it impact your career ?
  • Steps involved in Problem Solving
  • Steps to improve Problem Solving in programming

What is Problem Solving in Programming?

Computers are used to solve various problems in day-to-day life. Problem Solving is an essential skill that helps to solve problems in programming. There are specific steps to be carried out to solve problems in computer programming, and the success depends on how correctly and precisely we define a problem. This involves designing, identifying and implementing problems using certain steps to develop a computer.

When we know what exactly problem solving in programming is, let us learn how it impacts your career growth.

How Does It Impact Your Career?

Many companies look for candidates with excellent problem solving skills. These skills help people manage the work and make candidates put more effort into the work, which results in finding solutions for complex problems in unexpected situations. These skills also help to identify quick solutions when they arise and are identified. 

People with great problem solving skills also possess more thinking and analytical skills, which makes them much more successful and confident in their career and able to work in any kind of environment. 

The above section gives you an idea of how problem solving in programming impacts your career and growth. Now, let's understand what problem solving skills mean.

Problem Solving Skills in Programming

Solving a question that is related to computers is more complicated than finding the solutions for other questions. It requires excellent knowledge and much thinking power. Problem solving in programming skills is much needed for a person and holds a major advantage. For every question, there are specific steps to be followed to get a perfect solution. By using those steps, it is possible to find a solution quickly.

The above section is covered with an explanation of problem solving in programming skills. Now let's learn some steps involved in problem solving.

Steps Involved in Problem Solving

Before being ready to solve a problem, there are some steps and procedures to be followed to find the solution. Let's have a look at them in this problem solving in programming article.

Basically, they are divided into four categories:

  • Analysing the problem
  • Developing the algorithm
  • Testing and debugging

Analysing the Problem

Every problem has a perfect solution; before we are ready to solve a problem, we must look over the question and understand it. When we know the question, it is easy to find the solution for it. If we are not ready with what we have to solve, then we end up with the question and cannot find the answer as expected. By analysing it, we can figure out the outputs and inputs to be carried out. Thus, when we analyse and are ready with the list, it is easy and helps us find the solution easily. 

Developing the Algorithm

It is required to decide a solution before writing a program. The procedure of representing the solution  in a natural language called an algorithm. We must design, develop and decide the final approach after a number of trials and errors, before actually writing the final code on an algorithm before we write the code. It captures and refines all the aspects of the desired solution.

Once we finalise the algorithm, we must convert the decided algorithm into a code or program using a dedicated programming language that is understandable by the computer to find a desired solution. In this stage, a wide variety of programming languages are used to convert the algorithm into code. 

Testing and Debugging

The designed and developed program undergoes several rigorous tests based on various real-time parameters and the program undergoes various levels of simulations. It must meet the user's requirements, which have to respond with the required time. It should generate all expected outputs to all the possible inputs. The program should also undergo bug fixing and all possible exception handling. If it fails to show the possible results, it should be checked for logical errors.

Industries follow some testing methods like system testing, component testing and acceptance testing while developing complex applications. The errors identified while testing are debugged or rectified and tested again until all errors are removed from the program.

The steps mentioned above are involved in problem solving in programming. Now let's see some more detailed information about the steps to improve problem solving in programming.

Steps to Improve Problem Solving in Programming

Right mindset.

The way to approach problems is the key to improving the skills. To find a solution, a positive mindset helps to solve problems quickly. If you think something is impossible, then it is hard to achieve. When you feel free and focus with a positive attitude, even complex problems will have a perfect solution.

Making Right Decisions

When we need to solve a problem, we must be clear with the solution. The perfect solution helps to get success in a shorter period. Making the right decisions in the right situation helps to find the perfect solution quickly and efficiently. These skills also help to get more command over the subject.

Keeping Ideas on Track

Ideas always help much in improving the skills; they also help to gain more knowledge and more command over things. In problem solving situations, these ideas help much and help to develop more skills. Give opportunities for the mind and keep on noting the ideas.

Learning from Feedbacks

A crucial part of learning is from the feedback. Mistakes help you to gain more knowledge and have much growth. When you have a solution for a problem, go for the feedback from the experienced or the professionals. It helps you get success within a shorter period and enables you to find other solutions easily.

Asking Questions

Questions are an incredible part of life. While searching for solutions, there are a lot of questions that arise in our minds. Once you know the question correctly, then you are able to find answers quickly. In coding or programming, we must have a clear idea about the problem. Then, you can find the perfect solution for it. Raising questions can help to understand the problem.

These are a few reasons and tips to improve problem solving in programming skills. Now let's see some major benefits in this article.

  • Problem solving in programming skills helps to gain more knowledge over coding and programming, which is a major benefit.
  • These problem solving skills also help to develop more skills in a person and build a promising career.
  • These skills also help to find the solutions for critical and complex problems in a perfect way.
  • Learning and developing problem solving in programming helps in building a good foundation.
  • Most of the companies are looking for people with good problem solving skills, and these play an important role when it comes to job opportunities 
Don't miss out on the opportunity to become a Certified Professional with Simplilearn's Post Graduate Program in Full Stack Web Development . Enroll Today!

Problem solving in programming skills is important in this modern world; these skills build a great career and hold a great advantage. This article on problem solving in programming provides you with an idea of how it plays a massive role in the present world. In this problem solving in programming article, the skills and the ways to improve more command on problem solving in programming are mentioned and explained in a proper way.

If you are looking to advance in your career. Simplilearn provides training and certification courses on various programming languages - Python , Java , Javascript , and many more. Check out our Full Stack Developer - MERN Stack course that will help you excel in your career.

If you have any questions for us on the problem solving in programming article. Do let us know in the comments section below; we have our experts answer it right away.

Find our Full Stack Developer - MERN Stack Online Bootcamp in top cities:

NameDatePlace
Cohort starts on 18th Sep 2024,
Weekend batch
Your City
Cohort starts on 9th Oct 2024,
Weekend batch
Your City
Cohort starts on 30th Oct 2024,
Weekend batch
Your City

About the Author

Hemant Deshpande

Hemant Deshpande, PMP has more than 17 years of experience working for various global MNC's. He has more than 10 years of experience in managing large transformation programs for Fortune 500 clients across verticals such as Banking, Finance, Insurance, Healthcare, Telecom and others. During his career he has worked across the geographies - North America, Europe, Middle East, and Asia Pacific. Hemant is an internationally Certified Executive Coach (CCA/ICF Approved) working with corporate leaders. He also provides Management Consulting and Training services. He is passionate about writing and regularly blogs and writes content for top websites. His motto in life - Making a positive difference.

Recommended Resources

Your One-Stop Solution to Understand Coin Change Problem

Your One-Stop Solution to Understand Coin Change Problem

Combating the Global Talent Shortage Through Skill Development Programs

Combating the Global Talent Shortage Through Skill Development Programs

What Is Problem Solving? Steps, Techniques, and Best Practices Explained

What Is Problem Solving? Steps, Techniques, and Best Practices Explained

One Stop Solution to All the Dynamic Programming Problems

One Stop Solution to All the Dynamic Programming Problems

The Ultimate Guide on Introduction to Competitive Programming

The Ultimate Guide to Top Front End and Back End Programming Languages for 2021

  • PMP, PMI, PMBOK, CAPM, PgMP, PfMP, ACP, PBA, RMP, SP, and OPM3 are registered marks of the Project Management Institute, Inc.

How to improve your problem solving skills and build effective problem solving strategies

problem solving programs

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

Effective problem solving is all about using the right process and following a plan tailored to the issue at hand. Recognizing your team or organization has an issue isn’t enough to come up with effective problem solving strategies. 

To truly understand a problem and develop appropriate solutions, you will want to follow a solid process, follow the necessary problem solving steps, and bring all of your problem solving skills to the table.   We’ll forst look at what problem solving strategies you can employ with your team when looking for a way to approach the process. We’ll then discuss the problem solving skills you need to be more effective at solving problems, complete with an activity from the SessionLab library you can use to develop that skill in your team.

Let’s get to it! 

Problem solving strategies

What skills do i need to be an effective problem solver, how can i improve my problem solving skills.

Problem solving strategies are methods of approaching and facilitating the process of problem-solving with a set of techniques , actions, and processes. Different strategies are more effective if you are trying to solve broad problems such as achieving higher growth versus more focused problems like, how do we improve our customer onboarding process?

Broadly, the problem solving steps outlined above should be included in any problem solving strategy though choosing where to focus your time and what approaches should be taken is where they begin to differ. You might find that some strategies ask for the problem identification to be done prior to the session or that everything happens in the course of a one day workshop.

The key similarity is that all good problem solving strategies are structured and designed. Four hours of open discussion is never going to be as productive as a four-hour workshop designed to lead a group through a problem solving process.

Good problem solving strategies are tailored to the team, organization and problem you will be attempting to solve. Here are some example problem solving strategies you can learn from or use to get started.

Use a workshop to lead a team through a group process

Often, the first step to solving problems or organizational challenges is bringing a group together effectively. Most teams have the tools, knowledge, and expertise necessary to solve their challenges – they just need some guidance in how to use leverage those skills and a structure and format that allows people to focus their energies.

Facilitated workshops are one of the most effective ways of solving problems of any scale. By designing and planning your workshop carefully, you can tailor the approach and scope to best fit the needs of your team and organization. 

Problem solving workshop

  • Creating a bespoke, tailored process
  • Tackling problems of any size
  • Building in-house workshop ability and encouraging their use

Workshops are an effective strategy for solving problems. By using tried and test facilitation techniques and methods, you can design and deliver a workshop that is perfectly suited to the unique variables of your organization. You may only have the capacity for a half-day workshop and so need a problem solving process to match. 

By using our session planner tool and importing methods from our library of 700+ facilitation techniques, you can create the right problem solving workshop for your team. It might be that you want to encourage creative thinking or look at things from a new angle to unblock your groups approach to problem solving. By tailoring your workshop design to the purpose, you can help ensure great results.

One of the main benefits of a workshop is the structured approach to problem solving. Not only does this mean that the workshop itself will be successful, but many of the methods and techniques will help your team improve their working processes outside of the workshop. 

We believe that workshops are one of the best tools you can use to improve the way your team works together. Start with a problem solving workshop and then see what team building, culture or design workshops can do for your organization!

Run a design sprint

Great for: 

  • aligning large, multi-discipline teams
  • quickly designing and testing solutions
  • tackling large, complex organizational challenges and breaking them down into smaller tasks

By using design thinking principles and methods, a design sprint is a great way of identifying, prioritizing and prototyping solutions to long term challenges that can help solve major organizational problems with quick action and measurable results.

Some familiarity with design thinking is useful, though not integral, and this strategy can really help a team align if there is some discussion around which problems should be approached first. 

The stage-based structure of the design sprint is also very useful for teams new to design thinking.  The inspiration phase, where you look to competitors that have solved your problem, and the rapid prototyping and testing phases are great for introducing new concepts that will benefit a team in all their future work. 

It can be common for teams to look inward for solutions and so looking to the market for solutions you can iterate on can be very productive. Instilling an agile prototyping and testing mindset can also be great when helping teams move forwards – generating and testing solutions quickly can help save time in the long run and is also pretty exciting!

Break problems down into smaller issues

Organizational challenges and problems are often complicated and large scale in nature. Sometimes, trying to resolve such an issue in one swoop is simply unachievable or overwhelming. Try breaking down such problems into smaller issues that you can work on step by step. You may not be able to solve the problem of churning customers off the bat, but you can work with your team to identify smaller effort but high impact elements and work on those first.

This problem solving strategy can help a team generate momentum, prioritize and get some easy wins. It’s also a great strategy to employ with teams who are just beginning to learn how to approach the problem solving process. If you want some insight into a way to employ this strategy, we recommend looking at our design sprint template below!

Use guiding frameworks or try new methodologies

Some problems are best solved by introducing a major shift in perspective or by using new methodologies that encourage your team to think differently.

Props and tools such as Methodkit , which uses a card-based toolkit for facilitation, or Lego Serious Play can be great ways to engage your team and find an inclusive, democratic problem solving strategy. Remember that play and creativity are great tools for achieving change and whatever the challenge, engaging your participants can be very effective where other strategies may have failed.

LEGO Serious Play

  • Improving core problem solving skills
  • Thinking outside of the box
  • Encouraging creative solutions

LEGO Serious Play is a problem solving methodology designed to get participants thinking differently by using 3D models and kinesthetic learning styles. By physically building LEGO models based on questions and exercises, participants are encouraged to think outside of the box and create their own responses. 

Collaborate LEGO Serious Play exercises are also used to encourage communication and build problem solving skills in a group. By using this problem solving process, you can often help different kinds of learners and personality types contribute and unblock organizational problems with creative thinking. 

Problem solving strategies like LEGO Serious Play are super effective at helping a team solve more skills-based problems such as communication between teams or a lack of creative thinking. Some problems are not suited to LEGO Serious Play and require a different problem solving strategy.

Card Decks and Method Kits

  • New facilitators or non-facilitators 
  • Approaching difficult subjects with a simple, creative framework
  • Engaging those with varied learning styles

Card decks and method kids are great tools for those new to facilitation or for whom facilitation is not the primary role. Card decks such as the emotional culture deck can be used for complete workshops and in many cases, can be used right out of the box. Methodkit has a variety of kits designed for scenarios ranging from personal development through to personas and global challenges so you can find the right deck for your particular needs.

Having an easy to use framework that encourages creativity or a new approach can take some of the friction or planning difficulties out of the workshop process and energize a team in any setting. Simplicity is the key with these methods. By ensuring everyone on your team can get involved and engage with the process as quickly as possible can really contribute to the success of your problem solving strategy.

Source external advice

Looking to peers, experts and external facilitators can be a great way of approaching the problem solving process. Your team may not have the necessary expertise, insights of experience to tackle some issues, or you might simply benefit from a fresh perspective. Some problems may require bringing together an entire team, and coaching managers or team members individually might be the right approach. Remember that not all problems are best resolved in the same manner.

If you’re a solo entrepreneur, peer groups, coaches and mentors can also be invaluable at not only solving specific business problems, but in providing a support network for resolving future challenges. One great approach is to join a Mastermind Group and link up with like-minded individuals and all grow together. Remember that however you approach the sourcing of external advice, do so thoughtfully, respectfully and honestly. Reciprocate where you can and prepare to be surprised by just how kind and helpful your peers can be!

Mastermind Group

  • Solo entrepreneurs or small teams with low capacity
  • Peer learning and gaining outside expertise
  • Getting multiple external points of view quickly

Problem solving in large organizations with lots of skilled team members is one thing, but how about if you work for yourself or in a very small team without the capacity to get the most from a design sprint or LEGO Serious Play session? 

A mastermind group – sometimes known as a peer advisory board – is where a group of people come together to support one another in their own goals, challenges, and businesses. Each participant comes to the group with their own purpose and the other members of the group will help them create solutions, brainstorm ideas, and support one another. 

Mastermind groups are very effective in creating an energized, supportive atmosphere that can deliver meaningful results. Learning from peers from outside of your organization or industry can really help unlock new ways of thinking and drive growth. Access to the experience and skills of your peers can be invaluable in helping fill the gaps in your own ability, particularly in young companies.

A mastermind group is a great solution for solo entrepreneurs, small teams, or for organizations that feel that external expertise or fresh perspectives will be beneficial for them. It is worth noting that Mastermind groups are often only as good as the participants and what they can bring to the group. Participants need to be committed, engaged and understand how to work in this context. 

Coaching and mentoring

  • Focused learning and development
  • Filling skills gaps
  • Working on a range of challenges over time

Receiving advice from a business coach or building a mentor/mentee relationship can be an effective way of resolving certain challenges. The one-to-one format of most coaching and mentor relationships can really help solve the challenges those individuals are having and benefit the organization as a result.

A great mentor can be invaluable when it comes to spotting potential problems before they arise and coming to understand a mentee very well has a host of other business benefits. You might run an internal mentorship program to help develop your team’s problem solving skills and strategies or as part of a large learning and development program. External coaches can also be an important part of your problem solving strategy, filling skills gaps for your management team or helping with specific business issues. 

Now we’ve explored the problem solving process and the steps you will want to go through in order to have an effective session, let’s look at the skills you and your team need to be more effective problem solvers.

Problem solving skills are highly sought after, whatever industry or team you work in. Organizations are keen to employ people who are able to approach problems thoughtfully and find strong, realistic solutions. Whether you are a facilitator , a team leader or a developer, being an effective problem solver is a skill you’ll want to develop.

Problem solving skills form a whole suite of techniques and approaches that an individual uses to not only identify problems but to discuss them productively before then developing appropriate solutions.

Here are some of the most important problem solving skills everyone from executives to junior staff members should learn. We’ve also included an activity or exercise from the SessionLab library that can help you and your team develop that skill. 

If you’re running a workshop or training session to try and improve problem solving skills in your team, try using these methods to supercharge your process!

Problem solving skills checklist

Active listening

Active listening is one of the most important skills anyone who works with people can possess. In short, active listening is a technique used to not only better understand what is being said by an individual, but also to be more aware of the underlying message the speaker is trying to convey. When it comes to problem solving, active listening is integral for understanding the position of every participant and to clarify the challenges, ideas and solutions they bring to the table.

Some active listening skills include:

  • Paying complete attention to the speaker.
  • Removing distractions.
  • Avoid interruption.
  • Taking the time to fully understand before preparing a rebuttal.
  • Responding respectfully and appropriately.
  • Demonstrate attentiveness and positivity with an open posture, making eye contact with the speaker, smiling and nodding if appropriate. Show that you are listening and encourage them to continue.
  • Be aware of and respectful of feelings. Judge the situation and respond appropriately. You can disagree without being disrespectful.   
  • Observe body language. 
  • Paraphrase what was said in your own words, either mentally or verbally.
  • Remain neutral. 
  • Reflect and take a moment before responding.
  • Ask deeper questions based on what is said and clarify points where necessary.   
Active Listening   #hyperisland   #skills   #active listening   #remote-friendly   This activity supports participants to reflect on a question and generate their own solutions using simple principles of active listening and peer coaching. It’s an excellent introduction to active listening but can also be used with groups that are already familiar with it. Participants work in groups of three and take turns being: “the subject”, the listener, and the observer.

Analytical skills

All problem solving models require strong analytical skills, particularly during the beginning of the process and when it comes to analyzing how solutions have performed.

Analytical skills are primarily focused on performing an effective analysis by collecting, studying and parsing data related to a problem or opportunity. 

It often involves spotting patterns, being able to see things from different perspectives and using observable facts and data to make suggestions or produce insight. 

Analytical skills are also important at every stage of the problem solving process and by having these skills, you can ensure that any ideas or solutions you create or backed up analytically and have been sufficiently thought out.

Nine Whys   #innovation   #issue analysis   #liberating structures   With breathtaking simplicity, you can rapidly clarify for individuals and a group what is essentially important in their work. You can quickly reveal when a compelling purpose is missing in a gathering and avoid moving forward without clarity. When a group discovers an unambiguous shared purpose, more freedom and more responsibility are unleashed. You have laid the foundation for spreading and scaling innovations with fidelity.

Collaboration

Trying to solve problems on your own is difficult. Being able to collaborate effectively, with a free exchange of ideas, to delegate and be a productive member of a team is hugely important to all problem solving strategies.

Remember that whatever your role, collaboration is integral, and in a problem solving process, you are all working together to find the best solution for everyone. 

Marshmallow challenge with debriefing   #teamwork   #team   #leadership   #collaboration   In eighteen minutes, teams must build the tallest free-standing structure out of 20 sticks of spaghetti, one yard of tape, one yard of string, and one marshmallow. The marshmallow needs to be on top. The Marshmallow Challenge was developed by Tom Wujec, who has done the activity with hundreds of groups around the world. Visit the Marshmallow Challenge website for more information. This version has an extra debriefing question added with sample questions focusing on roles within the team.

Communication  

Being an effective communicator means being empathetic, clear and succinct, asking the right questions, and demonstrating active listening skills throughout any discussion or meeting. 

In a problem solving setting, you need to communicate well in order to progress through each stage of the process effectively. As a team leader, it may also fall to you to facilitate communication between parties who may not see eye to eye. Effective communication also means helping others to express themselves and be heard in a group.

Bus Trip   #feedback   #communication   #appreciation   #closing   #thiagi   #team   This is one of my favourite feedback games. I use Bus Trip at the end of a training session or a meeting, and I use it all the time. The game creates a massive amount of energy with lots of smiles, laughs, and sometimes even a teardrop or two.

Creative problem solving skills can be some of the best tools in your arsenal. Thinking creatively, being able to generate lots of ideas and come up with out of the box solutions is useful at every step of the process. 

The kinds of problems you will likely discuss in a problem solving workshop are often difficult to solve, and by approaching things in a fresh, creative manner, you can often create more innovative solutions.

Having practical creative skills is also a boon when it comes to problem solving. If you can help create quality design sketches and prototypes in record time, it can help bring a team to alignment more quickly or provide a base for further iteration.

The paper clip method   #sharing   #creativity   #warm up   #idea generation   #brainstorming   The power of brainstorming. A training for project leaders, creativity training, and to catalyse getting new solutions.

Critical thinking

Critical thinking is one of the fundamental problem solving skills you’ll want to develop when working on developing solutions. Critical thinking is the ability to analyze, rationalize and evaluate while being aware of personal bias, outlying factors and remaining open-minded.

Defining and analyzing problems without deploying critical thinking skills can mean you and your team go down the wrong path. Developing solutions to complex issues requires critical thinking too – ensuring your team considers all possibilities and rationally evaluating them. 

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.

Data analysis 

Though it shares lots of space with general analytical skills, data analysis skills are something you want to cultivate in their own right in order to be an effective problem solver.

Being good at data analysis doesn’t just mean being able to find insights from data, but also selecting the appropriate data for a given issue, interpreting it effectively and knowing how to model and present that data. Depending on the problem at hand, it might also include a working knowledge of specific data analysis tools and procedures. 

Having a solid grasp of data analysis techniques is useful if you’re leading a problem solving workshop but if you’re not an expert, don’t worry. Bring people into the group who has this skill set and help your team be more effective as a result.

Decision making

All problems need a solution and all solutions require that someone make the decision to implement them. Without strong decision making skills, teams can become bogged down in discussion and less effective as a result. 

Making decisions is a key part of the problem solving process. It’s important to remember that decision making is not restricted to the leadership team. Every staff member makes decisions every day and developing these skills ensures that your team is able to solve problems at any scale. Remember that making decisions does not mean leaping to the first solution but weighing up the options and coming to an informed, well thought out solution to any given problem that works for the whole team.

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

Dependability

Most complex organizational problems require multiple people to be involved in delivering the solution. Ensuring that the team and organization can depend on you to take the necessary actions and communicate where necessary is key to ensuring problems are solved effectively.

Being dependable also means working to deadlines and to brief. It is often a matter of creating trust in a team so that everyone can depend on one another to complete the agreed actions in the agreed time frame so that the team can move forward together. Being undependable can create problems of friction and can limit the effectiveness of your solutions so be sure to bear this in mind throughout a project. 

Team Purpose & Culture   #team   #hyperisland   #culture   #remote-friendly   This is an essential process designed to help teams define their purpose (why they exist) and their culture (how they work together to achieve that purpose). Defining these two things will help any team to be more focused and aligned. With support of tangible examples from other companies, the team members work as individuals and a group to codify the way they work together. The goal is a visual manifestation of both the purpose and culture that can be put up in the team’s work space.

Emotional intelligence

Emotional intelligence is an important skill for any successful team member, whether communicating internally or with clients or users. In the problem solving process, emotional intelligence means being attuned to how people are feeling and thinking, communicating effectively and being self-aware of what you bring to a room. 

There are often differences of opinion when working through problem solving processes, and it can be easy to let things become impassioned or combative. Developing your emotional intelligence means being empathetic to your colleagues and managing your own emotions throughout the problem and solution process. Be kind, be thoughtful and put your points across care and attention. 

Being emotionally intelligent is a skill for life and by deploying it at work, you can not only work efficiently but empathetically. Check out the emotional culture workshop template for more!

Facilitation

As we’ve clarified in our facilitation skills post, facilitation is the art of leading people through processes towards agreed-upon objectives in a manner that encourages participation, ownership, and creativity by all those involved. While facilitation is a set of interrelated skills in itself, the broad definition of facilitation can be invaluable when it comes to problem solving. Leading a team through a problem solving process is made more effective if you improve and utilize facilitation skills – whether you’re a manager, team leader or external stakeholder.

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.

Flexibility 

Being flexible is a vital skill when it comes to problem solving. This does not mean immediately bowing to pressure or changing your opinion quickly: instead, being flexible is all about seeing things from new perspectives, receiving new information and factoring it into your thought process.

Flexibility is also important when it comes to rolling out solutions. It might be that other organizational projects have greater priority or require the same resources as your chosen solution. Being flexible means understanding needs and challenges across the team and being open to shifting or arranging your own schedule as necessary. Again, this does not mean immediately making way for other projects. It’s about articulating your own needs, understanding the needs of others and being able to come to a meaningful compromise.

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.

Working in any group can lead to unconscious elements of groupthink or situations in which you may not wish to be entirely honest. Disagreeing with the opinions of the executive team or wishing to save the feelings of a coworker can be tricky to navigate, but being honest is absolutely vital when to comes to developing effective solutions and ensuring your voice is heard. 

Remember that being honest does not mean being brutally candid. You can deliver your honest feedback and opinions thoughtfully and without creating friction by using other skills such as emotional intelligence. 

Explore your Values   #hyperisland   #skills   #values   #remote-friendly   Your Values is an exercise for participants to explore what their most important values are. It’s done in an intuitive and rapid way to encourage participants to follow their intuitive feeling rather than over-thinking and finding the “correct” values. It is a good exercise to use to initiate reflection and dialogue around personal values.

Initiative 

The problem solving process is multi-faceted and requires different approaches at certain points of the process. Taking initiative to bring problems to the attention of the team, collect data or lead the solution creating process is always valuable. You might even roadtest your own small scale solutions or brainstorm before a session. Taking initiative is particularly effective if you have good deal of knowledge in that area or have ownership of a particular project and want to get things kickstarted.

That said, be sure to remember to honor the process and work in service of the team. If you are asked to own one part of the problem solving process and you don’t complete that task because your initiative leads you to work on something else, that’s not an effective method of solving business challenges.

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.

Impartiality

A particularly useful problem solving skill for product owners or managers is the ability to remain impartial throughout much of the process. In practice, this means treating all points of view and ideas brought forward in a meeting equally and ensuring that your own areas of interest or ownership are not favored over others. 

There may be a stage in the process where a decision maker has to weigh the cost and ROI of possible solutions against the company roadmap though even then, ensuring that the decision made is based on merit and not personal opinion. 

Empathy map   #frame insights   #create   #design   #issue analysis   An empathy map is a tool to help a design team to empathize with the people they are designing for. You can make an empathy map for a group of people or for a persona. To be used after doing personas when more insights are needed.

Being a good leader means getting a team aligned, energized and focused around a common goal. In the problem solving process, strong leadership helps ensure that the process is efficient, that any conflicts are resolved and that a team is managed in the direction of success.

It’s common for managers or executives to assume this role in a problem solving workshop, though it’s important that the leader maintains impartiality and does not bulldoze the group in a particular direction. Remember that good leadership means working in service of the purpose and team and ensuring the workshop is a safe space for employees of any level to contribute. Take a look at our leadership games and activities post for more exercises and methods to help improve leadership in your organization.

Leadership Pizza   #leadership   #team   #remote-friendly   This leadership development activity offers a self-assessment framework for people to first identify what skills, attributes and attitudes they find important for effective leadership, and then assess their own development and initiate goal setting.

In the context of problem solving, mediation is important in keeping a team engaged, happy and free of conflict. When leading or facilitating a problem solving workshop, you are likely to run into differences of opinion. Depending on the nature of the problem, certain issues may be brought up that are emotive in nature. 

Being an effective mediator means helping those people on either side of such a divide are heard, listen to one another and encouraged to find common ground and a resolution. Mediating skills are useful for leaders and managers in many situations and the problem solving process is no different.

Conflict Responses   #hyperisland   #team   #issue resolution   A workshop for a team to reflect on past conflicts, and use them to generate guidelines for effective conflict handling. The workshop uses the Thomas-Killman model of conflict responses to frame a reflective discussion. Use it to open up a discussion around conflict with a team.

Planning 

Solving organizational problems is much more effective when following a process or problem solving model. Planning skills are vital in order to structure, deliver and follow-through on a problem solving workshop and ensure your solutions are intelligently deployed.

Planning skills include the ability to organize tasks and a team, plan and design the process and take into account any potential challenges. Taking the time to plan carefully can save time and frustration later in the process and is valuable for ensuring a team is positioned for success.

3 Action Steps   #hyperisland   #action   #remote-friendly   This is a small-scale strategic planning session that helps groups and individuals to take action toward a desired change. It is often used at the end of a workshop or programme. The group discusses and agrees on a vision, then creates some action steps that will lead them towards that vision. The scope of the challenge is also defined, through discussion of the helpful and harmful factors influencing the group.

Prioritization

As organisations grow, the scale and variation of problems they face multiplies. Your team or is likely to face numerous challenges in different areas and so having the skills to analyze and prioritize becomes very important, particularly for those in leadership roles.

A thorough problem solving process is likely to deliver multiple solutions and you may have several different problems you wish to solve simultaneously. Prioritization is the ability to measure the importance, value, and effectiveness of those possible solutions and choose which to enact and in what order. The process of prioritization is integral in ensuring the biggest challenges are addressed with the most impactful solutions.

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.

Project management

Some problem solving skills are utilized in a workshop or ideation phases, while others come in useful when it comes to decision making. Overseeing an entire problem solving process and ensuring its success requires strong project management skills. 

While project management incorporates many of the other skills listed here, it is important to note the distinction of considering all of the factors of a project and managing them successfully. Being able to negotiate with stakeholders, manage tasks, time and people, consider costs and ROI, and tie everything together is massively helpful when going through the problem solving process. 

Record keeping

Working out meaningful solutions to organizational challenges is only one part of the process.  Thoughtfully documenting and keeping records of each problem solving step for future consultation is important in ensuring efficiency and meaningful change. 

For example, some problems may be lower priority than others but can be revisited in the future. If the team has ideated on solutions and found some are not up to the task, record those so you can rule them out and avoiding repeating work. Keeping records of the process also helps you improve and refine your problem solving model next time around!

Personal Kanban   #gamestorming   #action   #agile   #project planning   Personal Kanban is a tool for organizing your work to be more efficient and productive. It is based on agile methods and principles.

Research skills

Conducting research to support both the identification of problems and the development of appropriate solutions is important for an effective process. Knowing where to go to collect research, how to conduct research efficiently, and identifying pieces of research are relevant are all things a good researcher can do well. 

In larger groups, not everyone has to demonstrate this ability in order for a problem solving workshop to be effective. That said, having people with research skills involved in the process, particularly if they have existing area knowledge, can help ensure the solutions that are developed with data that supports their intention. Remember that being able to deliver the results of research efficiently and in a way the team can easily understand is also important. The best data in the world is only as effective as how it is delivered and interpreted.

Customer experience map   #ideation   #concepts   #research   #design   #issue analysis   #remote-friendly   Customer experience mapping is a method of documenting and visualizing the experience a customer has as they use the product or service. It also maps out their responses to their experiences. To be used when there is a solution (even in a conceptual stage) that can be analyzed.

Risk management

Managing risk is an often overlooked part of the problem solving process. Solutions are often developed with the intention of reducing exposure to risk or solving issues that create risk but sometimes, great solutions are more experimental in nature and as such, deploying them needs to be carefully considered. 

Managing risk means acknowledging that there may be risks associated with more out of the box solutions or trying new things, but that this must be measured against the possible benefits and other organizational factors. 

Be informed, get the right data and stakeholders in the room and you can appropriately factor risk into your decision making process. 

Decisions, Decisions…   #communication   #decision making   #thiagi   #action   #issue analysis   When it comes to decision-making, why are some of us more prone to take risks while others are risk-averse? One explanation might be the way the decision and options were presented.  This exercise, based on Kahneman and Tversky’s classic study , illustrates how the framing effect influences our judgement and our ability to make decisions . The participants are divided into two groups. Both groups are presented with the same problem and two alternative programs for solving them. The two programs both have the same consequences but are presented differently. The debriefing discussion examines how the framing of the program impacted the participant’s decision.

Team-building 

No single person is as good at problem solving as a team. Building an effective team and helping them come together around a common purpose is one of the most important problem solving skills, doubly so for leaders. By bringing a team together and helping them work efficiently, you pave the way for team ownership of a problem and the development of effective solutions. 

In a problem solving workshop, it can be tempting to jump right into the deep end, though taking the time to break the ice, energize the team and align them with a game or exercise will pay off over the course of the day.

Remember that you will likely go through the problem solving process multiple times over an organization’s lifespan and building a strong team culture will make future problem solving more effective. It’s also great to work with people you know, trust and have fun with. Working on team building in and out of the problem solving process is a hallmark of successful teams that can work together to solve business problems.

9 Dimensions Team Building Activity   #ice breaker   #teambuilding   #team   #remote-friendly   9 Dimensions is a powerful activity designed to build relationships and trust among team members. There are 2 variations of this icebreaker. The first version is for teams who want to get to know each other better. The second version is for teams who want to explore how they are working together as a team.

Time management 

The problem solving process is designed to lead a team from identifying a problem through to delivering a solution and evaluating its effectiveness. Without effective time management skills or timeboxing of tasks, it can be easy for a team to get bogged down or be inefficient.

By using a problem solving model and carefully designing your workshop, you can allocate time efficiently and trust that the process will deliver the results you need in a good timeframe.

Time management also comes into play when it comes to rolling out solutions, particularly those that are experimental in nature. Having a clear timeframe for implementing and evaluating solutions is vital for ensuring their success and being able to pivot if necessary.

Improving your skills at problem solving is often a career-long pursuit though there are methods you can use to make the learning process more efficient and to supercharge your problem solving skillset.

Remember that the skills you need to be a great problem solver have a large overlap with those skills you need to be effective in any role. Investing time and effort to develop your active listening or critical thinking skills is valuable in any context. Here are 7 ways to improve your problem solving skills.

Share best practices

Remember that your team is an excellent source of skills, wisdom, and techniques and that you should all take advantage of one another where possible. Best practices that one team has for solving problems, conducting research or making decisions should be shared across the organization. If you have in-house staff that have done active listening training or are data analysis pros, have them lead a training session. 

Your team is one of your best resources. Create space and internal processes for the sharing of skills so that you can all grow together. 

Ask for help and attend training

Once you’ve figured out you have a skills gap, the next step is to take action to fill that skills gap. That might be by asking your superior for training or coaching, or liaising with team members with that skill set. You might even attend specialized training for certain skills – active listening or critical thinking, for example, are business-critical skills that are regularly offered as part of a training scheme.

Whatever method you choose, remember that taking action of some description is necessary for growth. Whether that means practicing, getting help, attending training or doing some background reading, taking active steps to improve your skills is the way to go.

Learn a process 

Problem solving can be complicated, particularly when attempting to solve large problems for the first time. Using a problem solving process helps give structure to your problem solving efforts and focus on creating outcomes, rather than worrying about the format. 

Tools such as the seven-step problem solving process above are effective because not only do they feature steps that will help a team solve problems, they also develop skills along the way. Each step asks for people to engage with the process using different skills and in doing so, helps the team learn and grow together. Group processes of varying complexity and purpose can also be found in the SessionLab library of facilitation techniques . Using a tried and tested process and really help ease the learning curve for both those leading such a process, as well as those undergoing the purpose.

Effective teams make decisions about where they should and shouldn’t expend additional effort. By using a problem solving process, you can focus on the things that matter, rather than stumbling towards a solution haphazardly. 

Create a feedback loop

Some skills gaps are more obvious than others. It’s possible that your perception of your active listening skills differs from those of your colleagues. 

It’s valuable to create a system where team members can provide feedback in an ordered and friendly manner so they can all learn from one another. Only by identifying areas of improvement can you then work to improve them. 

Remember that feedback systems require oversight and consideration so that they don’t turn into a place to complain about colleagues. Design the system intelligently so that you encourage the creation of learning opportunities, rather than encouraging people to list their pet peeves.

While practice might not make perfect, it does make the problem solving process easier. If you are having trouble with critical thinking, don’t shy away from doing it. Get involved where you can and stretch those muscles as regularly as possible. 

Problem solving skills come more naturally to some than to others and that’s okay. Take opportunities to get involved and see where you can practice your skills in situations outside of a workshop context. Try collaborating in other circumstances at work or conduct data analysis on your own projects. You can often develop those skills you need for problem solving simply by doing them. Get involved!

Use expert exercises and methods

Learn from the best. Our library of 700+ facilitation techniques is full of activities and methods that help develop the skills you need to be an effective problem solver. Check out our templates to see how to approach problem solving and other organizational challenges in a structured and intelligent manner.

There is no single approach to improving problem solving skills, but by using the techniques employed by others you can learn from their example and develop processes that have seen proven results. 

Try new ways of thinking and change your mindset

Using tried and tested exercises that you know well can help deliver results, but you do run the risk of missing out on the learning opportunities offered by new approaches. As with the problem solving process, changing your mindset can remove blockages and be used to develop your problem solving skills.

Most teams have members with mixed skill sets and specialties. Mix people from different teams and share skills and different points of view. Teach your customer support team how to use design thinking methods or help your developers with conflict resolution techniques. Try switching perspectives with facilitation techniques like Flip It! or by using new problem solving methodologies or models. Give design thinking, liberating structures or lego serious play a try if you want to try a new approach. You will find that framing problems in new ways and using existing skills in new contexts can be hugely useful for personal development and improving your skillset. It’s also a lot of fun to try new things. Give it a go!

Encountering business challenges and needing to find appropriate solutions is not unique to your organization. Lots of very smart people have developed methods, theories and approaches to help develop problem solving skills and create effective solutions. Learn from them!

Books like The Art of Thinking Clearly , Think Smarter, or Thinking Fast, Thinking Slow are great places to start, though it’s also worth looking at blogs related to organizations facing similar problems to yours, or browsing for success stories. Seeing how Dropbox massively increased growth and working backward can help you see the skills or approach you might be lacking to solve that same problem. Learning from others by reading their stories or approaches can be time-consuming but ultimately rewarding.

A tired, distracted mind is not in the best position to learn new skills. It can be tempted to burn the candle at both ends and develop problem solving skills outside of work. Absolutely use your time effectively and take opportunities for self-improvement, though remember that rest is hugely important and that without letting your brain rest, you cannot be at your most effective. 

Creating distance between yourself and the problem you might be facing can also be useful. By letting an idea sit, you can find that a better one presents itself or you can develop it further. Take regular breaks when working and create a space for downtime. Remember that working smarter is preferable to working harder and that self-care is important for any effective learning or improvement process.

Want to design better group processes?

problem solving programs

Over to you

Now we’ve explored some of the key problem solving skills and the problem solving steps necessary for an effective process, you’re ready to begin developing more effective solutions and leading problem solving workshops.

Need more inspiration? Check out our post on problem solving activities you can use when guiding a group towards a great solution in your next workshop or meeting. Have questions? Did you have a great problem solving technique you use with your team? Get in touch in the comments below. We’d love to chat!

' src=

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.

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

problem solving programs

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…

problem solving programs

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

ct-logo

Top 10 Programming Challenges for Beginners

The best way to learn coding is programming challenges for beginners. They help you practice what you’ve learned by solving real problems. Instead of just reading about coding, you get to try it out for yourself. This hands-on practice makes it easier to understand how coding works and improves your problem-solving skills. 

In this article, we’ll look at why these challenges are so useful, how to start them, and some tips to help you build your coding skills with confidence.

Understanding Programming Challenges for Beginners

Table of Contents

Definition A programming challenge is a task that asks you to solve a problem or complete a specific job using code. It’s a hands-on way to practice and see how well you understand coding concepts.

  • Sorting : Writing code to put items in order.
  • Searching : Finding something in a list, like looking up a name.
  • Optimization : Finding the best way to do something, like saving time or money.
  • Arrays : Working with lists of items, like finding duplicates or changing their order.
  • Linked Lists : Managing lists where each item points to the next, like adding or removing items.
  • Trees and Graphs : Handling more complex structures, such as navigating a family tree or a network.
  • Spot Mistakes : Find where the code is wrong.
  • Fix Problems : Correct the code so it works properly.
  • Understand Code : Learn how the code should work and make it better.
  • Skill Improvement : Doing these challenges helps you get better at coding and learn new techniques. It’s a practical way to improve your skills.
  • Better Problem-Solving : Working through different challenges helps you think more clearly and solve problems in creative ways. You learn to tackle issues from various angles.
  • Real-World Prep : These challenges give you useful experience for real jobs. They help you get ready for coding interviews and actual programming tasks by applying your skills to various problems.

Top Programming Challenges for Beginners

1. FizzBuzz Description : Create a program that prints numbers from 1 to 50. If the number is a multiple of 3, print “Fizz” instead. If it’s a multiple of 4, print “Buzz.” For numbers that are multiples of both 6 and 7, print “FizzBuzz.” Why It’s Useful : This helps you practice using loops and making decisions in code.

2. Palindrome Checker Description : Write a function to check if a word or phrase reads the same backward as forward. Why It’s Useful : This exercise improves your skills with strings and helps you handle different kinds of text.

3. Fibonacci Sequence Description : Make a program that prints the first n numbers of the Fibonacci sequence. Its sequence starts with 0 and 1, and each new number is the sum of the two before it. Why It’s Useful : This challenge teaches you about loops and how to use recursion.

4. Factorial Calculation Description : Create a function that accepts a number n as input and returns the addition of all numbers from 1 to n. The sum of numbers up to n is obtained by adding all integers between 1 and n. 

Why It’s Useful : This helps you practice loops or recursion and learn about mathematical operations.

5. Find the Largest Number Description : Write a function to find the largest number in a list or array. Why It’s Useful : This helps you learn how to go through a list and compare numbers.

6. Sum of Digits Description : Create a function that adds up the digits of a number. For example, the digits of 123 add up to 6. Why It’s Useful : This exercise helps you practice number handling and basic math.

7. Reverse a String Description : Write a function that reverses a given string. For example, “hello” should become “olleh.” Why It’s Useful : This helps you get better at working with strings and arrays.

8. Simple Calculator Description : Based on the user’s input, build a basic calculator that can perform arithmetic tasks like addition, subtraction, multiplication, and division. Why It’s Useful : This project teaches you how to handle user input and perform simple math operations.

9. Count Vowels Description : Create a function that counts how many vowels are in a string. Why It’s Useful : This helps you practice processing strings and counting characters.

10. Find the Missing Number Description : Given a list of numbers from 1 to 100, find the one missing number. Why It’s Useful : This problem is good for learning how to work with lists and solve problems.

These challenges are great for beginners because they cover important programming skills, such as working with loops, making decisions, and handling text and numbers.

Getting Started with Programming Challenges

Choosing the Right Platform To begin with programming challenges, pick a platform that suits you. Here are a few good ones:

  • LeetCode offers a variety of practice problems, from easy to hard, and is great for preparing for coding interviews.
  • HackerRank : Provides challenges in different areas like algorithms and data structures and has competitions to test your skills.
  • CodeSignal : Features interactive problems and tests to help you improve your coding skills.

Goals Clear Goals will help you stay in progress. 

  • Start Small . To build your confidence, begin with easier problems. Gradually, as you become more comfortable, try harder issues.
  • Track Your Progress : Record the problems you solve and note any areas where you need more practice. Many platforms offer tools to help with this.
  • Stick to a Schedule : Set aside regular time each week to work on challenges. Consistency helps you improve over time.

Time Management Managing your time well can make your practice more effective:

  • Focus on One Problem : Work on one problem until you solve it before moving on to another. This helps you understand each problem better.
  • Try Timed Practice : Practice solving problems within a set time limit to get better at working under pressure.
  • Take Breaks : If you get stuck, take a short break. Coming back with a fresh mind can help you find the solution.

Seeking Help When Needed Don’t hesitate to ask for help if you’re struggling:

  • Online Communities : Websites like Stack Overflow or discussion forums on challenge platforms can provide useful tips and solutions.
  • Tutorials : Many platforms offer guides and hints to help you understand difficult concepts.
  • Mentors and Study Groups : Find a mentor or join a study group. Working with others can provide valuable support and insights.

Using these tips will help you get started with programming challenges and make steady progress in your coding skills.

Tips for Success in Programming Challenges for Beginners

1. Practice Regularly Make coding a daily habit. Even a small amount of practice each day can help you understand the basics better and build your confidence. Start with simple problems and move on to harder ones as you improve. Consistency is key — the more you practice, the better you’ll get.

2. Learn from Your Mistakes Don’t be afraid to make mistakes — they are part of learning. After solving a problem, take some time to look over your solution. If it didn’t work, find out what went wrong and how to fix it. This will help you understand things better and avoid making the same mistakes again.

3. Ask for Help When Stuck If you get stuck on a problem, don’t hesitate to ask for help. Use online resources like forums, communities, or tutorials to find answers. Websites like Stack Overflow and GitHub are great for asking questions and finding solutions. Getting help from others can give you new ideas and help you move forward.

4. Break Problems into Smaller Steps When faced with a difficult problem, break it down into smaller parts and tackle each part one step at a time. This approach makes it easier to solve the problem and understand the logic behind your solution.

5. Plan with Pseudocode Before you start coding, write out your plan in plain language, called pseudocode. This helps you map out your approach, understand the steps you need to take, and find potential issues before you start writing actual code.

6. Test Your Code Often Test your code in small chunks as you write it rather than waiting until the end. This will help you find and fix mistakes early, making the debugging process easier and faster.

7. Try Different Approaches Don’t limit yourself to just one way of solving a problem. Be open to trying different approaches and experimenting with new ideas. This can help you find more efficient or creative solutions.

8. Focus on the Basics Make sure you have a strong understanding of the fundamentals, like loops, conditionals, and functions. Mastering these basics will make it easier for you to handle more complex challenges later on.

9. Set Realistic Goals Set simple and clear goals for each practice session. For example, aim to solve one easy problem a day or two more difficult issues each week. These small goals help keep you motivated and allow you to track your progress over time.

10. Use Different Learning Platforms Try different coding platforms like HackerRank, LeetCode, and Codewars. Each site offers a range of problems that can help you learn various skills and improve your problem-solving abilities.

Final Words 

Programming challenges are a great way for beginners to learn and improve their coding skills. Start with easy problems and slowly move on to harder ones to build a solid understanding of programming. The secret to getting better at programming challenges is regular practice, being patient, and learning from your mistakes. Keep pushing yourself, stay curious, and don’t be afraid to ask for help when you need it. Every challenge you complete brings you closer to becoming a confident and skilled programmer.

Top 32+ Computer Vision Project Ideas for 2024

How School Management Software Makes Life Easier

What are the best programming languages for beginners?

Python, JavaScript, and Ruby are some of the best languages for beginners. They are easy to understand, have a simple syntax, and have strong communities that provide plenty of resources and support. These languages are also commonly used in beginner-friendly challenges.

Where can I find programming challenges for beginners?

Many websites, such as HackerRank, LeetCode, Codewars, Codecademy, and Exercism, offer challenges specifically for beginners. 

How can I start with programming challenges?

Begin by selecting a programming language that interests you and find a platform that offers beginner challenges. Start with the simplest problems and gradually progress to more difficult ones as you become more comfortable. Make sure to read each problem carefully, write your code step-by-step, and test it thoroughly to ensure it works correctly.

Similar Articles

R Vs Python

R Vs Python For Data Science: Which Is Best?

R vs Python is always a major difference for data science students. The students always look for the best answer…

java-vs-javascript

Java vs JavaScript: The Crucial Battle of The Beasts

Some people believe that Java and JavaScript are both interrelated, as they have “Java” common in their names. However, it…

Leave a Comment Cancel Reply

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

This site uses Akismet to reduce spam. Learn how your comment data is processed .

"Hello World!" in C Easy C (Basic) Max Score: 5 Success Rate: 85.63%

Playing with characters easy c (basic) max score: 5 success rate: 84.38%, sum and difference of two numbers easy c (basic) max score: 5 success rate: 94.61%, functions in c easy c (basic) max score: 10 success rate: 96.02%, pointers in c easy c (basic) max score: 10 success rate: 96.61%, conditional statements in c easy c (basic) max score: 10 success rate: 96.92%, for loop in c easy c (basic) max score: 10 success rate: 93.80%, sum of digits of a five digit number easy c (basic) max score: 15 success rate: 98.66%, bitwise operators easy c (basic) max score: 15 success rate: 94.99%, printing pattern using loops medium c (basic) max score: 30 success rate: 95.95%, cookie support is required to access hackerrank.

Seems like cookies are disabled on this browser, please enable them to open this website

Thank you for visiting nature.com. You are using a browser version with limited support for CSS. To obtain the best experience, we recommend you use a more up to date browser (or turn off compatibility mode in Internet Explorer). In the meantime, to ensure continued support, we are displaying the site without styles and JavaScript.

  • View all journals
  • Explore content
  • About the journal
  • Publish with us
  • Sign up for alerts
  • Open access
  • Published: 05 September 2024

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.

Similar content being viewed by others

problem solving programs

Production scheduling of prefabricated components considering delivery methods

problem solving programs

Research on sustainable collaborative scheduling problem of multi-stage mixed flow shop for crankshaft components

problem solving programs

A robust optimization model for multi-objective blood supply chain network considering scenario analysis under uncertainty: a multi-objective approach

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.

problem solving programs

  • Undergraduate Admission
  • Graduate Admission
  • Tuition & Financial Aid
  • Communications
  • Health Sciences and Human Performance
  • Humanities and Sciences
  • Music, Theatre, and Dance
  • IC Resources
  • Office of the President
  • Ithaca College at a Glance
  • Awards and Accolades
  • Five-Year Strategic Plan
  • Fall Orientation
  • Directories
  • Course Catalog
  • Undergraduate

Innovation Scholar Program

Students in the Innovation Scholars Program enjoy a field trip to an apple orchard

Program Description

Information, Eligibility, and Requirements

Information and Important Dates

A sampling of recent projects by Innovation Scholars

Ithaca College students in their residence hall

Innovation Scholars have the opportunity to join a Residential Learning Community (RLC) with other students who are interested in the themes of the program: sustainability, social justice, environmental stewardship, and cultural diversity. The goal of the RLC is to foster a community of students with similar interests outside of the classroom and to provide guidance, mentorship, social events, and support through connection with one another and a faculty associate.

Frequently Asked Questions

Yes! In fact, many Innovation Scholar courses may also count toward Integrative Core Curriculum (ICC) and/or your major or other minor requirements.

The program expects to enroll about 40 scholars per year on a competitive basis.

The minor is 18-20 credits (5 courses). The courses include:

  • Ithaca Seminar (required of all first-year students in their fall semester)
  • One (1) program elective: A course created specifically for the Innovation Scholar minor
  • Two (2) parallel electives: Courses offered by various H&S departments that fulfill the aims of the minor
  • Capstone: Participate in a Community Engagement Capstone class with the entire Innovation Scholar group, and develop and implement a project with relevance to a community.

You may take all four years of your undergraduate enrollment to complete the minor, or you can finish it sooner. You just have to maintain good grades and show evidence of engagement with the program to keep your scholarship active.

Yes, your scholarship will apply to all four years of your undergraduate enrollment, even if you complete your minor earlier.

You will be assigned an advisor specifically for the Innovation Scholar minor (this will be in addition to the advisor you are assigned for your major). Innovation Scholar advisors are faculty who oversee the Innovation Scholar Program and may also teach courses associated with the program.

Yes. In fact, we recommend spending a semester elsewhere as a way of broadening your world experience.

Susan Witherup Innovation Scholar Program Coordinator [email protected]

If you have questions about applying or your application , please contact the Admission Office at [email protected] or call (607) 274-3124 Monday through Friday, 8:30 a.m.–5:00 p.m. (ET).

COMMENTS

  1. Problems

    Our platform offers a range of essential problems for practice, as well as the latest questions being asked by top-tier companies. ... Interview. Store Study Plan. See all. Array 1733. String 719. Hash Table 624. Dynamic Programming 528. Math 520. Sorting 413. Greedy 377. Depth-First Search 295. Database 283. Binary Search 274. Matrix 234. Tree ...

  2. Best Problem Solving Courses Online with Certificates [2024]

    Best Problem Solving Courses Online with Certificates [2024]

  3. The 10 Most Popular Coding Challenge Websites [Updated for 2021]

    By Daniel Borowski. A great way to improve your skills when learning to code is by solving coding challenges. Solving different types of challenges and puzzles can help you become a better problem solver, learn the intricacies of a programming language, prepare for job interviews, learn new algorithms, and more.

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

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

  5. Brilliant

    Guided interactive problem solving that's effective and fun. Master concepts in 15 minutes a day. Get started. Math. Data Analysis. Computer Science. Programming & AI. Science & Engineering. Join over 10 million people learning on Brilliant. Master concepts in 15 minutes a day. Whether you're a complete beginner or ready to dive into ...

  6. Practice

    Problems. ? of 2910 Problems Solved (? %) Sign-In To Track Your Progress. Platform to practice programming problems. Solve company interview questions and improve your coding intellect.

  7. Solve Python

    Join over 23 million developers in solving code challenges on HackerRank, one of the best ways to prepare for programming interviews. ... Problem Solving (Basic) Python (Basic) Problem Solving (Advanced) Python (Intermediate) Difficulty. Easy. Medium. Hard. Subdomains. Introduction. Basic Data Types. Strings. Sets. Math.

  8. How to think like a programmer

    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!

  9. Solve Java

    Problem Solving (Intermediate) Difficulty. Easy. Medium. Hard. Subdomains. Introduction. Strings. BigNumber. Data Structures. Object Oriented Programming. Exception Handling. Advanced. ... Join over 23 million developers in solving code challenges on HackerRank, one of the best ways to prepare for programming interviews. We use cookies to ...

  10. Problem Solving

    Problem solving is the core thing software developers do. The programming languages and tools they use are secondary to this fundamental skill. From his book, "Think Like a Programmer", V. Anton Spraul defines problem solving in programming as:

  11. 40 problem-solving techniques and processes

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

  12. What is Problem Solving? An Introduction

    Problem solving, in the simplest terms, is the process of identifying a problem, analyzing it, and finding the most effective solution to overcome it. For software engineers, this process is deeply embedded in their daily workflow. It could be something as simple as figuring out why a piece of code isn't working as expected, or something as ...

  13. 10,000+ Coding Practice Challenges // Edabit

    functional_programming. math. numbers. Very Easy. Add to bookmarks. Add to collection. Basketball Points. You are counting points for a basketball game, given the amount of 2-pointers scored and 3-pointers scored, find the final points for the team and return that value. Examples points(1, 1) 5 points(7, 5) 29 points(38, 8) 100 Notes N/A

  14. Online Coding Practice Problems & Challenges

    Welcome to Practice! Practice over 5000+ problems and challenges in coding languages like Python, Java, JavaScript, C++, SQL and HTML. Start with beginner friendly challenges and solve hard problems as you become better. Use these practice problems and challenges to prove your coding skills. Old practice page Recent Contest Problems.

  15. Learn Problem solving in Python

    Problem solving in Python. Learn problem solving in Python from our online course and tutorial. You will learn basic math, conditionals and step by step logic building to solve problems easily. 4.5 (3977 reviews) 18 lessons Beginner level. 51.4k Learners.

  16. Basic Programming Problems

    Learn Programming - How To Code. In the world of programming, mastering the fundamentals is key to becoming a proficient developer.In this article, we will explore a variety of basic programming problems that are essential for every aspiring coder to understand. By delving into these foundational challenges, you will gain valuable insights into problem-solving techniques and build a strong ...

  17. The 10 Best Problem-Solving Software to Use in 2024

    2. Omnex Systems. via Omnex. Omnex's problem-solving software has many helpful features to track, manage, and solve problems quickly. It's a one-stop shop for dealing with internal and external issues. The platform is also customer-centric, which responds to customers in their preferred formats.

  18. Effective Problem-Solving and Decision-Making

    Effective Problem-Solving and Decision-Making

  19. Programming Tutorials and Practice Problems

    Programming Tutorials and Practice Problems

  20. 7 Problem-Solving Skills That Can Help You Be a More ...

    Although problem-solving is a skill in its own right, a subset of seven skills can help make the process of problem-solving easier. These include analysis, communication, emotional intelligence, resilience, creativity, adaptability, and teamwork. 1. Analysis. As a manager, you'll solve each problem by assessing the situation first.

  21. How to Develop Problem Solving Skills in Programming

    What is Problem Solving in Programming? Computers are used to solve various problems in day-to-day life. Problem Solving is an essential skill that helps to solve problems in programming. There are specific steps to be carried out to solve problems in computer programming, and the success depends on how correctly and precisely we define a problem.

  22. How to improve your problem solving skills and strategies

    Learn what problem solving skills you need to solve challenges big & small! ... Both groups are presented with the same problem and two alternative programs for solving them. The two programs both have the same consequences but are presented differently. The debriefing discussion examines how the framing of the program impacted the participant ...

  23. Top 10 Programming Challenges for Beginners

    Algorithmic Challenges: These problems ask you to create solutions to solve tasks efficiently. Examples include: Sorting: Writing code to put items in order.; Searching: Finding something in a list, like looking up a name.; Optimization: Finding the best way to do something, like saving time or money.; Data Structures Challenges:

  24. Solve C

    Solve C | HackerRank ... Solve C

  25. Enhance Your Problem-Solving Skills With an Online MAT Degree

    One problem-solving concept is the ADDIE model, which means analyzing the need, designing and developing a solution, and implementing and evaluating it. Educators can directly apply this model to instructional design. ... This program includes courses covering topics such as classroom management, multicultural teaching practices, outcomes ...

  26. 8.9: Problem Solving and Decision Making

    Strategies for Success in a Nursing Program 8: Thinking 8.9: Problem Solving and Decision Making Expand/collapse global location 8.9: Problem Solving and Decision Making ... Using the steps outlined earlier for problem solving, write a plan for the following problem: You are in your second year of studies in computer animation at Jefferson ...

  27. An extended goal programming approach with piecewise penalty functions

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

  28. Humanities & Sciences Innovation Scholar Program

    The minor is 18-20 credits (5 courses). The courses include: Ithaca Seminar(required of all first-year students in their fall semester); One (1) program elective: A course created specifically for the Innovation Scholar minor Two (2) parallel electives: Courses offered by various H&S departments that fulfill the aims of the minor Capstone: Participate in a Community Engagement Capstone class ...