Introduction to Problem Solving Skills
What is problem solving and why is it important.
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?
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 ] :
- I dentify the problem
- D efine the context of the problem
- E xplore possible strategies
- A ct on best solution
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 ].
Describe the series of steps you think the chimpanzee used to solve this problem.
- [Page 2: What does Problem Solving Look Like?] 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.
- [Page 2: What does Problem Solving Look Like?] 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!
- [Page 3: Developing Problem Solving Processes] Adam Savage shared many of his problem solving processes. List the ones you think are the five most important.
“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:
- Taconic High School in Pittsfield, Massachusetts, is a comprehensive, fully accredited high school with special programs in Health Technology, Manufacturing Technology, and Work-Based Learning.
- Berkshire Community College in Pittsfield, Massachusetts, prepares its students with applied manufacturing technical skills, providing hands-on experience at industrial laboratories and manufacturing facilities, and instructing them in current technologies.
- H.C. Starck in Newton, Massachusetts, specializes in processing and manufacturing technology metals, such as tungsten, niobium, and tantalum. In almost 100 years of experience, they hold over 900 patents, and continue to innovate and develop new products.
- Nypro Healthcare in Devens, Massachusetts, specializes in precision injection-molded healthcare products. They are committed to good manufacturing processes including lean manufacturing and process validation.
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?
- [Page 5: Making Decisions] What problems did you observe in the video?
- What do you do next?
- Try to fix it yourself.
- Ask your trainer for help.
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.
- Check the dowel pins.
- Use the single step/single block function to determine what happened.
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.
- Run the single step/single block function.
- Edit the G-code to raise the Z-axis.
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.
- Look at 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.
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.
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 to look at the G-code in the morning.
- You leave a note on the machine, just in case.
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.
- You decide to talk with your supervisor.
- You discuss what happened with a coworker over lunch.
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
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:
- Determine what happened.
- Determine why it happened.
- Fix the problem so it won’t happen again.
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:
- Root Cause Analysis Tools
- 5 Whys Analysis
- Fishbone or Cause and Effect Diagram
- Pareto Analysis
How Huddles Work
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:
- Brian Scudamore, CEO of 1-800-Got-Junk? , uses the daily huddle as an operational tool to take the pulse of his employees and as a motivational tool. Watch a morning huddle meeting .
- Fusion OEM, an outsourced manufacturing and production company. What do employees take away from the daily huddle meeting .
- Biz-Group, a performance consulting group. Tips for a successful huddle .
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.
- Define a clear objective.
- Have an agreed a time limit.
- During the brainstorming session, write down everything that comes to mind, even if the idea sounds crazy.
- If one idea leads to another, write down that idea too.
- Combine and refine ideas into categories of solutions.
- Assess and analyze each idea as a potential solution.
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.
- Watch Peggy Morgan Collins, a marketing executive at Power Curve Communications discuss How to Stimulate Effective Brainstorming .
- Watch Kim Obbink, CEO of Filter Digital, a digital content company, and her team share their top five rules for How to Effectively Generate Ideas .
Importance of Good Communication and Problem Description
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:
- Provide a clear summary of your problem. Start at the beginning, give relevant facts, timelines, and examples.
- Avoid including your opinion or personal attacks in your explanation.
- Avoid using words like "always" or "never," which can give the impression that you are exaggerating the problem.
- If this is an ongoing problem and you have collected documentation, give it to your supervisor once you have finished describing the problem.
- Remember to listen to what's said in return; communication is a two-way process.
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
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?
- [Page 6:] 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.
- View Problem Solving Strategies Select a strategy below... Root Cause Analysis How Huddles Work Brainstorming Importance of Good Problem Description Methods of Communication
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.
- Provide a clear summary of the problem. Start at the beginning, give relevant facts, timelines, and examples.
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: Question1] What are two things you learned in this case study?
- What question(s) do you still have about the case study?
- [Quick Summary: Question2] What question(s) do you still have about the case study?
- Is there anything you would like to learn more about with respect to this case study?
- [Quick Summary: Question3] Is there anything you would like to learn more about with respect to this case study?
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:
- Identify skills and personality traits of successful problem solving.
- Apply standard problem-solving heuristics to aid in problem solving.
- Apply problem-solving techniques to programming activities.
- Apply problem-solving techniques to school and personal interactions.
- Apply pairs and team problem-solving techniques.
- Generate potential solutions to problems with standard heuristics.
- Formulate and successfully communicate the solutions to problems.
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
- Prof. John Guttag
- Electrical Engineering and Computer Science
- Engineering Computer Science
Lecture 3 handout: problem solving
This resource contains information about lecture 3.
- About Problem Solving
- Related Topics
Problem Solving Resources
Case studies, problem solving related topics.
- Continuous Improvement
- Eight Disciplines (8D)
- Fishbone Diagram
- Nine Windows
- Shainin System™
- Total Quality Management (TQM)
- Quality Resources /
- Problem Solving
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.
- The problem-solving process
- Problem solving resources
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:
- Reviewing and documenting how processes currently work (i.e., who does what, with what information, using what tools, communicating with what organizations and individuals, in what time frame, using what format).
- Evaluating the possible impact of new tools and revised policies in the development of your "what should be" model.
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:
- A particular alternative will solve the problem without causing other unanticipated problems.
- All the individuals involved will accept the alternative.
- Implementation of the alternative is likely.
- The alternative fits within the organizational constraints.
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.
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
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.
- Tue. Mar 7th, 2023
A blog for Comprehensive notes and Important questions
Introduction to problem solving Computer Science Class 11 Notes
By Sanjay Parmar
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.
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.
Finding the simple interest, you need to follow the given steps:
- Gather required information and data such as principle amount, rate of interest and duration.
- Apply the formula for computing simple interest i.e. si=prn/100
- Now store the answer in si
- Display the calculated simple interest
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:
- It prepares a roadmap of the program to be written before writing code.
- It helps to clearly visualise the instructions to be given in the program.
- When the algorithm is developed, a programmer knows the number of steps required to follow for the particular task.
- Algorithm writing is the initial stage (first step) of programming.
- It makes program writing easy and simple.
- It also ensures the accuracy of data and program output.
- It increases the reliability and efficiency of the solution.
Characteristics of a good algorithm
The characteristics of a good algorithm are as follows:
- It starts and ends with a finite number of steps. Therefore the steps are precisely stated or defined.
- In the algorithm, the result of each step is defined uniquely and based on the given input and process.
- After completion of the task, the algorithm will end.
- The algorithm accepts input and produces the output.
While writing the algorithm the following things should be clearly identified:
- The input required for the task
- The computation formula or processing instructions
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:
- Clears the logic of the program
- The execution of the program
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:
Coding is an essential part of the introduction to problem solving ComputerScience11.
- It is pronounced as soo-doh-kohd
- It is one of the ways of representing algorithms in a systematic way
- The word pseudo means not real, therefore pseudocode means not real code
- It is non-formal language, that helps programmers to write code
- It is written in human understandable language
- It cannot be directly read by computers
- There is no specific standard or way of writing pseudocode is there
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
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.
Activate your 30 day free trial to unlock unlimited reading.
Unit 1. Problem Solving with Computer
You are reading a preview.
Activate your 30 day free trial to continue reading.
Check these out next
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
More Related Content
Slideshows for you (20).
Similar to Unit 1. Problem Solving with Computer (20)
More from Ashim Lamichhane (18)
Recently uploaded (20)
- 1. Unit 1. Problem Solving with Computer Ashim Lamichhane 1
- 2. Intro • Number of problems in our daily life. • Suppose we have to calculate Simple Interest. • Suppose we have to prepare a mark sheet. • A computer is a DUMB machine. • A computer cannot do anything alone without software i.e. Program Ashim Lamichhane 2
- 3. • A software is a set of programs written to solve a particular problem • Software is a set of instructions on the basis of which computer gives output/result. • If the instructions are not correct, the computer gives wrong result. Ashim Lamichhane 3
- 4. Never Ever Forget • Just writing code is not sufficient to solve a problem. • Program must be planned before coding in any computer language available. • There are many activities to be done before and after writing code. Ashim Lamichhane 4
- 5. Stages while solving a problem using computer 1. Problem Analysis 2. Algorithm Development 3. Flowcharting 4. Coding 5. Compilation and Execution 6. Debugging and Testing 7. Documentation Ashim Lamichhane 5
- 6. Fig. Steps in problem solving Ashim Lamichhane 6 Algorithm Development Flowcharting Documentation Debugging and Testing Compilation and Execution Program Coding Problem Analysis
- 7. Problem Analysis • Process of becoming familiar with the problem. • We need to analyze and understand it well before solving. • The user’s requirements cannot be fulfilled without clear understanding of his/her problem in depth. • Inadequate identification of problem may cause program less useful and insufficient. • Example: Banking Solution, Hospital Medical Study Ashim Lamichhane 7
- 8. Algorithm Development • Step By Step description of the method to solve a problem. • Effective procedure for solving a problem in finite number of steps. • Developing an algorithm is a step of program design. Ashim Lamichhane 8
- 9. An algorithm to find sum of two numbers: Step 1: Start Step 2: Assume two numbers x and y and a variable sum=0 Step 3: Add two numbers x and y; store the value in variable sum Step 4: If you want to try again with different numbers then goto step 2 else goto step 5 Step 5: END Ashim Lamichhane 9
- 10. 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. An algorithm to find largest of three different numbers: Ashim Lamichhane 11
- 12. Three features of Algorithm • Sequence – Each step in the algorithm in executed in specified order. If not algorithm will fail. • Decision – We have to make decision to do something. – If the outcome of the decision is true, one thing is done otherwise other. • If condition then process1 OR • If condition then process1 Else process2 • Repetition – For example Repeat Fill Water in the kettle Until Kettle is full Ashim Lamichhane 12
- 13. Flowcharting • Graphical representation of an algorithm using standard symbols. • Includes a set of various standard shaped boxes that are interconnected by flow lines. • Flow lines have arrows(direction of flow). • Activities are written within boxes in English. • Communicates between programmers and business persons. Ashim Lamichhane 13
- 14. Advantages of Flowcharts • Communication – Quickly provide logic, ideas and descriptions of algorithms. • Effective Analysis – Clear overview of the entire problem. • Proper Documentation – Documents the steps followed in an algorithm. – Helps us understand its logic in future. • Efficient Coding – More ease with comprehensive flowchart as a guide • Easy in debugging and program maintenance – Debugging and maintenance of operating program Ashim Lamichhane 14
- 15. Flowchart Symbols Ashim Lamichhane 15
- 16. Things to consider • There should be start and stop to the flowchart. • Only one flow line should emerge from a process symbol. • Only one flow line should enter a decision symbol, but two or three flow lines can leave the decision symbol. Ashim Lamichhane 16
- 17. Write an algorithm and draw flowchart for finding the sum of any two numbers. Algorithm ------------- Step1: Start Step2: Display “Enter two numbers”. Step3: Read A and B Step4: C= A+B Step5: Display “C as sum of two numbers” Step6: Stop Ashim Lamichhane 17
- 18. Flowchart Ashim Lamichhane 18 START END Read two Numbers, A and B Display C as Sum of A and B C = A + B Input Start Output End Processing
- 19. Some questions for Assignment • Write an algorithm and draw flowchart to determine a number whether it is positive or negative. • Write an algorithm and draw flowchart to test a number for even or odd. • Write an algorithm and draw flowchart to find the largest number among three numbers. Ashim Lamichhane 19
- 20. • Read N numbers from user and display sum of all entered numbers. • For finding the sum of the series 1+2+3+4+… up to N terms • For calculating the factorial of a given number N. Ashim Lamichhane 20
- 21. Coding • The process of transforming the program logic design into computer language format. • An act of transforming operations in each box of the flowchart in terms of the statement of the program. • The code written using programming language is also known as source code. • Coding isn’t the only task to be done to solve a problem using computer. • Anyone can code. TRUST ME!! Ashim Lamichhane 21
- 22. Compilation • Process of changing high level language into machine level language. • It is done by special software, COMPILER • The compilation process tests the program whether it contains syntax errors or not. • If syntax errors are present, compiler can not compile the code. Ashim Lamichhane 22
- 23. Execution • Once the compilation is completed then the program is linked with other object programs needed for execution, there by resulting in a binary program and then the program is loaded in the memory for the purpose of execution and finally it is executed. • The program may ask user for inputs and generates outputs after processing the inputs. Ashim Lamichhane 23
- 24. Debugging and Testing • Debugging is the discovery and correction of programming errors. • Some errors may remain in the program because the designer/programmer might have never thought about a particular case. • When error appears debugging is necessary. Ashim Lamichhane 24
- 25. Debugging and Testing • Testing ensures that program performs correctly the required task. • Verification ensures that program does what the programmer intends to do. • Validation ensures that the program produces the correct results for a set of test data. • Test data are supplied to the program and output is observed. • Expected output = Error free Ashim Lamichhane 25
- 26. Program Documentation • Helps to those who use, maintain and extend the program in future. • A program may be difficult to understand even to programmer who wrote the code after some days. • Properly documented program is necessary which will be useful and efficient in debugging, testing, maintenance and redesign process. Ashim Lamichhane 26
- 27. Two types of documentations 1. Programmer’s Documentation (Technical Documentation) • Maintain, redesign and upgrade • Logic, DFD, E-R, algorithm and flowchart 2. User Documentation (User Manual) • Support to the user of the program • Instructions for installation of the program Ashim Lamichhane 27
- 28. Computer Program and Programming Language Ashim Lamichhane 28
- 29. Computer Program • Set of instructions that causes to behave in predetermined manner. • To instruct a computer to perform a certain job, we need languages, but not English or Nepali(!!!FOR NOW!!!). • We need languages understood by the computer. Ashim Lamichhane 29
- 30. Types or levels of Programming Languages • High Level • Low-level – Machine Level – Assembly Level Ashim Lamichhane 30
- 31. Low Level Language • Statement or instruction is directly translated into a single machine code. • It is machine dependent, i.e. A particular low- level language works only for a certain machine. Ashim Lamichhane 31
- 32. Machine-level Language • Language that a computer actually understands. • 1’s and 0’s. • Is a sequence of instructions written in the form of binary numbers consisting of 1’s and 0’s • It executes fast as computer don’t need any translation. Ashim Lamichhane 32
- 33. • To add two number in machine language: 11 10111001 110 3 machine code for addition (say) 6 • It is difficult to remember different instructions for programming. Ashim Lamichhane 33
- 34. Machine Level Language ADVANTAGE DISADVANTAGE Computer directly understands machine instructions Difficult to use Directly starts executing Machine dependent Takes less execution time Difficult to Debug and modify Ashim Lamichhane 34
- 35. Assembly Language • Symbolic representation(mnemonics) of machine code. • Close to machine code but the computer cannot understand • Must be translated into machine code by a separate program called an assembler. 11 ADD 110 – Suppose ADD is mnemonic for addition Ashim Lamichhane 35
- 36. Some examples of instructions for assembly languages are as follows: CODE Meaning ADD Addition SUB Subtraction INR Increase DCR Decrease CMP Compare Ashim Lamichhane 36 It is relatively easy for writing programs in assembly languages, but is slow in execution as it has to be converted into machine language before execution.
- 37. Assembly language Advantage Disadvantage More convenient than machine language Hard to remember Mnemonics Symbolic instructions Machine dependent Improved readability Less efficient than machine language Need fewer codes than high level language Embedded systems and device programming Ashim Lamichhane 37
- 38. High Level Language • User friendly, Similar to natural languages • Platform independent • Easy to write or remember • Easy to learn and work • While execution: translated into assembly language then to machine language. • Slow in execution but is efficient for developing programs. • Ex: C, C++, Python, Java etc. Ashim Lamichhane 38
- 39. High Level Language Advantages Disadvantages Easy to use More execution time Portability Needs own translator Easy Debugging Easy and Fast Development of software Ashim Lamichhane 39
- 40. Compiler • A high level source program must be translated into a form machine can understand. This done by software called the compiler. • Source code => Machine language code(Object code) • During the process of translation, the compiler reads the source programs statement-wise and checks for syntax errors. • In case of any error, the computer generates message about the error. • Ex: C, C++, Java, FORTRAN, pascal etc. Ashim Lamichhane 40
- 41. Interpreter • Like compiler, it is also a translator which translates high level to machine level language. • Translates and executes the program line by line. • Each line is checked for syntax error and then converted to the equivalent machine code. • Ex. QBASIC, PERL, PHP, ASP, PYTHON, RUBY Ashim Lamichhane 41
- 42. Difference between compiler and interpreter Compiler Interpreter Compiler scans the entire program before translating it into machine code Interpreter translates and executes the program line by line Syntax errors are found only after the compilation of complete programs Syntax errors can be trapped after translations of every line It takes large amount of time to analyze the source code but the overall execution time is comparatively faster. It takes less amount of time to analyze the source code but the overall execution time is slower. Generates intermediate object code which further requires linking, hence requires more memory. No intermediate object code is generated, hence are memory efficient. Ashim Lamichhane 42
- 43. Overview to C Programming Ashim Lamichhane 43
- 44. • We can assume C as middle level language • This doesn’t mean C is less power full or harder to use or less developed. • Instead C combines the advantages of high level language with the functionalism of assembly language. • Like high level, C provides block structures, stand-alone functions and small amount of data typing. • Like assembly language, it allows manipulations of bits, bytes, pointers and it is mostly used in system programming. • Combination of two aspects. Ashim Lamichhane 44
- 45. History of C programming language • C is a programming language which was born at “AT & T’s Bell Laboratory” of USA in 1972. • C was written by Dennis Ritchie, that’s why he is also called as father of C programming language. • C language was created for a specific purpose i.e. designing the UNIX operating system (which is currently base of many UNIX based OS). • From the beginning, C was intended to be useful to allow busy programmers to get things done because C is such a powerful, dominant and supple language. • It’s use quickly spread beyond Bell Labs in the late 70’s Ashim Lamichhane 45
- 46. Why use C? • Robust Language • Efficient and fast • Highly portable • Structured Language • Extendibility • Middle level language • Rich system library Ashim Lamichhane 47
- 47. Executing a C Program Ashim Lamichhane 48
- 48. Basic Structure of C Program Ashim Lamichhane 49
- 49. 1. Documentation Section • Sets of comment line giving the name of program, the author, algorithms, methods used and other details. • Acts as a communication between members of the development team. • Acts as user manual. • Ex – /* This program adds two numbers */ – /*…. */ denotes comments in C Ashim Lamichhane 50
- 50. 2. Link Section - Provides Instructions to the compiler to link functions with program from the system library. #include<stdio.h> - Links input/output functions like printf() and scanf() with the program Ashim Lamichhane 51
- 51. 3. Definition Section - In this section all symbolic constants are defined. - Ex. - #define PI 3.1416 - #define FORMULA 3*x*x*x+2*x*x Ashim Lamichhane 52
- 52. 4. Global Declaration Section - The variables which are used in more than one functions or blocks are called global variables. - This section also declares all the user-defined functions. Ashim Lamichhane 53
- 53. 5. main() Function Section - Every C program starts with a main() function. - Declaration part and executable part - Declaration part declares all the variables used in the execution part. - int n1; - int n2=5; - Execution part has executable operations like: - n1= n1 +1; - n2=n1*5 Ashim Lamichhane 54
- 54. 6. Subprogram Section - This section contains all the user-defined functions that are called in the main function. - All the sections except the main function section may be absent when they are not required. Ashim Lamichhane 55
- 55. Note • For Assignments And Lecture Slides https://github.com/ashim888/csit-c http://www.ashimlamichhane.com.np/ Ashim Lamichhane 56
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.
You have now unlocked unlimited access to 20M+ documents!
Learn faster and smarter from top experts
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.
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
- Travelling Salesman Problem
- Tower of Hanoi Problem
- Water-Jug Problem
- N-Queen Problem
- Crypt-arithmetic Problems
- Magic Squares
- Logical Puzzles and so on.
Table of Contents
Problem solving techniques.
- Properties of searching algorithms
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.
- Define the problem
- Analyze the problem
- Identification of possible solutions
- Choosing the optimal solution
Let’s discuss some of the essential properties of search algorithms.
Properties of search algorithms
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.
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.
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
- Uninformed search
- Informed search
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.
- Breadth-first search
- Depth-first search
- Depth-limited search
- Iterative deepening depth-first search
- Bidirectional search
- Uniform cost search
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.
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.
The path of traversal is:
A —-> B —-> C —-> D —-> E —-> F
Let’s implement the same in python programming.
Advantages of BFS
- BFS will never be trapped in any unwanted nodes.
- If the graph has more than one solution, then BFS will return the optimal solution which provides the shortest path.
Disadvantages of BFS
- BFS stores all the nodes in the current level and then go to the next level. It requires a lot of memory to store the nodes.
- BFS takes more time to reach the goal state which is far away.
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.
A —-> B —-> D —-> E —-> C —-> F
The output path is as follows.
Advantages of DFS
- It takes lesser memory as compared to BFS.
- The time complexity is lesser when compared to BFS.
- DFS does not require much more search.
Disadvantages of DFS
- DFS does not always guarantee to give a solution.
- As DFS goes deep down, it may get trapped in an infinite loop.
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.
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.
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.
Advantages of DLS
- It takes lesser memory when compared to other search techniques.
Disadvantages of DLS
- DLS may not offer an optimal solution if the problem has more than one solution.
- DLS also encounters incompleteness.
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.
The path of traversal is
A —-> B —-> E
Let’s try to implement this.
The path generated is as follows.
Advantages of IDDFS
- IDDFS has the advantages of both BFS and DFS.
- It offers fast search and uses memory efficiently.
Disadvantages of IDDFS
- It does all the works of the previous stage again and again.
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.
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.
E —-> B —-> A —-> C —-> G
Let’s implement the same in Python.
The path is generated as follows.
Advantages of bidirectional search
- This algorithm searches the graph fast.
- It requires less memory to complete its action.
Disadvantages of bidirectional search
- The goal state should be pre-defined.
- The graph is quite difficult to implement.
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.
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.
Let’s implement UCS in Python.
The optimal output path is generated.
Advantages of UCS
- This algorithm is optimal as the selection of paths is based on the lowest cost.
Disadvantages of UCS
- The algorithm does not consider how many steps it goes to reach the lowest path. This may result in an infinite loop also.
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.
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.
A —-> C —-> G —-> H
Let’s try this with Python.
The output path with the lowest cost is generated.
The time complexity of Greedy best-first search is O(b m ) in worst cases.
Advantages of Greedy best-first search
- Greedy best-first search is more efficient compared with breadth-first search and depth-first search.
Disadvantages of Greedy best-first search
- In the worst-case scenario, the greedy best-first search algorithm may behave like an unguided DFS.
- There are some possibilities for greedy best-first to get trapped in an infinite loop.
- The algorithm is not an optimal one.
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.
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.
Let’s try this in Python.
The output is given as
The time complexity of the A* search is O(b^d) where b is the branching factor.
Advantages of A* search algorithm
- This algorithm is best when compared with other algorithms.
- This algorithm can be used to solve very complex problems also it is an optimal one.
Disadvantages of A* search algorithm
- The A* search is based on heuristics and cost. It may not produce the shortest path.
- The usage of memory is more as it keeps all the nodes in the memory.
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!
About the Author
Data Science and AI enthusiast
Our Top Authors
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.
30 Best Data Science Books to Read in 2023
How to Read and Write With CSV Files in Python:..
Understand Random Forest Algorithms With Examples (Updated 2023)
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.
- Online Degree Explore Bachelor’s & Master’s degrees
- MasterTrack™ Earn credit towards a Master’s degree
- University Certificates Advance your career with graduate-level learning
- Top Courses
- Join for Free
Computational Thinking for Problem Solving
- Thumbs Up 87%
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
- Simple Algorithm
- Python Programming
- Problem Solving
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.
- 5 stars 80.53%
- 4 stars 12.68%
- 3 stars 3.23%
- 2 stars 1.21%
- 1 star 2.34%
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
Start or advance your career.
- Google Data Analyst
- Google Digital Marketing & E-commerce Professional Certificate
- Google IT Automation with Python Professional Certificate
- Google IT Support
- Google Project Management
- Google UX Design
- Preparing for Google Cloud Certification: Cloud Architect
- IBM Cybersecurity Analyst
- IBM Data Analyst
- IBM Data Engineering
- IBM Data Science
- IBM Full Stack Cloud Developer
- IBM Machine Learning
- Intuit Bookkeeping
- Meta Front-End Developer
- DeepLearning.AI TensorFlow Developer Professional Certificate
- SAS Programmer Professional Certificate
- Launch your career
- Prepare for a certification
- Advance your career
- How to Identify Python Syntax Errors
- How to Catch Python Exceptions
- See all Programming Tutorials
Popular Courses and Certifications
- Free Courses
- Artificial Intelligence Courses
- Blockchain Courses
- Computer Science Courses
- Cursos Gratis
- Cybersecurity Courses
- Data Analysis Courses
- Data Science Courses
- English Speaking Courses
- Full Stack Web Development Courses
- Google Courses
- Human Resources Courses
- Learning English Courses
- Microsoft Excel Courses
- Product Management Courses
- Project Management Courses
- Python Courses
- SQL Courses
- Agile Certifications
- CAPM Certification
- CompTIA A+ Certification
- Data Analytics Certifications
- Scrum Master Certifications
- See all courses
Popular collections and articles
- Free online courses you can finish in a day
- Popular Free Courses
- Business Jobs
- Cybersecurity Jobs
- Entry-Level IT Jobs
- Data Analyst Interview Questions
- Data Analytics Projects
- How to Become a Data Analyst
- How to Become a Project Manager
- Project Manager Interview Questions
- Python Programming Skills
- Strength and Weakness in Interview
- What Does a Data Analyst Do
- What Does a Software Engineer Do
- What Is a Data Engineer
- What Is a Data Scientist
- What Is a Product Designer
- What Is a Scrum Master
- What Is a UX Researcher
- How to Get a PMP Certification
- PMI Certifications
- Popular Cybersecurity Certifications
- Popular SQL Certifications
- Read all Coursera Articles
Earn a degree or certificate online
- Google Professional Certificates
- Professional Certificates
- See all certificates
- Bachelor's Degrees
- Master's Degrees
- Computer Science Degrees
- Data Science Degrees
- MBA & Business Degrees
- Data Analytics Degrees
- Public Health Degrees
- Social Sciences Degrees
- Management Degrees
- BA vs BS Degree
- What is a Bachelor's Degree?
- 11 Good Study Habits to Develop
- How to Write a Letter of Recommendation
- 10 In-Demand Jobs You Can Get with a Business Degree
- Is a Master's in Computer Science Worth it?
- See all degree programs
- Coursera India
- Coursera UK
- Coursera Mexico
- What We Offer
- Coursera Plus
- MasterTrack® Certificates
- For Enterprise
- For Government
- Become a Partner
- Coronavirus Response
- Beta Testers
- Teaching Center
- Modern Slavery Statement
- Skip to content
- Accessibility Help
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:
- decomposition - breaking down a complex problem or system into smaller, more manageable parts
- pattern recognition – looking for similarities among and within problems
- abstraction – focusing on the important information only, ignoring irrelevant detail
- algorithms - developing a step-by-step solution to the problem, or the rules to follow to solve the problem
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
- Citizenship (Wales)
- Computer Science
- Humanities - Geography (Wales)
- Humanities - History (Wales)
- Modern Foreign Languages
- Religious Studies
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 Syntax
How to draw flowchart
Q. Draw a flowchart to find the sum of two numbers?
Q. Draw a flowchart to 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.
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.
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
- Unit 1 : Basic Computer Organisation
- Unit 1 : Encoding Schemes and Number System
- Unit 2 : Introduction to problem solving
- Unit 2 : Getting Started with Python
- Unit 2 : Conditional statement and Iterative statements in Python
- Unit 2 : Function in Python
- Unit 2 : String in Python
- Unit 2 : Lists in Python
- Unit 2 : Tuples in Python
- Unit 2 : Dictionary in Python
- Unit 3 : Society, Law and Ethics
Computer Science Class 11 MCQ
Computer science class 11 ncert solutions.
- Unit 2 : Tuples and Dictionary in Python
- What are Collections?
- California Subject Examination for Teachers - Preparation Resources
- Discover the Physical Sciences Breakfast Lecture Series
- Gifted and Talented Education
- INSIDE UCI - Freshman Start
- Open Chemistry
- Orange County Alliance for Community Health Research
- Public Health
- Talks by UCI Faculty: TED and TEDx
- What Matters to Me and Why
- Support UCI Open
- Support UCI OCW
- CEE 20: Introduction to Computational Engineering Problem Solving
CEE 20: Introduction to Computational Engineering Problem Solving (English)
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
- Imscc format
- Get started with computers
- Learn Microsoft Office
- Apply for a job
- Improve my work skills
- Design nice-looking docs
- Getting Started
- Smartphones & Tablets
- Typing Tutorial
- Online Learning
- Basic Internet Skills
- Online Safety
- Social Media
- Zoom Basics
- Google Docs
- Google Sheets
- Career Planning
- Resume Writing
- Cover Letters
- Job Search and Networking
- Business Communication
- Entrepreneurship 101
- Careers without College
- Job Hunt for Today
- 3D Printing
- Freelancing 101
- Personal Finance
- Sharing Economy
- Graphic Design
- Image Editing
- Learning WordPress
- Language Learning
- Critical Thinking
- For Educators
- Staff Picks
- English expand_more expand_less
Computer Basics - Basic Troubleshooting Techniques
Computer basics -, basic troubleshooting techniques, computer basics basic troubleshooting techniques.
Computer Basics: Basic Troubleshooting Techniques
Lesson 19: basic troubleshooting techniques.
Do you know what to do if your screen goes blank? What if you can't seem to close an application, or can't hear any sound from your speakers? Whenever you have a problem with your computer, don't panic! There are many basic troubleshooting techniques you can use to fix issues like this. In this lesson, we'll show you some simple things to try when troubleshooting, as well as how to solve common problems you may encounter.
General tips to keep in mind
There are many different things that could cause a problem with your computer. No matter what's causing the issue, troubleshooting will always be a process of trial and error —in some cases, you may need to use several different approaches before you can find a solution; other problems may be easy to fix. We recommend starting by using the following tips.
- Write down your steps : Once you start troubleshooting, you may want to write down each step you take. This way, you'll be able to remember exactly what you've done and can avoid repeating the same mistakes. If you end up asking other people for help, it will be much easier if they know exactly what you've tried already.
- Take notes about error messages : If your computer gives you an error message , be sure to write down as much information as possible. You may be able to use this information later to find out if other people are having the same error.
- Restart the computer : When all else fails, restarting the computer is a good thing to try. This can solve a lot of basic issues you may experience with your computer.
Using the process of elimination
If you're having an issue with your computer, you may be able to find out what's wrong using the process of elimination . This means you'll make a list of things that could be causing the problem and then test them out one by one to eliminate them. Once you've identified the source of your computer issue, it will be easier to find a solution.
Let's say you're trying to print out invitations for a birthday party, but the printer won't print. You have some ideas about what could be causing this, so you go through them one by one to see if you can eliminate any possible causes.
First, you check the printer to see that it's turned on and plugged in to the surge protector . It is, so that's not the issue. Next, you check to make sure the printer's ink cartridge still has ink and that there is paper loaded in the paper tray . Things look good in both cases, so you know the issue has nothing to do with ink or paper.
Now you want to make sure the printer and computer are communicating correctly . If you recently downloaded an update to your operating system , it might interfere with the printer. But you know there haven't been any recent updates and the printer was working yesterday, so you'll have to look elsewhere.
You check the printer's USB cord and find that it's not plugged in. You must have unplugged it accidentally when you plugged something else into the computer earlier. Once you plug in the USB cord, the printer starts working again. It looks like this printer issue is solved!
This is just one example of an issue you might encounter while using a computer. In the rest of this lesson, we'll talk about other common computer problems and some ways to solve them.
Simple solutions to common problems
Most of the time, problems can be fixed using simple troubleshooting techniques, like closing and reopening the program. It's important to try these simple solutions before resorting to more extreme measures. If the problem still isn't fixed, you can try other troubleshooting techniques.
Problem: Power button will not start computer
- Solution 1 : If your computer does not start , begin by checking the power cord to confirm that it is plugged securely into the back of the computer case and the power outlet.
- Solution 2 : If it is plugged into an outlet, make sure it is a working outlet . To check your outlet, you can plug in another electrical device , such as a lamp .
- Solution 4 : If you are using a laptop , the battery may not be charged. Plug the AC adapter into the wall, then try to turn on the laptop. If it still doesn't start up, you may need to wait a few minutes and try again.
Problem: An application is running slowly
- Solution 1 : Close and reopen the application.
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.
- Solution 2 : Restart the computer. If you are unable to force quit an application, restarting your computer will close all open apps.
Problem: All programs on the computer run slowly
- Solution 2 : Your computer may be running out of hard drive space. Try deleting any files or programs you don't need.
- Solution 3 : If you're using a PC , you can run Disk Defragmenter . To learn more about Disk Defragmenter , check out our lesson on Protecting Your Computer .
Problem: The computer is frozen
Sometimes your computer may become completely unresponsive, or frozen . When this happens, you won't be able to click anywhere on the screen, open or close applications, or access shut-down options.
- Solution 3 : Press and hold the Power button. The Power button is usually located on the front or side of the computer, typically indicated by the power symbol . Press and hold the Power button for 5 to 10 seconds to force the computer to shut down.
- Solution 4 : If the computer still won't shut down, you can unplug the power cable from the electrical outlet. If you're using a laptop, you may be able to remove the battery to force the computer to turn off. Note : This solution should be your last resort after trying the other suggestions above.
Problem: The mouse or keyboard has stopped working
- Solution 2 : If you're using a wireless mouse or keyboard, make sure it's turned on and that its batteries are charged.
Problem: The sound isn't working
- Solution 1 : Check the volume level. Click the audio button in the top-right or bottom-right corner of the screen to make sure the sound is turned on and that the volume is up.
- Solution 2 : Check the audio player controls. Many audio and video players will have their own separate audio controls. Make sure the sound is turned on and that the volume is turned up in the player.
- Solution 3 : Check the cables. Make sure external speakers are plugged in, turned on, and connected to the correct audio port or a USB port. If your computer has color-coded ports, the audio output port will usually be green .
Problem: The screen is blank
- Solution 1 : The computer may be in Sleep mode. Click the mouse or press any key on the keyboard to wake it.
- Solution 2 : Make sure the monitor is plugged in and turned on .
- Solution 3 : Make sure the computer is plugged in and turned on .
- Solution 4 : If you're using a desktop, make sure the monitor cable is properly connected to the computer tower and the monitor.
Solving more difficult problems
If you still haven't found a solution to your problem, you may need to ask someone else for help. As an easy starting point, we'd recommend searching the Web . It's possible that other users have had similar problems, and solutions to these problems are often posted online. Also, if you have a friend or family member who knows a lot about computers, they may be able to help you.
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.
- Try the new Google Books
- Advanced Book Search
- Find in a library
- All sellers »
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
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.
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
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.
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
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.
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
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.
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.
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.
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
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.
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 ...
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
find relevant notes-https://viden.io/search/knowledge?query=computer+sciencealso search PDFs notes-https://viden.io
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 ...
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.
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.
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.
TAACCCT This work is licensed under a Creative Commons Attribution 4.0 International License.This workforce solution was created through a cooperative agreem...
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.
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 ...