Introduction to Problem Solving Skills

What is problem solving and why is it important.

Defining problem solving skills

The ability to solve problems is a basic life skill and is essential to our day-to-day lives, at home, at school, and at work. We solve problems every day without really thinking about how we solve them. For example: it’s raining and you need to go to the store. What do you do? There are lots of possible solutions. Take your umbrella and walk. If you don't want to get wet, you can drive, or take the bus. You might decide to call a friend for a ride, or you might decide to go to the store another day. There is no right way to solve this problem and different people will solve it differently.

Problem solving is the process of identifying a problem, developing possible solution paths, and taking the appropriate course of action.

Why is problem solving important? Good problem solving skills empower you not only in your personal life but are critical in your professional life. In the current fast-changing global economy, employers often identify everyday problem solving as crucial to the success of their organizations. For employees, problem solving can be used to develop practical and creative solutions, and to show independence and initiative to employers.

Throughout this case study you will be asked to jot down your thoughts in idea logs. These idea logs are used for reflection on concepts and for answering short questions. When you click on the "Next" button, your responses will be saved for that page. If you happen to close the webpage, you will lose your work on the page you were on, but previous pages will be saved. At the end of the case study, click on the "Finish and Export to PDF" button to acknowledge completion of the case study and receive a PDF document of your idea logs.

What Does Problem Solving Look Like?

IDEAL heuristic strategy for problem solving

The ability to solve problems is a skill, and just like any other skill, the more you practice, the better you get. So how exactly do you practice problem solving? Learning about different problem solving strategies and when to use them will give you a good start. Problem solving is a process. Most strategies provide steps that help you identify the problem and choose the best solution. There are two basic types of strategies: algorithmic and heuristic.

Algorithmic strategies are traditional step-by-step guides to solving problems. They are great for solving math problems (in algebra: multiply and divide, then add or subtract) or for helping us remember the correct order of things (a mnemonic such as “Spring Forward, Fall Back” to remember which way the clock changes for daylight saving time, or “Righty Tighty, Lefty Loosey” to remember what direction to turn bolts and screws). Algorithms are best when there is a single path to the correct solution.

But what do you do when there is no single solution for your problem? Heuristic methods are general guides used to identify possible solutions. A popular one that is easy to remember is IDEAL [ Bransford & Stein, 1993 ] :

IDEAL is just one problem solving strategy. Building a toolbox of problem solving strategies will improve your problem solving skills. With practice, you will be able to recognize and use multiple strategies to solve complex problems.

Watch the video

What is the best way to get a peanut out of a tube that cannot be moved? Watch a chimpanzee solve this problem in the video below [ Geert Stienissen, 2010 ].

[PDF transcript]

Describe the series of steps you think the chimpanzee used to solve this problem.

Think of an everyday problem you've encountered recently and describe your steps for solving it.

Developing Problem Solving Processes

Problem solving is a process that uses steps to solve problems. But what does that really mean? Let's break it down and start building our toolbox of problem solving strategies.

What is the first step of solving any problem? The first step is to recognize that there is a problem and identify the right cause of the problem. This may sound obvious, but similar problems can arise from different events, and the real issue may not always be apparent. To really solve the problem, it's important to find out what started it all. This is called identifying the root cause .

Example: You and your classmates have been working long hours on a project in the school's workshop. The next afternoon, you try to use your student ID card to access the workshop, but discover that your magnetic strip has been demagnetized. Since the card was a couple of years old, you chalk it up to wear and tear and get a new ID card. Later that same week you learn that several of your classmates had the same problem! After a little investigation, you discover that a strong magnet was stored underneath a workbench in the workshop. The magnet was the root cause of the demagnetized student ID cards.

The best way to identify the root cause of the problem is to ask questions and gather information. If you have a vague problem, investigating facts is more productive than guessing a solution. Ask yourself questions about the problem. What do you know about the problem? What do you not know? When was the last time it worked correctly? What has changed since then? Can you diagram the process into separate steps? Where in the process is the problem occurring? Be curious, ask questions, gather facts, and make logical deductions rather than assumptions.

Watch Adam Savage from Mythbusters, describe his problem solving process [ ForaTv, 2010 ]. As you watch this section of the video, try to identify the questions he asks and the different strategies he uses.

Adam Savage shared many of his problem solving processes. List the ones you think are the five most important. Your list may be different from other people in your class—that's ok!

“The ability to ask the right question is more than half the battle of finding the answer.” — Thomas J. Watson , founder of IBM

Voices From the Field: Solving Problems

In manufacturing facilities and machine shops, everyone on the floor is expected to know how to identify problems and find solutions. Today's employers look for the following skills in new employees: to analyze a problem logically, formulate a solution, and effectively communicate with others.

In this video, industry professionals share their own problem solving processes, the problem solving expectations of their employees, and an example of how a problem was solved.

Meet the Partners:

Making Decisions

Now that you have a couple problem solving strategies in your toolbox, let's practice. In this exercise, you are given a scenario and you will be asked to decide what steps you would take to identify and solve the problem.

Scenario: You are a new employee and have just finished your training. As your first project, you have been assigned the milling of several additional components for a regular customer. Together, you and your trainer, Bill, set up for the first run. Checking your paperwork, you gather the tools and materials on the list. As you are mounting the materials on the table, you notice that you didn't grab everything and hurriedly grab a few more items from one of the bins. Once the material is secured on the CNC table, you load tools into the tool carousel in the order listed on the tool list and set the fixture offsets.

Bill tells you that since this is a rerun of a job several weeks ago, the CAD/CAM model has already been converted to CNC G-code. Bill helps you download the code to the CNC machine. He gives you the go-ahead and leaves to check on another employee. You decide to start your first run.

What problems did you observe in the video?

As you are cleaning up, you think about what happened and wonder why it happened. You try to create a mental picture of what happened. You are not exactly sure what the end mill hit, but it looked like it might have hit the dowel pin. You wonder if you grabbed the correct dowel pins from the bins earlier.

You can think of two possible next steps. You can recheck the dowel pin length to make sure it is the correct length, or do a dry run using the CNC single step or single block function with the spindle empty to determine what actually happened.

screenshot of cnc problem

You notice that your trainer, Bill, is still on the floor and decide to ask him for help. You describe the problem to him. Bill asks if you know what the end mill ran into. You explain that you are not sure but you think it was the dowel pin. Bill reminds you that it is important to understand what happened so you can fix the correct problem. He suggests that you start all over again and begin with a dry run using the single step/single block function, with the spindle empty, to determine what it hit. Or, since it happened at the end, he mentions that you can also check the G-code to make sure the Z-axis is raised before returning to the home position.

ask help from a more experienced person

You finish cleaning up and check the CNC for any damage. Luckily, everything looks good. You check your paperwork and gather the components and materials again. You look at the dowel pins you used earlier, and discover that they are not the right length. As you go to grab the correct dowel pins, you have to search though several bins. For the first time, you are aware of the mess - it looks like the dowel pins and other items have not been put into the correctly labeled bins. You spend 30 minutes straightening up the bins and looking for the correct dowel pins.

Finally finding them, you finish setting up. You load tools into the tool carousel in the order listed on the tool list and set the fixture offsets. Just to make sure, you use the CNC single step/single block function, to do a dry run of the part. Everything looks good! You are ready to create your first part. The first component is done, and, as you admire your success, you notice that the part feels hotter than it should.

You wonder why? You go over the steps of the process to mentally figure out what could be causing the residual heat. You wonder if there is a problem with the CNC's coolant system or if the problem is in the G-code.

After thinking about the problem, you decide that maybe there's something wrong with the setup. First, you clean up the damaged materials and remove the broken tool. You check the CNC machine carefully for any damage. Luckily, everything looks good. It is time to start over again from the beginning.

You again check your paperwork and gather the tools and materials on the setup sheet. After securing the new materials, you use the CNC single step/single block function with the spindle empty, to do a dry run of the part. You watch carefully to see if you can figure out what happened. It looks to you like the spindle barely misses hitting the dowel pin. You determine that the end mill was broken when it hit the dowel pin while returning to the start position.

idea at cnc machine

After conducting a dry run using the single step/single block function, you determine that the end mill was damaged when it hit the dowel pin on its return to the home position. You discuss your options with Bill. Together, you decide the best thing to do would be to edit the G-code and raise the Z-axis before returning to home. You open the CNC control program and edit the G-code. Just to make sure, you use the CNC single step/single block function, to do another dry run of the part. You are ready to create your first part. It works. You first part is completed. Only four more to go.

software or hardware problem

As you are cleaning up, you notice that the components are hotter than you expect and the end mill looks more worn than it should be. It dawns on you that while you were milling the component, the coolant didn't turn on. You wonder if it is a software problem in the G-code or hardware problem with the CNC machine.

It's the end of the day and you decide to finish the rest of the components in the morning.

You decide that the best thing to do would be to edit the G-code and raise the Z-axis of the spindle before it returns to home. You open the CNC control program and edit the G-code.

While editing the G-code to raise the Z-axis, you notice that the coolant is turned off at the beginning of the code and at the end of the code. The coolant command error caught your attention because your coworker, Mark, mentioned having a similar issue during lunch. You change the coolant command to turn the mist on.

As you reflect on the residual heat problem, you think about the machining process and the factors that could have caused the issue. You try to think of anything and everything that could be causing the issue. Are you using the correct tool for the specified material? Are you using the specified material? Is it running at the correct speed? Is there enough coolant? Are there chips getting in the way?

Wait, was the coolant turned on? As you replay what happened in your mind, you wonder why the coolant wasn't turned on. You decide to look at the G-code to find out what is going on.

From the milling machine computer, you open the CNC G-code. You notice that there are no coolant commands. You add them in and on the next run, the coolant mist turns on and the residual heat issues is gone. Now, its on to creating the rest of the parts.

Have you ever used brainstorming to solve a problem? Chances are, you've probably have, even if you didn't realize it.

You notice that your trainer, Bill, is on the floor and decide to ask him for help. You describe the problem with the end mill breaking, and how you discovered that items are not being returned to the correctly labeled bins. You think this caused you to grab the incorrect length dowel pins on your first run. You have sorted the bins and hope that the mess problem is fixed. You then go on to tell Bill about the residual heat issue with the completed part.

Together, you go to the milling machine. Bill shows you how to check the oil and coolant levels. Everything looks good at the machine level. Next, on the CNC computer, you open the CNC G-code. While looking at the code, Bill points out that there are no coolant commands. Bill adds them in and when you rerun the program, it works.

Bill is glad you mentioned the problem to him. You are the third worker to mention G-code issues over the last week. You noticed the coolant problems in your G-code, John noticed a Z-axis issue in his G-code, and Sam had issues with both the Z-axis and the coolant. Chances are, there is a bigger problem and Bill will need to investigate the root cause .

Talking with Bill, you discuss the best way to fix the problem. Bill suggests editing the G-code to raise the Z-axis of the spindle before it returns to its home position. You open the CNC control program and edit the G-code. Following the setup sheet, you re-setup the job and use the CNC single step/single block function, to do another dry run of the part. Everything looks good, so you run the job again and create the first part. It works. Since you need four of each component, you move on to creating the rest of them before cleaning up and leaving for the day.

It's a new day and you have new components to create. As you are setting up, you go in search of some short dowel pins. You discover that the bins are a mess and components have not been put away in the correctly labeled bins. You wonder if this was the cause of yesterday's problem. As you reorganize the bins and straighten up the mess, you decide to mention the mess issue to Bill in your afternoon meeting.

You describe the bin mess and using the incorrect length dowels to Bill. He is glad you mentioned the problem to him. You are not the first person to mention similar issues with tools and parts not being put away correctly. Chances are there is a bigger safety issue here that needs to be addressed in the next staff meeting.

In any workplace, following proper safety and cleanup procedures is always important. This is especially crucial in manufacturing where people are constantly working with heavy, costly and sometimes dangerous equipment. When issues and problems arise, it is important that they are addressed in an efficient and timely manner. Effective communication is an important tool because it can prevent problems from recurring, avoid injury to personnel, reduce rework and scrap, and ultimately, reduce cost, and save money.

You now know that the end mill was damaged when it hit the dowel pin. It seems to you that the easiest thing to do would be to edit the G-code and raise the Z-axis position of the spindle before it returns to the home position. You open the CNC control program and edit the G-code, raising the Z-axis. Starting over, you follow the setup sheet and re-setup the job. This time, you use the CNC single step/single block function, to do another dry run of the part. Everything looks good, so you run the job again and create the first part.

At the end of the day, you are reviewing your progress with your trainer, Bill. After you describe the day's events, he reminds you to always think about safety and the importance of following work procedures. He decides to bring the issue up in the next morning meeting as a reminder to everyone.

In any workplace, following proper procedures (especially those that involve safety) is always important. This is especially crucial in manufacturing where people are constantly working with heavy, costly, and sometimes dangerous equipment. When issues and problems arise, it is important that they are addressed in an efficient and timely manner. Effective communication is an important tool because it can prevent problems from recurring, avoid injury to personnel, reduce rework and scrap, and ultimately, reduce cost, and save money. One tool to improve communication is the morning meeting or huddle.

The next morning, you check the G-code to determine what is wrong with the coolant. You notice that the coolant is turned off at the beginning of the code and also at the end of the code. This is strange. You change the G-code to turn the coolant on at the beginning of the run and off at the end. This works and you create the rest of the parts.

Throughout the day, you keep wondering what caused the G-code error. At lunch, you mention the G-code error to your coworker, John. John is not surprised. He said that he encountered a similar problem earlier this week. You decide to talk with your supervisor the next time you see him.

You are in luck. You see your supervisor by the door getting ready to leave. You hurry over to talk with him. You start off by telling him about how you asked Bill for help. Then you tell him there was a problem and the end mill was damaged. You describe the coolant problem in the G-code. Oh, and by the way, John has seen a similar problem before.

Your supervisor doesn't seem overly concerned, errors happen. He tells you "Good job, I am glad you were able to fix the issue." You are not sure whether your supervisor understood your explanation of what happened or that it had happened before.

The challenge of communicating in the workplace is learning how to share your ideas and concerns. If you need to tell your supervisor that something is not going well, it is important to remember that timing, preparation, and attitude are extremely important.

It is the end of your shift, but you want to let the next shift know that the coolant didn't turn on. You do not see your trainer or supervisor around. You decide to leave a note for the next shift so they are aware of the possible coolant problem. You write a sticky note and leave it on the monitor of the CNC control system.

How effective do you think this solution was? Did it address the problem?

In this scenario, you discovered several problems with the G-code that need to be addressed. When issues and problems arise, it is important that they are addressed in an efficient and timely manner. Effective communication is an important tool because it can prevent problems from recurring and avoid injury to personnel. The challenge of communicating in the workplace is learning how and when to share your ideas and concerns. If you need to tell your co-workers or supervisor that there is a problem, it is important to remember that timing and the method of communication are extremely important.

You are able to fix the coolant problem in the G-code. While you are glad that the problem is fixed, you are worried about why it happened in the first place. It is important to remember that if a problem keeps reappearing, you may not be fixing the right problem. You may only be addressing the symptoms.

You decide to talk to your trainer. Bill is glad you mentioned the problem to him. You are the third worker to mention G-code issues over the last week. You noticed the coolant problems in your G-code, John noticed a Z-axis issue in his G-code, and Sam had issues with both the Z-axis and the coolant. Chances are, there is a bigger problem and Bill will need to investigate the root cause .

Over lunch, you ask your coworkers about the G-code problem and what may be causing the error. Several people mention having similar problems but do not know the cause.

You have now talked to three coworkers who have all experienced similar coolant G-code problems. You make a list of who had the problem, when they had the problem, and what each person told you.

When you see your supervisor later that afternoon, you are ready to talk with him. You describe the problem you had with your component and the damaged bit. You then go on to tell him about talking with Bill and discovering the G-code issue. You show him your notes on your coworkers' coolant issues, and explain that you think there might be a bigger problem.

You supervisor thanks you for your initiative in identifying this problem. It sounds like there is a bigger problem and he will need to investigate the root cause. He decides to call a team huddle to discuss the issue, gather more information, and talk with the team about the importance of communication.

Root Cause Analysis

flower root cause of a problem

Root cause analysis ( RCA ) is a method of problem solving that identifies the underlying causes of an issue. Root cause analysis helps people answer the question of why the problem occurred in the first place. RCA uses clear cut steps in its associated tools, like the "5 Whys Analysis" and the "Cause and Effect Diagram," to identify the origin of the problem, so that you can:

RCA works under the idea that systems and events are connected. An action in one area triggers an action in another, and another, and so on. By tracing back these actions, you can discover where the problem started and how it developed into the problem you're now facing. Root cause analysis can prevent problems from recurring, reduce injury to personnel, reduce rework and scrap, and ultimately, reduce cost and save money. There are many different RCA techniques available to determine the root cause of a problem. These are just a few:

5 whys diagram root cause

How Huddles Work

group huddle discussion meeting

Communication is a vital part of any setting where people work together. Effective communication helps employees and managers form efficient teams. It builds trusts between employees and management, and reduces unnecessary competition because each employee knows how their part fits in the larger goal.

One tool that management can use to promote communication in the workplace is the huddle . Just like football players on the field, a huddle is a short meeting where everyone is standing in a circle. A daily team huddle ensures that team members are aware of changes to the schedule, reiterated problems and safety issues, and how their work impacts one another. When done right, huddles create collaboration, communication, and accountability to results. Impromptu huddles can be used to gather information on a specific issue and get each team member's input.

The most important thing to remember about huddles is that they are short, lasting no more than 10 minutes, and their purpose is to communicate and identify. In essence, a huddle’s purpose is to identify priorities, communicate essential information, and discover roadblocks to productivity.

Who uses huddles? Many industries and companies use daily huddles. At first thought, most people probably think of hospitals and their daily patient update meetings, but lots of managers use daily meetings to engage their employees. Here are a few examples:

Brainstorming

brainstorming small lightbulbs combined become a big idea

One tool that can be useful in problem solving is brainstorming . Brainstorming is a creativity technique designed to generate a large number of ideas for the solution to a problem. The method was first popularized in 1953 by Alex Faickney Osborn in the book Applied Imagination . The goal is to come up with as many ideas as you can in a fixed amount of time. Although brainstorming is best done in a group, it can be done individually. Like most problem solving techniques, brainstorming is a process.

When used during problem solving, brainstorming can offer companies new ways of encouraging staff to think creatively and improve production. Brainstorming relies on team members' diverse experiences, adding to the richness of ideas explored. This means that you often find better solutions to the problems. Team members often welcome the opportunity to contribute ideas and can provide buy-in for the solution chosen—after all, they are more likely to be committed to an approach if they were involved in its development. What's more, because brainstorming is fun, it helps team members bond.

Importance of Good Communication and Problem Description

talking too much when describing a problem

Communication is one of the most frequent activities we engage in on a day-to-day basis. At some point, we have all felt that we did not effectively communicate an idea as we would have liked. The key to effective communication is preparation. Rather than attempting to haphazardly improvise something, take a few minutes and think about what you want say and how you will say it. If necessary, write yourself a note with the key points or ideas in the order you want to discuss them. The notes can act as a reminder or guide when you talk to your supervisor.

Tips for clear communication of an issue:

Not all communication is spoken. Body language is nonverbal communication that includes your posture, your hands and whether you make eye contact. These gestures can be subtle or overt, but most importantly they communicate meaning beyond what is said. When having a conversation, pay attention to how you stand. A stiff position with arms crossed over your chest may imply that you are being defensive even if your words state otherwise. Shoving your hands in your pockets when speaking could imply that you have something to hide. Be wary of using too many hand gestures because this could distract listeners from your message.

The challenge of communicating in the workplace is learning how and when to share your ideas or concerns. If you need to tell your supervisor or co-worker about something that is not going well, keep in mind that good timing and good attitude will go a long way toward helping your case.

Like all skills, effective communication needs to be practiced. Toastmasters International is perhaps the best known public speaking organization in the world. Toastmasters is open to anyone who wish to improve their speaking skills and is willing to put in the time and effort to do so. To learn more, visit Toastmasters International .

Methods of Communication

different ways to communicate

Communication of problems and issues in any workplace is important, particularly when safety is involved. It is therefore crucial in manufacturing where people are constantly working with heavy, costly, and sometimes dangerous equipment. As issues and problems arise, they need to be addressed in an efficient and timely manner. Effective communication is an important skill because it can prevent problems from recurring, avoid injury to personnel, reduce rework and scrap, and ultimately, reduce cost and save money.

There are many different ways to communicate: in person, by phone, via email, or written. There is no single method that fits all communication needs, each one has its time and place.

In person: In the workplace, face-to-face meetings should be utilized whenever possible. Being able to see the person you need to speak to face-to-face gives you instant feedback and helps you gauge their response through their body language. Be careful of getting sidetracked in conversation when you need to communicate a problem.

Email: Email has become the communication standard for most businesses. It can be accessed from almost anywhere and is great for things that don’t require an immediate response. Email is a great way to communicate non-urgent items to large amounts of people or just your team members. One thing to remember is that most people's inboxes are flooded with emails every day and unless they are hyper vigilant about checking everything, important items could be missed. For issues that are urgent, especially those around safety, email is not always be the best solution.

Phone: Phone calls are more personal and direct than email. They allow us to communicate in real time with another person, no matter where they are. Not only can talking prevent miscommunication, it promotes a two-way dialogue. You don’t have to worry about your words being altered or the message arriving on time. However, mobile phone use and the workplace don't always mix. In particular, using mobile phones in a manufacturing setting can lead to a variety of problems, cause distractions, and lead to serious injury.

Written: Written communication is appropriate when detailed instructions are required, when something needs to be documented, or when the person is too far away to easily speak with over the phone or in person.

There is no "right" way to communicate, but you should be aware of how and when to use the appropriate form of communication for your situation. When deciding the best way to communicate with a co-worker or manager, put yourself in their shoes, and think about how you would want to learn about the issue. Also, consider what information you would need to know to better understand the issue. Use your good judgment of the situation and be considerate of your listener's viewpoint.

Did you notice any other potential problems in the previous exercise?

Summary of Strategies

In this exercise, you were given a scenario in which there was a problem with a component you were creating on a CNC machine. You were then asked how you wanted to proceed. Depending on your path through this exercise, you might have found an easy solution and fixed it yourself, asked for help and worked with your trainer, or discovered an ongoing G-code problem that was bigger than you initially thought.

When issues and problems arise, it is important that they are addressed in an efficient and timely manner. Communication is an important tool because it can prevent problems from recurring, avoid injury to personnel, reduce rework and scrap, and ultimately, reduce cost, and save money. Although, each path in this exercise ended with a description of a problem solving tool for your toolbox, the first step is always to identify the problem and define the context in which it happened.

There are several strategies that can be used to identify the root cause of a problem. Root cause analysis (RCA) is a method of problem solving that helps people answer the question of why the problem occurred. RCA uses a specific set of steps, with associated tools like the “5 Why Analysis" or the “Cause and Effect Diagram,” to identify the origin of the problem, so that you can:

Once the underlying cause is identified and the scope of the issue defined, the next step is to explore possible strategies to fix the problem.

If you are not sure how to fix the problem, it is okay to ask for help. Problem solving is a process and a skill that is learned with practice. It is important to remember that everyone makes mistakes and that no one knows everything. Life is about learning. It is okay to ask for help when you don’t have the answer. When you collaborate to solve problems you improve workplace communication and accelerates finding solutions as similar problems arise.

One tool that can be useful for generating possible solutions is brainstorming . Brainstorming is a technique designed to generate a large number of ideas for the solution to a problem. The method was first popularized in 1953 by Alex Faickney Osborn in the book Applied Imagination. The goal is to come up with as many ideas as you can, in a fixed amount of time. Although brainstorming is best done in a group, it can be done individually.

Depending on your path through the exercise, you may have discovered that a couple of your coworkers had experienced similar problems. This should have been an indicator that there was a larger problem that needed to be addressed.

In any workplace, communication of problems and issues (especially those that involve safety) is always important. This is especially crucial in manufacturing where people are constantly working with heavy, costly, and sometimes dangerous equipment. When issues and problems arise, it is important that they be addressed in an efficient and timely manner. Effective communication is an important tool because it can prevent problems from recurring, avoid injury to personnel, reduce rework and scrap, and ultimately, reduce cost and save money.

One strategy for improving communication is the huddle . Just like football players on the field, a huddle is a short meeting with everyone standing in a circle. A daily team huddle is a great way to ensure that team members are aware of changes to the schedule, any problems or safety issues are identified and that team members are aware of how their work impacts one another. When done right, huddles create collaboration, communication, and accountability to results. Impromptu huddles can be used to gather information on a specific issue and get each team member's input.

To learn more about different problem solving strategies, choose an option below. These strategies accompany the outcomes of different decision paths in the problem solving exercise.

Communication is one of the most frequent activities we engage in on a day-to-day basis. At some point, we have all felt that we did not effectively communicate an idea as we would have liked. The key to effective communication is preparation. Rather than attempting to haphazardly improvise something, take a few minutes and think about what you want say and how you will say it. If necessary, write yourself a note with the key points or ideas in the order you want to discuss them. The notes can act as a reminder or guide during your meeting.

In person: In the workplace, face-to-face meetings should be utilized whenever possible. Being able to see the person you need to speak to face-to-face gives you instant feedback and helps you gauge their response in their body language. Be careful of getting sidetracked in conversation when you need to communicate a problem.

There is no "right" way to communicate, but you should be aware of how and when to use the appropriate form of communication for the situation. When deciding the best way to communicate with a co-worker or manager, put yourself in their shoes, and think about how you would want to learn about the issue. Also, consider what information you would need to know to better understand the issue. Use your good judgment of the situation and be considerate of your listener's viewpoint.

"Never try to solve all the problems at once — make them line up for you one-by-one.” — Richard Sloma

Problem Solving: An Important Job Skill

Problem solving improves efficiency and communication on the shop floor. It increases a company's efficiency and profitability, so it's one of the top skills employers look for when hiring new employees. Recent industry surveys show that employers consider soft skills, such as problem solving, as critical to their business’s success.

The 2011 survey, "Boiling Point? The skills gap in U.S. manufacturing ," polled over a thousand manufacturing executives who reported that the number one skill deficiency among their current employees is problem solving, which makes it difficult for their companies to adapt to the changing needs of the industry.

In this video, industry professionals discuss their expectations and present tips for new employees joining the manufacturing workforce.

Quick Summary

CS2104: Introduction to Problem Solving in Computer Science

This course introduces the student to a broad range of heuristics for solving problems in a range of settings. Emphasis on problem-solving techniques that aid programmers and computer scientists. Heuristics for solving problems ''in the small'' (classical math and word problems), generating potential solutions to ''real-life'' problems encountered in the profession, and problem solving in teams.

Having successfully completed this course, the student will be able to:

 Prerequisites:  MATH 1205 or MATH 1225 or MATH 1526.

Taught By:  Alexey Onufriev Dwight Barnette Layne Watson Margaret Ellis Cliff Shaffer William McQuain

Browse Course Material

Lecture 3 handout: problem solving

This resource contains information about lecture 3.

MIT Open Learning

ASQ logo

Problem Solving Resources

Case studies, problem solving related topics.

What is Problem Solving?.

Quality Glossary Definition: Problem solving

Problem solving is the act of defining a problem; determining the cause of the problem; identifying, prioritizing, and selecting alternatives for a solution; and implementing a solution.

Problem Solving visual

Problem Solving Chart

The Problem-Solving Process

In order to effectively manage and run a successful organization, leadership must guide their employees and develop problem-solving techniques. Finding a suitable solution for issues can be accomplished by following the basic four-step problem-solving process and methodology outlined below.

1. Define the problem

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

The sections below help explain key problem-solving steps. These steps support the involvement of interested parties, the use of factual information, comparison of expectations to reality, and a focus on root causes of a problem. You should begin by:

2. Generate alternative solutions

Postpone the selection of one solution until several problem-solving alternatives have been proposed. Considering multiple alternatives can significantly enhance the value of your ideal solution. Once you have decided on the "what should be" model, this target standard becomes the basis for developing a road map for investigating alternatives. Brainstorming and team problem-solving techniques are both useful tools in this stage of problem solving.

Many alternative solutions to the problem should be generated before final evaluation. A common mistake in problem solving is that alternatives are evaluated as they are proposed, so the first acceptable solution is chosen, even if it’s not the best fit. If we focus on trying to get the results we want, we miss the potential for learning something new that will allow for real improvement in the problem-solving process.

3. Evaluate and select an alternative

Skilled problem solvers use a series of considerations when selecting the best alternative. They consider the extent to which:

4. Implement and follow up on the solution

Leaders may be called upon to direct others to implement the solution, "sell" the solution, or facilitate the implementation with the help of others. Involving others in the implementation is an effective way to gain buy-in and support and minimize resistance to subsequent changes.

Regardless of how the solution is rolled out, feedback channels should be built into the implementation. This allows for continuous monitoring and testing of actual events against expectations. Problem solving, and the techniques used to gain clarity, are most effective if the solution remains in place and is updated to respond to future changes.

You can also search articles , case studies , and publications  for problem solving resources.

Innovative Business Management Using TRIZ

Introduction To 8D Problem Solving: Including Practical Applications and Examples

The Quality Toolbox

Root Cause Analysis: The Core of Problem Solving and Corrective Action

One Good Idea: Some Sage Advice ( Quality Progress ) The person with the problem just wants it to go away quickly, and the problem-solvers also want to resolve it in as little time as possible because they have other responsibilities. Whatever the urgency, effective problem-solvers have the self-discipline to develop a complete description of the problem.

Diagnostic Quality Problem Solving: A Conceptual Framework And Six Strategies  ( Quality Management Journal ) This paper contributes a conceptual framework for the generic process of diagnosis in quality problem solving by identifying its activities and how they are related.

Weathering The Storm ( Quality Progress ) Even in the most contentious circumstances, this approach describes how to sustain customer-supplier relationships during high-stakes problem solving situations to actually enhance customer-supplier relationships.

The Right Questions ( Quality Progress ) All problem solving begins with a problem description. Make the most of problem solving by asking effective questions.

Solving the Problem ( Quality Progress ) Brush up on your problem-solving skills and address the primary issues with these seven methods.

Refreshing Louisville Metro’s Problem-Solving System  ( Journal for Quality and Participation ) Organization-wide transformation can be tricky, especially when it comes to sustaining any progress made over time. In Louisville Metro, a government organization based in Kentucky, many strategies were used to enact and sustain meaningful transformation.

Certification

Quality Improvement Associate Certification--CQIA

Certified Quality Improvement Associate Question Bank

Lean Problem-Solving Tools

Problem Solving Using A3

NEW   Root Cause Analysis E-Learning

Quality 101

Making the Connection In this exclusive QP webcast, Jack ReVelle, ASQ Fellow and author, shares how quality tools can be combined to create a powerful problem-solving force.

Adapted from The Executive Guide to Improvement and Change , ASQ Quality Press.

Featured Advertisers

introduction to computer problem solving

TutorialAICSIP

A blog for Comprehensive notes and Important questions

Introduction to problem solving Computer Science Class 11 Notes

introduction to computer problem solving

By Sanjay Parmar

introduction to problem solving ComputerScience11

This article – introduction to problem solving Computer Science Class 11 offers comprehensive notes for Chapter 4 of the CBSE Computer Science Class 11 NCERT textbook.

Topics Covered

Introduction to problem solving Computer Science class 11

Computers, mobiles, the internet, etc. becomes our essentials nowadays for our routine life. We are using the to make our tasks easy and faster.

For example, earlier we were going to banks and standing in long queues for any type of transaction like money deposits or withdrawals. Today we can do these tasks from anywhere without visiting banks through internet banking and mobiles.

Basically, this was a complex problem and solved by a computer. The system was made online with the help of computers and the internet and made our task very easy.

This process is termed “Computerisations”. The problem is solved by using software to make a task easy and comfortable. Problem solving is a key term related to computer science.

The question comes to your mind how to solve a complex problem using computers? Let’s begin the article introduction to problem-solving Computer Science 11.

Introduction to problem solving Computer Science Class 11 – Steps for problem solving

“Computer Science is a science of abstraction -creating the right model for a problem and devising the appropriate mechanizable techniques to solve it.”

Solving any complex problem starts with understanding the problem and identifying the problem.

Suppose you are going to school by your bicycle. While riding on it you hear some noise coming from it. So first you will try to find that from where the noise is coming. So if you couldn’t solve the problem, you need to get it repaired.

The bicycle mechanic identifies the problem like a source of noise, causes of noise etc. then understand them and repair it for you.

So there are multiple steps involved in problem-solving. If the problem is simple and easy, we will find the solution easily. But the complex problem needs a few methods or steps to solve.

So complex problem requires some tools, a system or software in order to provide the solution. So it is a step-by-step process. These steps are as follows:

Analysing the problem

Developing an algorithm, testing and debugging.

The first step in the introduction to problem solving Computer Science Class 11 is analyzing the problem.

When you need to find a solution for a problem, you need to understand the problem in detail. You should identify the reasons and causes of the problem as well as what to be solved.

So this step involves a detailed study of the problem and then you need to follow some principles and core functionality of the solution.

In this step input and output, elements should be produced.

The second step for introduction to problem solving Computer Science class 11 is developing an algorithm.

An algorithm is a step-by-step process of a solution to a complex problem. It is written in natural language. An algorithm consists of various steps and begins from start to end. In between input, process and output will be specified. More details we will cover in the next section.

In short, the algorithm provides all the steps required to solve a problem.

For example:

Finding the simple interest, you need to follow the given steps:

In the above example, I have started and completed a task in a finite number of steps. It is completed in 4 finite steps.

Why algorithm is needed?

The algorithm helps developers in many ways. So it is needed for them for the following reasons:

Characteristics of a good algorithm

The characteristics of a good algorithm are as follows:

While writing the algorithm the following things should be clearly identified:

After writing the algorithm, it is required to represent it. Once the steps are finalised, it is required to be represented logically. This logical representation of the program clearly does the following:

The algorithm is steps written in the form of text. So it is difficult to read sometimes. So if it is represented in pictorial form it would be better for analysis of the program.

The flowchart is used to represent the algorithm in visual form.

Flowchart – Visual representation of an algorithm

A flowchart is made of some symbols or shapes like rectangles, squares, and diamonds connected by arrows. Every shape represents each step of an algorithm. The arrow basically represents the order or link of the steps.

The symbols used in the flow chart are as follows:

flow chart symbols introduction to problem solving computer science class 11

Coding is an essential part of the introduction to problem solving ComputerScience11.

When an algorithm is prepared, the next step is writing code. This code will be written in a specific programming language. The code follows certain rules and regulations of the programing language and provides solutions.

When coding is done you need to maintain it with proper documentation as well. The best practices for coding procedures must be followed. Because this code can be reviewed a number of times for further development and upgradation.

Let’s understand this step with a simple example!!

When your mother prepares a cake at your home, she will give peace of cake to someone before serving it to check the taste of the cake, right!!! If anything is needed like sugar or softness or hardness should be improved she will decide and do the improvement.

Similarly after writing code testing and debugging are required to check the software whether is providing the solution in a good manner not.

Have look at this also: Computer Science Class XI

Share this:

Related post, computer science class 11 sample paper 2023 comprehensive guide, split up syllabus computer science class 11 comprehensive guide, comprehensive notes types of software class 11, leave a reply cancel reply.

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

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

We've updated our privacy policy. Click here to review the details. Tap here to review the details.

Activate your 30 day free trial to unlock unlimited reading.

Unit 1. Problem Solving with Computer

Ashim Lamichhane

You are reading a preview.

Activate your 30 day free trial to continue reading.

Problem Solving Techniques and Introduction to C

Check these out next

introduction to computer problem solving

Download to read offline

Problem analysis, Algorithms and Flowchart, Coding, Compilation and Execution, History of C, Structure of C program, Debugging, Testing and Documentation https://github.com/ashim888/csit-c

Recommended

introduction to computer problem solving

More Related Content

Slideshows for you (20).

introduction to computer problem solving

Similar to Unit 1. Problem Solving with Computer (20)

introduction to computer problem solving

More from Ashim Lamichhane (18)

introduction to computer problem solving

Recently uploaded (20)

introduction to computer problem solving

Share Clipboard

Public clipboards featuring this slide, select another clipboard.

Looks like you’ve clipped this slide to already.

You just clipped your first slide!

Create a clipboard

Get slideshare without ads, special offer to slideshare readers, just for you: free 60-day trial to the world’s largest digital library..

The SlideShare family just got bigger. Enjoy access to millions of ebooks, audiobooks, magazines, and more from Scribd.

introduction to computer problem solving

You have now unlocked unlimited access to 20M+ documents!

Unlimited Reading

Learn faster and smarter from top experts

Unlimited Downloading

Download to take your learnings offline and on the go

Instant access to millions of ebooks, audiobooks, magazines, podcasts and more.

Read and listen offline with any device.

Free access to premium services like Tuneln, Mubi and more.

Help us keep SlideShare free

It appears that you have an ad-blocker running. By whitelisting SlideShare on your ad-blocker, you are supporting our community of content creators.

We've updated our privacy policy.

We’ve updated our privacy policy so that we are compliant with changing global privacy regulations and to provide you with insight into the limited ways in which we use your data.

You can read the details below. By accepting, you agree to the updated privacy policy.

An Introduction to Problem-Solving using Search Algorithms for Beginners

This article was published as a part of the  Data Science Blogathon

In computer science, problem-solving refers to artificial intelligence techniques, including various techniques such as forming efficient algorithms, heuristics, and performing root cause analysis to find desirable solutions.

The basic crux of artificial intelligence is to solve problems just like humans.

Examples of Problems in Artificial Intelligence

In today’s fast-paced digitized world, artificial intelligence techniques are used widely to automate systems that can use the resource and time efficiently. Some of the well-known problems experienced in everyday life are games and puzzles. Using AI techniques, we can solve these problems efficiently. In this sense, some of the most common problems resolved by AI are

Table of Contents

Problem solving techniques.

Types of search algorithms

Uninformed search algorithms, comparison of various uninformed search algorithms, informed search algorithms, comparison of uninformed and informed search algorithms.

In artificial intelligence, problems can be solved by using searching algorithms, evolutionary computations, knowledge representations, etc.

In this article, I am going to discuss the various searching techniques that are used to solve a problem.

In general, searching is referred to as finding information one needs.

The process of problem-solving using searching consists of the following steps.

Let’s discuss some of the essential properties of search algorithms.

Properties of search algorithms

Completeness.

A search algorithm is said to be complete when it gives a solution or returns any solution for a given random input.

If a solution found is best (lowest path cost) among all the solutions identified, then that solution is said to be an optimal one.

Time complexity

The time taken by an algorithm to complete its task is called time complexity. If the algorithm completes a task in a lesser amount of time, then it is an efficient one.

Space complexity

It is the maximum storage or memory taken by the algorithm at any time while searching.

These properties are also used to compare the efficiency of the different types of searching algorithms.

Now let’s see the types of the search algorithm.

Based on the search problems, we can classify the search algorithm as

The uninformed search algorithm does not have any domain knowledge such as closeness, location of the goal state, etc. it behaves in a brute-force way. It only knows the information about how to traverse the given tree and how to find the goal state. This algorithm is also known as the Blind search algorithm or Brute -Force algorithm.

The uninformed search strategies are of six types.

Let’s discuss these six strategies one by one.

1. Breadth-first search

It is of the most common search strategies. It generally starts from the root node and examines the neighbor nodes and then moves to the next level. It uses First-in First-out (FIFO) strategy as it gives the shortest path to achieving the solution.

BFS is used where the given problem is very small and space complexity is not considered.

Now, consider the following tree.

Breadth-First search | Problem-Solving using AI

Source: Author

Here, let’s take node A as the start state and node F as the goal state.

The BFS algorithm starts with the start state and then goes to the next level and visits the node until it reaches the goal state.

In this example, it starts from A and then travel to the next level and visits B and C and then travel to the next level and visits D, E, F and G. Here, the goal state is defined as F. So, the traversal will stop at F.

Traversal in BFS

The path of traversal is:

A —-> B —-> C —-> D —-> E —-> F

Let’s implement the same in python programming.

Python Code:

Advantages of BFS

Disadvantages of BFS

2. Depth-first search

The depth-first search uses Last-in, First-out (LIFO) strategy and hence it can be implemented by using stack. DFS uses backtracking. That is, it starts from the initial state and explores each path to its greatest depth before it moves to the next path.

DFS will follow

Root node —-> Left node —-> Right node

Now, consider the same example tree mentioned above.

Here, it starts from the start state A and then travels to B and then it goes to D. After reaching D, it backtracks to B. B is already visited, hence it goes to the next depth E and then backtracks to B. as it is already visited, it goes back to A. A is already visited. So, it goes to C and then to F. F is our goal state and it stops there.

DFS Example | Problem-Solving using AI

A —-> B —-> D —-> E —-> C —-> F

The output path is as follows.

Output Snippet

Advantages of DFS

Disadvantages of DFS

3. Depth-limited search

Depth-limited works similarly to depth-first search. The difference here is that depth-limited search has a pre-defined limit up to which it can traverse the nodes. Depth-limited search solves one of the drawbacks of DFS as it does not go to an infinite path.

DLS ends its traversal if any of the following conditions exits.

Standard Failure

It denotes that the given problem does not have any solutions.

Cut off Failure Value

It indicates that there is no solution for the problem within the given limit.

Now, consider the same example.

Let’s take A as the start node and C as the goal state and limit as 1.

The traversal first starts with node A and then goes to the next level 1 and the goal state C is there. It stops the traversal.

Depth-limited search example | Problem-Solving using AI

A —-> C

If we give C as the goal node and the limit as 0, the algorithm will not return any path as the goal node is not available within the given limit.

If we give the goal node as F and limit as 2, the path will be A, C, F.

Let’s implement DLS.

When we give C as goal node and 1 as limit the path will be as follows.

introduction to computer problem solving

Advantages of DLS

Disadvantages of DLS

4. Iterative deepening depth-first search

Iterative deepening depth-first search is a combination of depth-first search and breadth-first search. IDDFS find the best depth limit by gradually adding the limit until the defined goal state is reached.

Let me try to explain this with the same example tree.

Consider, A as the start node and E as the goal node. Let the maximum depth be 2.

The algorithm starts with A and goes to the next level and searches for E. If not found, it goes to the next level and finds E.

Iterative deepening depth-first search example

The path of traversal is

A —-> B —-> E

Let’s try to implement this.

The path generated is as follows.

Output snippet

Advantages of IDDFS

Disadvantages of IDDFS

5. Bidirectional search

The bidirectional search algorithm is completely different from all other search strategies. It executes two simultaneous searches called forward-search and backwards-search and reaches the goal state. Here, the graph is divided into two smaller sub-graphs. In one graph, the search is started from the initial start state and in the other graph, the search is started from the goal state. When these two nodes intersect each other, the search will be terminated.

Bidirectional search requires both start and goal start to be well defined and the branching factor to be the same in the two directions.

Consider the below graph.

Bidirectional Search Example | Problem-Solving using AI

Here, the start state is E and the goal state is G. In one sub-graph, the search starts from E and in the other, the search starts from G. E will go to B and then A. G will go to C and then A. Here, both the traversal meets at A and hence the traversal ends.

Bidirectional Search example | Problem-Solving using AI

E —-> B —-> A —-> C —-> G

Let’s implement the same in Python.

The path is generated as follows.

Output snippet

Advantages of bidirectional search

Disadvantages of bidirectional search

6. Uniform cost search

Uniform cost search is considered the best search algorithm for a weighted graph or graph with costs. It searches the graph by giving maximum priority to the lowest cumulative cost. Uniform cost search can be implemented using a priority queue.

Consider the below graph where each node has a pre-defined cost.

Uniform Cost Search example | Problem-Solving using AI

Here, S is the start node and G is the goal node.

From S, G can be reached in the following ways.

S, A, E, F, G -> 19

S, B, E, F, G -> 18

S, B, D, F, G -> 19

S, C, D, F, G -> 23

Here, the path with the least cost is S, B, E, F, G.

Uniform cost search example | Problem-Solving using AI

Let’s implement UCS in Python.

The optimal output path is generated.

Code Snippet

Advantages of UCS

Disadvantages of UCS

Now, let me compare the six different uninformed search strategies based on the time complexity.

This is all about uninformed search algorithms.

Let’s take a look at informed search algorithms.

The informed search algorithm is also called heuristic search or directed search. In contrast to uninformed search algorithms, informed search algorithms require details such as distance to reach the goal, steps to reach the goal, cost of the paths which makes this algorithm more efficient.

Here, the goal state can be achieved by using the heuristic function.

The heuristic function is used to achieve the goal state with the lowest cost possible. This function estimates how close a state is to the goal.

Let’s discuss some of the informed search strategies.

1. Greedy best-first search algorithm

Greedy best-first search uses the properties of both depth-first search and breadth-first search. Greedy best-first search traverses the node by selecting the path which appears best at the moment. The closest path is selected by using the heuristic function.

Consider the below graph with the heuristic values.

Greedy best-first search algorithm example | Problem-Solving using AI

Here, A is the start node and H is the goal node.

Greedy best-first search first starts with A and then examines the next neighbour B and C. Here, the heuristics of B is 12 and C is 4. The best path at the moment is C and hence it goes to C. From C, it explores the neighbours F and G. the heuristics of F is 8 and G is 2. Hence it goes to G. From G, it goes to H whose heuristic is 0 which is also our goal state.

Path of traversal in Greedy best-first search algorithm | Problem-Solving using AI

A —-> C —-> G —-> H

Let’s try this with Python.

The output path with the lowest cost is generated.

Output snippet

The time complexity of Greedy best-first search is O(b m ) in worst cases.

Advantages of Greedy best-first search

Disadvantages of Greedy best-first search

Next, let’s discuss the other informed search algorithm called the A* search algorithm.

2. A* search algorithm

A* search algorithm is a combination of both uniform cost search and greedy best-first search algorithms. It uses the advantages of both with better memory usage. It uses a heuristic function to find the shortest path. A* search algorithm uses the sum of both the cost and heuristic of the node to find the best path.

Consider the following graph with the heuristics values as follows.

A* search example | Problem-Solving using AI

Let A be the start node and H be the goal node.

First, the algorithm will start with A. From A, it can go to B, C, H.

Note the point that A* search uses the sum of path cost and heuristics value to determine the path.

Here, from A to B, the sum of cost and heuristics is 1 + 3 = 4.

From A to C, it is 2 + 4 = 6.

From A to H, it is 7 + 0 = 7.

Here, the lowest cost is 4 and the path A to B is chosen. The other paths will be on hold.

Now, from B, it can go to D or E.

From A to B to D, the cost is 1 + 4 + 2 = 7.

From A to B to E, it is 1 + 6 + 6 = 13.

The lowest cost is 7. Path A to B to D is chosen and compared with other paths which are on hold.

Here, path A to C is of less cost. That is 6.

Hence, A to C is chosen and other paths are kept on hold.

From C, it can now go to F or G.

From A to C to F, the cost is 2 + 3 + 3 = 8.

From A to C to G, the cost is 2 + 2 + 1 = 5.

The lowest cost is 5 which is also lesser than other paths which are on hold. Hence, path A to G is chosen.

From G, it can go to H whose cost is 2 + 2 + 2 + 0 = 6.

Here, 6 is lesser than other paths cost which is on hold.

Also, H is our goal state. The algorithm will terminate here.

Path of traversal in A* | Problem-Solving using AI

Let’s try this in Python.

The output is given as

Output snippet

The time complexity of the A* search is O(b^d) where b is the branching factor.

Advantages of A* search algorithm

Disadvantages of A* search algorithm

Now, let’s compare uninformed and informed search strategies.

Uninformed search is also known as blind search whereas informed search is also called heuristics search. Uniformed search does not require much information. Informed search requires domain-specific details. Compared to uninformed search, informed search strategies are more efficient and the time complexity of uninformed search strategies is more. Informed search handles the problem better than blind search.

Search algorithms are used in games, stored databases, virtual search spaces, quantum computers, and so on. In this article, we have discussed some of the important search strategies and how to use them to solve the problems in AI and this is not the end. There are several algorithms to solve any problem. Nowadays, AI is growing rapidly and applies to many real-life problems. Keep learning! Keep practicing!

introduction to computer problem solving

About the Author

Dhanya thailappan.

Data Science and AI enthusiast

Our Top Authors

Rahul Shah

Download Analytics Vidhya App for the Latest blog/Article

Leave a reply your email address will not be published. required fields are marked *.

Notify me of follow-up comments by email.

Notify me of new posts by email.

Top Resources

introduction to computer problem solving

30 Best Data Science Books to Read in 2023

introduction to computer problem solving

How to Read and Write With CSV Files in Python:..

introduction to computer problem solving

Understand Random Forest Algorithms With Examples (Updated 2023)

introduction to computer problem solving

Feature Selection Techniques in Machine Learning (Updated 2023)

Welcome to India's Largest Data Science Community

Back welcome back :), don't have an account yet register here, back start your journey here, already have an account login here.

A verification link has been sent to your email id

If you have not recieved the link please goto Sign Up page again

back Please enter the OTP that is sent to your registered email id

Back please enter the otp that is sent to your email id, back please enter your registered email id.

This email id is not registered with us. Please enter your registered email id.

back Please enter the OTP that is sent your registered email id

Please create the new password here, privacy overview.

Computational Thinking for Problem Solving

Image of instructor, Susan Davidson

Financial aid available

About this Course

Computational thinking is the process of approaching a problem in a systematic manner and creating and expressing a solution such that it can be carried out by a computer. But you don't need to be a computer scientist to think like a computer scientist! In fact, we encourage students from any field of study to take this course. Many quantitative and data-centric problems can be solved using computational thinking and an understanding of computational thinking will give you a foundation for solving problems that have real-world, social impact.

In this course, you will learn about the pillars of computational thinking, how computer scientists develop and analyze algorithms, and how solutions can be realized on a computer using the Python programming language. By the end of the course, you will be able to develop an algorithm and express it to the computer by writing a simple Python program. This course will introduce you to people from diverse professions who use computational thinking to solve problems. You will engage with a unique community of analytical thinkers and be encouraged to consider how you can make a positive social impact through computational thinking.

Could your company benefit from training employees on in-demand skills?

Skills you will gain

Placeholder

Susan Davidson

Placeholder

University of Pennsylvania

The University of Pennsylvania (commonly referred to as Penn) is a private university, located in Philadelphia, Pennsylvania, United States. A member of the Ivy League, Penn is the fourth-oldest institution of higher education in the United States, and considers itself to be the first university in the United States with both undergraduate and graduate studies.

Start working towards your Master's degree

See how employees at top companies are mastering in-demand skills

Syllabus - What you will learn from this course

Pillars of computational thinking.

Computational thinking is an approach to solving problems using concepts and ideas from computer science, and expressing solutions to those problems so that they can be run on a computer. As computing becomes more and more prevalent in all aspects of modern society -- not just in software development and engineering, but in business, the humanities, and even everyday life -- understanding how to use computational thinking to solve real-world problems is a key skill in the 21st century.

Computational thinking is built on four pillars: decomposition, pattern recognition, data representation and abstraction, and algorithms. This module introduces you to the four pillars of computational thinking and shows how they can be applied as part of the problem solving process.

Expressing and Analyzing Algorithms

When we use computational thinking to solve a problem, what we’re really doing is developing an algorithm: a step-by-step series of instructions. Whether it’s a small task like scheduling meetings, or a large task like mapping the planet, the ability to develop and describe algorithms is crucial to the problem-solving process based on computational thinking. This module will introduce you to some common algorithms, as well as some general approaches to developing algorithms yourself. These approaches will be useful when you're looking not just for any answer to a problem, but the best answer. After completing this module, you will be able to evaluate an algorithm and analyze how its performance is affected by the size of the input so that you can choose the best algorithm for the problem you’re trying to solve.

Fundamental Operations of a Modern Computer

Computational thinking is a problem-solving process in which the last step is expressing the solution so that it can be executed on a computer. However, before we are able to write a program to implement an algorithm, we must understand what the computer is capable of doing -- in particular, how it executes instructions and how it uses data. This module describes the inner workings of a modern computer and its fundamental operations. Then it introduces you to a way of expressing algorithms known as pseudocode, which will help you implement your solution using a programming language.

Applied Computational Thinking Using Python

Writing a program is the last step of the computational thinking process. It’s the act of expressing an algorithm using a syntax that the computer can understand. This module introduces you to the Python programming language and its core features. Even if you have never written a program before -- or never even considered it -- after completing this module, you will be able to write simple Python programs that allow you to express your algorithms to a computer as part of a problem-solving process based on computational thinking.

TOP REVIEWS FROM COMPUTATIONAL THINKING FOR PROBLEM SOLVING

Very comprehensive course. As a chemist who is interested in doing a course in programming I was quite uncertain if I'd be able to pick it up however this course has helped me understand the basics.

The course is great. I learned a lot. The support for the course is SUPER slow. It's hard to get any direct help for any questions or issues that you are having. Beware of assignment 4.7!

Great course - the non-programming parts (making flow charts etc) were actually more difficult than the programming (simple Python programming - my first time programming in python)

The course is very well-designed and it helped me develop understand how to apply computational thinking in solving various types of problems as well as acquire basic skills of programming in Python.

Frequently Asked Questions

When will I have access to the lectures and assignments?

Access to lectures and assignments depends on your type of enrollment. If you take a course in audit mode, you will be able to see most course materials for free. To access graded assignments and to earn a Certificate, you will need to purchase the Certificate experience, during or after your audit. If you don't see the audit option:

The course may not offer an audit option. You can try a Free Trial instead, or apply for Financial Aid.

The course may offer 'Full Course, No Certificate' instead. This option lets you see all course materials, submit required assessments, and get a final grade. This also means that you will not be able to purchase a Certificate experience.

What will I get if I purchase the Certificate?

When you purchase a Certificate you get access to all course materials, including graded assignments. Upon completing the course, your electronic Certificate will be added to your Accomplishments page - from there, you can print your Certificate or add it to your LinkedIn profile. If you only want to read and view the course content, you can audit the course for free.

Is financial aid available?

Yes. In select learning programs, you can apply for financial aid or a scholarship if you can’t afford the enrollment fee. If fin aid or scholarship is available for your learning program selection, you’ll find a link to apply on the description page.

Do I need to know how to program or have studied computer science in order to take this course?

No, definitely not! This course is intended for anyone who has an interest in approaching problems more systematically, developing more efficient solutions, and understanding how computers can be used in the problem solving process. No prior computer science or programming experience is required.

How much math do I need to know to take this course?

Some parts of the course assume familiarity with basic algebra, trigonometry, mathematical functions, exponents, and logarithms. If you don’t remember those concepts or never learned them, don’t worry! As long as you’re comfortable with multiplication, you should still be able to follow along. For everything else, we’ll provide links to references that you can use as a refresher or as supplemental material.

Does this course prepare me for the Master of Computer and Information Technology (MCIT) degree program at the University of Pennsylvania?

This course will help you discover whether you have an aptitude for computational thinking and give you some beginner-level experience with online learning. In this course you will learn several introductory concepts from MCIT instructors produced by the same team that brought the MCIT degree online.

If you have a bachelor's degree and are interested in learning more about computational thinking, we encourage you to apply to MCIT On-campus (http://www.cis.upenn.edu/prospective-students/graduate/mcit.php) or MCIT Online (https://onlinelearning.seas.upenn.edu/mcit/). Please mention that you have completed this course in the application.

Where can I find more information about the Master of Computer and Information Technology (MCIT) degree program at the University of Pennsylvania?

Use these links to learn more about MCIT:

MCIT On-campus: http://www.cis.upenn.edu/prospective-students/graduate/mcit.php

MCIT Online: https://onlinelearning.seas.upenn.edu/mcit/

More questions? Visit the Learner Help Center .

Build employee skills, drive business results

Coursera Footer

Start or advance your career.

Popular Courses and Certifications

Popular collections and articles

Earn a degree or certificate online

Placeholder

introduction to computer problem solving

Accessibility links

Introduction to computational thinking

Before computers can be used to solve a problem, the problem itself and the ways in which it could be resolved must be understood. Computational thinking techniques help with these tasks.

What is computational thinking?

Computers can be used to help us solve problems. However, before a problem can be tackled, the problem itself and the ways in which it could be solved need to be understood.

Computational thinking allows us to do this.

Computational thinking allows us to take a complex problem, understand what the problem is and develop possible solutions. We can then present these solutions in a way that a computer, a human, or both, can understand.

The four cornerstones of computational thinking

There are four key techniques (cornerstones) to computational thinking:

Each cornerstone is as important as the others. They are like legs on a table - if one leg is missing, the table will probably collapse. Correctly applying all four techniques will help when programming a computer.

Computational thinking in practice

A complex problem is one that, at first glance, we don't know how to solve easily.

Computational thinking involves taking that complex problem and breaking it down into a series of small, more manageable problems ( decomposition ). Each of these smaller problems can then be looked at individually, considering how similar problems have been solved previously ( pattern recognition ) and focusing only on the important details, while ignoring irrelevant information ( abstraction ). Next, simple steps or rules to solve each of the smaller problems can be designed ( algorithms ).

Finally, these simple steps or rules are used to program a computer to help solve the complex problem in the best way.

KS3 Subjects KS3 Subjects up down

CBSE Skill Education

Introduction to Problem Solving Class 11 Notes

Teachers and Examiners ( CBSESkillEduction ) collaborated to create the Introduction to Problem Solving Class 11 Notes . All the important Information are taken from the NCERT Textbook Computer Science (083) class 11 .

Introduction to Problem Solving

Problems cannot be resolved by computers alone. We must provide clear, step-by-step directions on how to solve the issue. Therefore, the effectiveness of a computer in solving a problem depends on how exactly and correctly we describe the problem, create an algorithm to solve it, and then use a programming language to implement the algorithm to create a programme. So, the process of identifying a problem, creating an algorithm to solve it, and then putting the method into practise to create a computer programme is known as problem solving.

Steps for Problem Solving

To identify the best solution to a difficult problem in a computer system, a Problem Solving methodical approach is necessary. To put it another way, we must use problem-solving strategies to solve the difficult problem in a computer system. Problem fixing starts with the accurate identification of the issue and concludes with a fully functional programme or software application. Program Solving Steps are – 1. Analysing the problem 2. Developing an Algorithm 3. Coding 4. Testing and Debugging

Analyzing  the problem – It is important to clearly understand a problem before we begin to find the solution for it. If we are not clear as to what is to be solved, we may end up developing a program which may not solve our purpose.

Developing an Algorithm – Before creating the programme code to solve a particular problem, a solution must be thought out. Algorithm is a step by step process where we write the problem and the steps of the programs.

Coding – After the algorithm is completed, it must be translated into a form that the computer can understand in order to produce the desired outcome. A programme can be written in a number of high level programming languages.

Testing and Debugging – The developed programme needs to pass different parameter tests. The programme needs to fulfil the user’s requirements. It must answer in the anticipated amount of time. For all conceivable inputs, it must produce accurate output.

What is the purpose of Algorithm?

A programme is created by a programmer to tell the computer how to carry out specific activities. Then, the computer executes the instructions contained in the programme code. As a result, before creating any code, the programmer first creates a roadmap for the software. Without a roadmap, a programmer might not be able to visualise the instructions that need to be written clearly and might end up creating a software that might not function as intended. This roadmap is known as algorithm.

Why do we need an Algorithm?

The purpose of using an algorithm is to increase the reliability, accuracy and efficiency of obtaining solutions.

Characteristics of a good algorithm

• Precision — the steps are precisely stated or defined. • Uniqueness — results of each step are uniquely defined and only depend on the input and the result of the preceding steps. • Finiteness — the algorithm always stops after a finite number of steps. • Input — the algorithm receives some input. • Output — the algorithm produces some output.

While writing an algorithm, it is required to clearly identify the following:

• The input to be taken from the user • Processing or computation to be performed to get the desired result • The output desired by the user

Representation of Algorithms

There are two common methods of representing an algorithm —flowchart and pseudocode. Either of the methods can be used to represent an algorithm while keeping in mind the following: • it showcases the logic of the problem solution, excluding any implementational details • it clearly reveals the flow of control during execution of the program

Flowchart — Visual Representation of Algorithms

A flowchart is a visual representation of an algorithm. A flowchart is a diagram made up of boxes, diamonds and other shapes, connected by arrows. Each shape represents a step of the solution process and the arrow represents the order or link among the steps.

There are standardized symbols to draw flowcharts. Some are given below –

flow chart symbols

Flow Chart Syntax

flow chart syntax

How to draw flowchart

Q. Draw a flowchart to find the sum of two numbers?

algorithm and flowchart for addition of two numbers

Q. Draw a flowchart to print the number from 1 to 10?

print the number from 1 to 10

Another way to represent an algorithm is with a pseudocode, which is pronounced Soo-doh-kohd. It is regarded as a non-formal language that aids in the creation of algorithms by programmers. It is a thorough explanation of the steps a computer must take in a specific order.

The word “pseudo” means “not real,” so “pseudocode” means “not real code”. Following are some of the frequently used keywords while writing pseudocode –

Write an algorithm to display the sum of two numbers entered by user, using both pseudocode and flowchart.

Pseudocode for the sum of two numbers will be – input num1 input num2 COMPUTE Result = num1 + num2 PRINT Result

Flowchart for this pseudocode or algorithm –

Flow of Control

The flow of control depicts the flow of events as represented in the flow chart. The events can flow in a sequence, or on branch based on a decision or even repeat some part for a finite number of times.

Sequence –  These algorithms are referred to as executing in sequence when each step is carried out one after the other.

Selection – An algorithm may require a question at some point because it has come to a stage when one or more options are available. This type of problem we can solve using If Statement and Switch Statement in algorithm or in the program.

Repetition – We often use phrases like “go 50 steps then turn right” while giving directions. or “Walk to the next intersection and turn right.” These are the kind of statements we use, when we want something to be done repeatedly.  This type of problem we can solve using For Statement, While and do-while statement.

Verifying Algorithms

Software is now used in even more important services, such as the medical industry and space missions. Such software must function properly in any circumstance. As a result, the software designer must ensure that every component’s operation is accurately defined, validated, and confirmed in every way.

To verify, we must use several input values and run the algorithm for each one to produce the desired result. We can then tweak or enhance the algorithm as necessary.

Comparison of Algorithm

There may be more than one method to use a computer to solve a problem, If you wish to compare two programmes that were created using two different approaches for resolving the same issue, they should both have been built using the same compiler and executed on the same machine under identical circumstances.

Once an algorithm is decided upon, it should be written in the high-level programming language of the programmer’s choice. By adhering to its grammar, the ordered collection of instructions is written in that programming language. The grammar or set of rules known as syntax controls how sentences are produced in a language, including word order, punctuation, and spelling.

Decomposition

A problem may occasionally be complex, meaning that its solution cannot always be found. In these circumstances, we must break it down into simpler components. Decomposing or breaking down a complicated problem into smaller subproblems is the fundamental concept behind addressing a complex problem by decomposition. These side issues are more straightforward to resolve than the main issue.

Computer Science Class 11 Notes

Computer Science Class 11 MCQ

Computer science class 11 ncert solutions.

CEE 20: Introduction to Computational Engineering Problem Solving (English)

Course information.

Civil and Environmental Engineering Dept. | Engineering Sch. | University of California, Irvine Keywords: Engineering,Computer engineering,computer programming,MATLAB,data visualization,modular programs,Civil and Environmental Engineering,GNU Octave

Share on Facebook

GCFGlobal Logo

Computer Basics  - Basic Troubleshooting Techniques

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

GCFLearnFree Logo

Computer Basics: Basic Troubleshooting Techniques

Lesson 19: basic troubleshooting techniques.

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

Troubleshooting

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

General tips to keep in mind

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

cables

Using the process of elimination

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

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

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

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

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

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

Simple solutions to common problems

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

Problem: Power button will not start computer

surge protector

Problem: An application is running slowly

Checking for updates

Problem: An application is frozen

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

task manager in Windows 10

Problem: All programs on the computer run slowly

virus scanner

Problem: The computer is frozen

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

restarting Windows Explorer in Windows 10

Problem: The mouse or keyboard has stopped working

wired mouse or keyboard

Problem: The sound isn't working

headphones and speakers

Problem: The screen is blank

Solving more difficult problems

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

Google search of Windows 10

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

previous

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

introduction to computer problem solving

introduction to computer problem solving

Get Textbooks on Google Play

Rent and save from the world's largest eBookstore. Read, highlight, and take notes, across web, tablet, and phone.

Go to Google Play Now »

What people are saying  -   Write a review

Bibliographic information.

QR code for Introduction to Computer Science Using Python: A Computational Problem-Solving Focus

IMAGES

  1. Steps to develop problem-solving skills

    introduction to computer problem solving

  2. INTRODUCTION TO COMPUTING & PROBLEM SOLVING By DR. CHANDRAKANT NAIKODI

    introduction to computer problem solving

  3. Introduction to Computer Science Using Python Pdf

    introduction to computer problem solving

  4. INTRODUCTION TO PROBLEM SOLVING IN COMPUTER SCIENCE

    introduction to computer problem solving

  5. CS101: Introduction to Computer programming>

    introduction to computer problem solving

  6. Intro Computing Problem Solving

    introduction to computer problem solving

VIDEO

  1. Problem Solving Techniques

  2. HOW TO CONVERT MICROSOFT POWERPOINT PPTX TO JPEG FILE FORMAT (PICTURE FORMAT). CONVERT PPTX TO JPEG

  3. Vlookup With Min Formula, Microsoft Excel, #ahsanmughal

  4. Conditional Formatting Microsoft Word, #ahsanmughal

  5. Lecture_2_Part_4_Solving_Problem

  6. Computer Systems

COMMENTS

  1. Introduction to Problem Solving Skills

    Problem solving is the process of identifying a problem, developing possible solution paths, and taking the appropriate course of action. Why is problem solving important? Good problem solving skills empower you not only in your personal life but are critical in your professional life.

  2. Lecture 3: Problem Solving

    Introduction to Computer Science and Programming. Menu. More Info Syllabus Software References Unit 1 Introduction to 6.00 Core Elements of a Program ... Problem Solving. Lecture 3: Problem Solving. Viewing videos requires an internet connection Transcript. Course Info Instructor

  3. CS2104: Introduction to Problem Solving in Computer Science

    Computer Science Ambassadors CS2104: Introduction to Problem Solving in Computer Science This course introduces the student to a broad range of heuristics for solving problems in a range of settings. Emphasis on problem-solving techniques that aid programmers and computer scientists.

  4. Lecture 3 handout: problem solving

    Introduction to Computer Science and Programming. Menu. More Info Syllabus Software References Unit 1 Introduction to 6.00 ... Problem Solving. Lecture 3 handout: problem solving. Description: This resource contains information about lecture 3. file_download Download File. DOWNLOAD. Course Info

  5. PDF Introduction to Computers, Problem Solving, and Programming

    Basically, computers are devices for performing com­ putations at incredible speeds (more than a billion instructions per 50 CHAPTER 1 Introduction to Computers, Problem Solving, and Programming second) and with great accuracy. But, to accomplish anything useful, a computer must be provided with a list of insttuctions, or a program.

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

    Problem solving is the act of defining a problem; determining the cause of the problem; identifying, prioritizing, and selecting alternatives for a solution; and implementing a solution. The problem-solving process Problem solving resources Problem Solving Chart The Problem-Solving Process

  7. Introduction to problem solving Computer Science Class 11 Notes

    The first step in the introduction to problem solving Computer Science Class 11 is analyzing the problem. Analysing the problem When you need to find a solution for a problem, you need to understand the problem in detail. You should identify the reasons and causes of the problem as well as what to be solved.

  8. Introduction To Problem Solving In Computer Science (CS2104)

    Lesson 10 Earthquake Hazards, Magnitude, and Intensity. Final draft - Grade: B. Final Paper - COM 315. Kami Export - Madeline Gordy - Paramecium Homeostasis. Physio Ex Exercise 11 Activity 3. BIO 115 Final Review - Organizers for Bio 115, everything you need to know.

  9. Unit 1. Problem Solving with Computer

    An algorithm to find sum of two numbers: Step 1: Start Step 2: Declare variables num1, num2 and sum. Step 3: Read values num1 and num2. Step 4: Add num1 and num2 and assign the result to sum. sum←num1+num2 Step 5: Display sum Step 6: Stop Ashim Lamichhane 10. 11.

  10. UNIT 1

    UNIT 1 - Introduction to Problem Solving: Problem-solving strategies, Problem identification, Introduction to Problem Solving: Problem-solving strategies, Problem identificat... View more University Pondicherry University Course Problem Solving and Programming (COMS 304) Academic year2015/2016 Helpful? 10417 Comments

  11. An Introduction to Problem-Solving using Search Algorithms for Beginners

    In computer science, problem-solving refers to artificial intelligence techniques, including various techniques such as forming efficient algorithms, heuristics, and performing root cause analysis to find desirable solutions. The basic crux of artificial intelligence is to solve problems just like humans.

  12. Computational Thinking for Problem Solving

    Computational thinking is an approach to solving problems using concepts and ideas from computer science, and expressing solutions to those problems so that they can be run on a computer. As computing becomes more and more prevalent in all aspects of modern society -- not just in software development and engineering, but in business, the ...

  13. Introduction to Problem Solving and Programming

    It introduces computer based problem solving and implementation of solutions in a high level programming language. Python is the preferred language for this course, institutions may offer using a different language to align with primary 4-year partner requirements. Course Objectives Civic Engagement

  14. INTRODUCTION TO PROBLEM SOLVING IN COMPUTER SCIENCE

    find relevant notes-https://viden.io/search/knowledge?query=computer+sciencealso search PDFs notes-https://viden.io

  15. What is computational thinking?

    Next, simple steps or rules to solve each of the smaller problems can be designed (algorithms). Finally, these simple steps or rules are used to program a computer to help solve the complex ...

  16. Introduction to Problem Solving Class 11 Notes

    Program Solving Steps are - 1. Analysing the problem 2. Developing an Algorithm 3. Coding 4. Testing and Debugging Analyzing the problem - It is important to clearly understand a problem before we begin to find the solution for it. If we are not clear as to what is to be solved, we may end up developing a program which may not solve our purpose.

  17. CEE 20: Introduction to Computational Engineering Problem Solving

    Introduction to computer programming within a numerical computing environment (MATLAB or similar) including types of data representation, graphical display of data, and development of modular programs with application to engineering analysis and problem solving.

  18. Introduction to Algorithms and Flowcharts

    Introduction to Flowcharts. It is basically a diagrammatic representation of an algorithm. Furthermore, it uses various symbols and arrows to describe the beginning, ending, and flow of the program. Moreover, the programmers use it to depicting the flow of data and instructions while problem-solving.

  19. An Introduction to Computers and Problem Solving

    TAACCCT This work is licensed under a Creative Commons Attribution 4.0 International License.This workforce solution was created through a cooperative agreem...

  20. Computer Basics: Basic Troubleshooting Techniques

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

  21. Introduction to Computer Science Using Python: A Computational Problem

    Introduction to Computer Science Using Python: A Computational Problem-Solving Focus introduces students to programming and computational problem-solving via a back-to-basics, step-by-step, objects-late approach that makes this book easy to teach and learn from. Students are provided with a thorough conceptual grounding in computational problem solving before introducing them to specific ...