Bits & Bytes: Lesson 1

February 2007

Problem Solving in Life and Technology

How do we get there from here?

Problem solving skills are essential to success in every aspect of life. You depend upon these skills for success in your personal life and finances, in your family and civic responsibilities, and in your professional career. Everyone has skills in problem solving yet you may have wondered how it is that some people are so good at it in some parts of their lives, but so miserable at it in other parts. We all know individuals who have no “common sense” yet are “book smart”, and we know others who have incredible skills for managing their personal finances but fail miserably in their relationships. We find ourselves wondering how they (and at times, ourselves) can be so inconsistent in what appears to be simple problem solving skills. The truth of the matter is that problem solving is not simple. Problem solving skills take practice and purposeful application of rules and processes to fit specific types of problems. Most people learn these skills through interactions with family and friends, in school, or during career training. Some of it is so ingrained in our personality that we are unaware of our own thought processes. For example, when you get dressed in the morning, you probably don’t have to think through the articles of clothing you will need (pants, a shirt, 2 socks, etc.), and you probably don’t consciously determine ahead of time what order to put them on in.

There are many different kinds of problems to be solved in life and in the field of computer science, and consequently, there are different strategies to solve them. People engaged in technology and computer science share this dependency upon extraordinary problem solving skills for creating all of the conveniences, gadgets, and modern wonders we have come to depend upon. Let’s start our discussion of problem solving with a description of types of problems and explore how each of these types can be reflected in technology and computer science. Then, we’ll look at the strategies to solve these types of problems, the unique strategies of solving problems in technology, and finally, consider ways to improve one’s problem solving skills. As we go along you will have the opportunity to think about problem solving from a personal perspective.

Problems with clear-cut answers and solutions

Problems with definite answers that are solved with prescriptive strategies are the type that many of us spent years practicing in school. These are typically the problems at the end of the chapter in a math, physics, or computer science textbook. We learned that in order to get the right answers all we need to do is follow the rules described in the chapter. If only life were so simple! Individuals who are very adept at this type of problem solving are sometimes called “book smart” and are very skilled at remembering the rules. Sometimes this type of problem is referred to as being highly structured – no guess work required.

Indeed, some of life is clear-cut; balancing your checkbook, following a recipe, putting together a model, installing new software, and writing a formula to calculate the average rainfall for the year. Unfortunately, most of the big challenges in life, and in computer science, fall into other categories of problem solving.

Problems with a fairly defined outcome but with many solution strategies

Things start to get messy when we’re confronted with problems that have a fairly defined outcome but for which the solutions can be as varied as the individuals you meet in your daily commute. This type of problem confronts us on a daily basis. In comparison to clear-cut problems and solutions, these problems are only moderately structured.

In your personal life you need to feed yourself and perhaps a family. The defined outcome is that menus be nutritious, safe, and within your budget but the solutions to the problem are as varied as the cultures and tastes of the world!

Examples of this type of problem in technology include a spreadsheet to plan a budget or a job schedule to coordinate employee’s shifts. The solution is constrained by various factors such as the number of employees, the duration of each shift, etc., but the form and design of the solution can be quite diverse. For example, creating the local area network for a small business requires a fairly straightforward application of hardware, but analysis and predictions of how employees will use the network, the volume of traffic, the future plans for expansion, and the changing business needs, will all impact the final solution possibilities.

This type of problem requires not only the “book smarts” to identify the data required and the constraints of the problem, but also a certain level of creativity to imagine all the possible solutions. The technology that makes up everything from our home security systems to our automobiles, from appliances to personal entertainment devices, have created a demand for individuals skilled in solving this type of problem.

Problems with no defined solution or defined solution strategy

Now things are really getting complicated! Problems with various acceptable solutions, no known solution, or perhaps no solution at all, and a myriad of strategies to find an answer (most yet undiscovered), tend to frustrate us the most. They lack almost all structure so we are left to fend for ourselves in order to create the structure through our own values and priorities. We deal with problems in this category daily, but they often require much more time and effort to solve. We are confronted with questions such as: Where should I live? What career should I train for? What is the cure for cancer? How do we achieve world peace? What is my purpose on this earth?

We also face this type of problem with technology in our lives. What computer system will best fit my needs? How do I select a communication service? How should I, personally, deal with privacy and security? What is my role as a cyber-citizen? Sometimes we can call in an expert; sometimes we just have to solve the problems ourselves.

And of course, in the world of computer science, computer scientists, programmers, and others, work to solve this type of problem as the very core of their profession: How can a network to manage the pharmacy needs of customers across the country or around the world be created? How can the huge amounts of data gathered by national security experts be manipulated and analyzed to protect the lives and property of citizens? What simulation can be programmed to predict, even divert, hurricanes? What can be done to minimize the effects of climate change? Is there other life in the universe? What programming strategy will discover the essence of life reflected in our chromosomes?

The good news is that this type of problem generates fun and creativity in life, and in computer science! The bad news is that this type of problem solving requires effort, knowledge, and a deliberate thought process for most of us. More good news is that problem solving is a skill that can be learned and enhanced.

Get Real

Analyze your ability to solve problems by thinking through the following questions.

  1. Select one area of your life to reflect upon - your hobby, job, family, relationships, or civic role. Which category of problem solving are you most comfortable with in this life role?

    1. Problems with clear cut answers and solutions.

    2. Problems with fairly defined outcomes but many solutions.

    3. Open-ended problems where I can experiment and be creative.

  2. How did you learn the skills to solve this particular type of problem in this part of your life?

    1. My family modeled and reinforced these skills.

    2. My teachers taught these skills.

    3. I learned them through trial and error.

    4. I modeled after others who were successful in this role.

  3. Which problem solving type offers the most difficulties in this life role?

    1. Problems with clear cut answers and solutions.

    2. Problems with fairly defined outcomes but many solutions.

    3. Open-ended problems where I can experiment and be creative.

  4. For each of the following problem solving categories, identify a life role for which this is your best problem solving skill set. Think about your life roles as a parent, a friend, a volunteer, a student, a citizen, or a wage earner.

    1. Problems with clear cut answers and solutions.

    2. Problems with fairly defined outcomes but many solutions.

    3. Open-ended problems where I can experiment and be creative.

  5. Assess your current problem solving skills in regard to technology. In which of these technology areas have you encountered problems for which you have had the problem solving skills to solve?

    1. Configuring technology components such as entertainment systems

    2. Trouble shooting or repairing hardware

    3. Using software such as spreadsheets or audio editing software

    4. Creating your own presence on the Web with a Web page or blog

    5. Expressing creativity with graphic, music or video software

    6. Analyzing problems and writing computer programs to solve them

    7. Other specialty areas

  6. Describe a frustrating technology related problem which you recently encountered. Remember your comments; we will return to this question later.

Your answers will likely be different but here are some examples to get you thinking.

  1. Kim might select her family role to think about these questions and decide she is good at solving problems which have fairly defined answers but multiple solutions strategies.

  2. She learned these skills as a child from her family who often discussed family and world events in terms of the possibilities that existed for solutions.

  3. The problems that are totally open-ended present her with the most difficulties. She likes to find the best solution and it’s difficult to recognize it with these types of problems.

  4. She decides that she is best with problems that have clear-cut answers in her role as an engineer technician. She is also a good problem solver in her cooking hobby because she likes to experiment with recipes clipped from magazines. Kim is best at solving totally open-ended problems in her role as park commissioner on the city council.

  5. Because of her engineering background, she is an excellent problem solver with configuring technology components and trouble shooting hardware. She has never tried to write a computer program so she suspects it might be frustrating to start with.

  6. Recently Kim created a blog to share her ideas and experience from her city council work. She just can’t make it look professional or feel inviting.

Learning Problem solving strategies

Your new understanding of the basic categories of problems faced in modern life is the first step to becoming a better problem solver. Once you recognize the type of problem you are faced with, you can select an approach that will yield the most satisfactory results. Certain solution strategies generally work best with specific types of problems.

Request-Response-Result Strategy

The Request-Response-Result problem solving strategy is likely the one you are quite comfortable with because you practiced it for years in school on those 10-question worksheets and the review problems at the end of the chapter in the chemistry textbook. It’s the strategy that correlates best to the clear-cut category of problems; a request is made, you respond with steps of a rule, and the one and only correct result is achieved. It works perfectly when applied to clear-cut problems.

Bb330921.e80a9fda-dc0f-49ad-9f4c-987ede3cb441(en-US,VS.80).png

This strategy rarely works well when applied to other types of problems. Typically, people who go through life using only this approach to problem solving are said to see life in terms of black or white. Sadly for them, they are unaware of other strategies that work more successfully in solving many problems faced in today’s world.

In the world of technology, individuals don’t encounter too many of these problems for which they must apply the Request-Response-Result strategy because technology has been created to do it very effectively for us. You own a calculator to do math, complete with built-in square root, average, minimum and maximum functions. If you are an engineer, your computer likely has many functions built-in to solve problems of this type that are unique to your work. The same can be said for almost any job. A store attendant uses a computer to automatically calculate a discount, the tax, and the change. Emergency responders use computers that monitor patients and determine medicine dosages. Pilots use devices to determine arrival times based upon navigational data. Your microwave oven is even programmed to pop the corn with the touch of one button and the word processor I use follows rules of grammar to correct my writing!

The Request-Response-Result is the type of problems that computers are very good at solving. A computer can quickly accept a request, apply a response based upon any number of rules, and display the result. Making computer solve these problems is the work of computer programmers who create programs for computers and a wide variety of devices with embedded, or hidden, computer components in appliances, automobiles, and gadgets of all sorts.

Embedded - A hidden component of a larger system such as the computer components in your car.

These programmers design the algorithm for the computer to follow to match the data, the specific conditions, and criteria for a satisfactory result.

Algorithm - A precise and systematic method for solving a problem.

Certainly there are times while working with technology at which we use this problem-solving strategy ourselves. Successfully plugging in the components of your computer is simple if you follow the rule to match the color of the cord with the color of the socket. Installing software is a breeze if you follow the specific rules of the online prompts. Even the construction of a fairly complex PowerPoint presentation has been made easier with wizards that guide you in following the rules.

The IDEAL Problem solving strategy

With a name like IDEAL you would think that this is the best problem solving strategy available. This strategy was developed during the 1960s and 70s and is based on the idea that if you learn the strategy you can apply it to any problem situation on any topic. It is useful in many situations, and it fits well with the type of problem that is has several possible solutions. It lacks the opportunity to redo the effort because there is no built-in step for starting over.

There are 5 steps that represent the acronym IDEAL.

  1. Identify the problem

  2. Define the problem by sorting through the relevant information

  3. Explore the possible options through brainstorming

  4. Act on the strategy selected

  5. Look back and evaluate the results of your actions

This strategy can be applied to many technology problem areas, as well as the problems and challenges of daily life. When you’re called upon to give a presentation to your work group you likely use this approach. In order to select the best format you ask yourself, “What is the goal of this presentation?”, “What constraints do I have in terms of equipment, time, skills?”, and “What is possible – PowerPoint, chalk talk, slide show, or Live Meeting?” You select a format for your presentation based upon your analysis, and after the event, you critique the outcome and add it to your list of experiences to draw upon the next time you make a presentation. This style of problem solving has likely served you very well.

The IDEAL approach can be used in selecting computer components and software, configuring a local network, and writing computer programs to solve simple problems.

The Circle-Back Model

Recent research into problem solving has found that there is considerably more to effectively solving complex problems than just knowing the steps of some particular technique. Many problems must be approached from different angles through a process of trial and error, so the opportunity to evaluate the outcome and try again is critical. The Circle-Back strategy is particularly effective in addressing technology-related problems, especially the complex problems that programmers work on. Creating software to model weather patterns, or analyze economic strategies, or control robots is not nearly as clear cut as the previous problem solving strategies would imply. The Circle-Back strategy is used when “failure is not an option”; when the problem might be worked on indefinitely and it is likely that it could take a great many cycles to arrive at a solution.

Bb330921.fa1f5868-1107-494d-a7f8-5a9c6bd54fc6(en-US,VS.80).png

The Circle-Back method involves 3 basic steps that repeatedly cycle until a solution is achieved. Each major step has many sub-components that are customized to the situation and must be accomplished. The beginning point is to Represent the Problem clearly and fully. This step involves calling up all relevant information that impacts the problem, establishing the goal, and defining a starting point. In the world of technology and software development, this phase can take a long time and require the expertise of many individuals.

The Search for Solutions step includes refining the goal based upon the research and work done in the first step and developing a plan of action to reach the goal.

The step to Implement the Solution is the action phase and it contains the critical activities of executing the plan created in the previous step and evaluating the results of the action. Here is where an important juncture occurs; if the results do not meet the goal, the process is started again back at the first step of Representing the Problem and the Circle-Back process continues until success is achieved.

This approach to problem solving is especially valuable to computer scientists. Many of the problems they work to solve are huge and complex without predefined solution sets. The problems must be broken down into sub-problems. Each of the smaller problems is processed through the 3 basic steps and when all the sub-parts are working, the whole plan can be constructed, implemented, and evaluated.

So how does this work in technology? Imagine the task of creating a video game for the Xbox. Stating the goal is almost more than one can think about. The game must have a great story line, realistic graphics, exciting animation, fast response time, and on and on. How would you even begin? It might be reassuring to know that big production computer games require a team of hundreds of individuals. There are artists, writers, programmers, audio specialist, musicians, marketers, testers and many more. Each specialty team is responsible for its own goals and problem solving cycles. The Circle-Back approach is especially effective in complex, open-ended problems that require as much creativity as they do analytical problem solving skills.

Get Real

Analyze these technology situations. Select the solution strategy you would use to solve the problem.

  1. The network is infected with a virus and needs to be cleared.

    1. Request-Response-Result

    2. IDEAL

    3. Circle-Back

  2. Your ISP (Internet Service Provider) notifies you that your mailbox has exceeded its limit.

    1. Request-Response-Result

    2. IDEAL

    3. Circle-Back

  3. Your engineering team is assigned to reprogram the assembly line robots at the local automotive plant.

    1. Request-Response-Result

    2. IDEAL

    3. Circle-Back

  4. Your supervisor asks you to analyze recent sales data in a graphic format for the department meeting.

    1. Request-Response-Result

    2. IDEAL

    3. Circle-Back

  5. Your company receives the contract to customizing the medial records software for the nearby hospital.

    1. Request-Response-Result

    2. IDEAL

    3. Circle-back

Answers:

  1. B; Ridding a system of a virus fits the IDEAL strategy because it has only one acceptable solution but many possibilities in terms of the tools and processes to use, as well as steps to insure future security.

  2. A; Clearing an email account is a clear-cut problem with the required response of emptying one’s mailbox of unneeded files. It fits the Request-Response-Result strategy because there is only one outcome and one solution.

  3. C; Designing robotic systems is very complex with many possible solutions that fit the Circle-Back strategy. Engineers will break the problem into small sub-problems establishing sub-goals, creating solutions, testing, and evaluating, and likely revising many times before constructing the entire system.

  4. B; Designing the graphics to represent given data fits the IDEAL strategy because the outcome is fairly defined with several solutions to choose from for this single situation.

  5. C; Customizing any system requires multiple cycles through the Circle-Back process through thorough analysis of the situation, careful determination of the goals and sub-goals, implementation of a detailed plan, and evaluation of its effectiveness.

Strategy + Knowledge = Effective Problem Solving

Because of recent research, we now recognize that understanding and applying a strategy to a problem isn’t enough to effectively solve the problem. Researchers have found that there are many other factors that build good problem solving skills. In addition to selecting an appropriate strategy to fit the problem, you must have a deep base of knowledge in the subject area of the problem. Additionally, individuals need practice with a strategy within the context of real-world problems. This new thinking on the importance of having a solid base of knowledge in a particular subject has changed the way educators and trainers teach problem solving strategies.

This must seem like a vicious circle; how can you become a good problem solver without knowledge and experience, both which require problem solving skills to achieve? My advice is to take it slow and easy, learn as you go, call for help when you need it, and continually try to piece together what you already know about the topic with what you are experiencing in a current problem.

Self-Help Strategies

  1. Start with a realistic assessment of what you know and the experiences that can be applied.

  2. Analyze the situation – break it into smaller challenges

  3. Draw upon your experiences with similar scenarios

  4. Figure out what you need to know and where to find it

  5. Come up with a plan

  6. Implement it

  7. Test it

  8. Repeat as necessary

  9. Evaluate the process and add to your experiences account

Try it out

Imagine that you are having difficulties with the wireless network at home. It won’t connect each family member’s computer to the printer in the home office. In a panicked attempt to solve the problem, you unplugged everything, find the printer software, reinstalled it on every computer, hook each computer directly to the printer in hopes of helping the computers “find it”, and eventually give up and call upon the fifteen year-old living next door.

If you had the opportunity to apply strategies learned in this lesson, what might you have done differently?

You would likely recognize that this is a problem that has only one acceptable outcome but perhaps there are several actions that can be tried to correct the problem. If you could redo the situation with the problem solving strategies you just learned, you might have called in the fifteen year old first (just kidding!).

Likely you would have used the Circle-Back method with more time spent on the first step of assessing the problem and recalling other experiences you have had with the home network. You might have begun the debugging process by breaking it into smaller pieces – checking if each computer had printer drivers, checking the wireless signal strength, and the printer itself. You would have recalled what you know about networks in general. Perhaps you would have checked the computer manual to discover where network settings are controlled, you might have searched for pertinent information in the printer manual, and maybe even checked online help forums. You probably would have telephoned a friend to gather more insights from her experiences. After learning all you could, and thinking about past experiences with your wireless network, you could formulate a plan of possible actions, execute each action, evaluate the results of each action, and try other strategies until the problem was solved or until you decided to call in an expert.

Debugging - A method of discovering the source of errors causing problems in a system or process.

Certainly following a problem solving strategy doesn’t guarantee successful results every time. That is why the Circle-Back strategy is effective; it’s not an all-or-nothing scenario, and it offers opportunities for organized skill development both in the context of the specific problem at hand, and in problem solving in general.

Get Real

Look back to the technology problem you described for question 6 in the first “Get Real” section of this lesson– Describe a frustrating technology related problem which you recently encountered. Solve it again in your imagination by using the strategies from this lesson to identify how you might have arrived at a better solution with less frustration.

In hindsight, what learning occurred in that experience that you can apply to a future situation?

Your answers will likely be different but here is what Kim might have said:

Recently Kim created a blog to share her ideas and experiences from her city council work. She just can’t make it look professional or feel inviting.

Her revised strategy:

  1. Kim knows nothing about blogs but can draw upon her experiences writing council reports for the mayor.

  2. The task can be broken into smaller problems: understanding how blogs work, creating an attractive online persona, and developing a journal writing style.

  3. In college she was a reporter for the school newspaper which offered a similar experience.

  4. She decides she needs to learn about blogs, so she will visit several and ask a blogging friend for advice.

  5. Her plan includes researching blog sites for helpful hints, finding a site that offers an appealing interface, and sharing her entries with family and friends before posting.

    Interface - The medium through which users interact with the computer. It might include button and menus.

  6. She plans to create a time schedule with several sub-goals to make the project manageable.

  7. After implementing her plan she will test it by seeking input from citizens, evaluating the impact of her ideas, and then continue to grow and mature in the world of blogs by modifying her work as indicated from the feedback and self evaluations.

In hindsight, Kim knows that this frustrating experience taught her that time spent gaining knowledge and looking at good examples is time well spent and that writing is a skill which can be transferred to new technologies.

Formalizing a plan of attack

All of us have a whole collection of rules we recite to help us with our grammar or to calculate the tip amount. These general “rules of thumb” are called heuristics. They provide a general plan for solving problems. The strategies for solving problems described earlier in this lesson fall into the category of heuristics; they offer general guidance for our actions. Computer programmers use problem solving strategies – or heuristics – to arrive at the general, overall, plain language solutions to solve problems using computers. However, computers cannot interpret our normal language; they do not make assumptions, draw conclusions, or interpret our meaning. Because computers cannot read our minds (yet!), the instructions they follow must be extremely detailed and presented in a logical order that leaves nothing to guess work. This begins the action phase – writing software – for solving problems using computers.

Heuristic - A general guideline or rule-of-thumb for solving problems.

Algorithms – The Recipe in Computer Science

Writing software, even simple programs, requires a detailed series of steps for the computer to follow. Computer programmers, sometimes called “software developers”, begin by creating a sequential list of tasks which the computer must perform in order to arrive at a solution. This task list must be translated into a specific language which the computer can understand. This list of steps is called an algorithm. Don’t let the word scare you. Algorithm is just a technical term for “recipe.” Creating an algorithm requires critical thinking about the problem plus careful analysis of the situation, and goes hand-in-hand with problem solving strategies.

Algorithm - A precise and systematic method for solving a problem.

To think about the detailed requirements of a computer program try this: Write out the instructions for making your favorite sandwich. Now, pretend you are a robot that has no history of food preparation, and no experience with making a sandwich. Envision what happens when you execute the step to “Top with brown mustard and slice.” Will the robot know you mean to open the jar of mustard, scoop 1 teaspoon from the jar, spread it evenly over the pastrami, top with another slice of bread (ideally taken from the wrapper!), and use a knife to cut from corner to corner? It’s likely that the assumptions another human would make about creating a sandwich would be skipped by the robot and you would end up with the jar of mustard sitting on top of the meat and a big mess when an attempt to “slice” occurs.

Execute - To carry out a specific instruction step such as a command in a computer program.

Writing a computer program involves a detailed algorithm containing the exact steps to execute in order to arrive at the desired outcome. Let’s look at the algorithm for a task a computer could be programmed to complete – calculating the total cost of the pizza you ordered.

Inputs (Ingredients):

  • Need to know the size of the pizza ordered

  • Need to know the price list of the restaurant

  • Need to know the number of extra toppings ordered

Algorithm (Recipe):

  • Multiply the number of extras by .75

  • Add the cost of the extras to the base price

  • Multiply the new subtotal by .06 for sales tax

  • Add the tax to the subtotal

  • Add a delivery charge of 3.00

  • Print all charges and the total in itemized list

After this planning step, the plain language instructions of the algorithm are translated into a programming language. There are many languages that programmers use to communicate with computers. Perhaps you have heard of Visual Basic, C#, or Java. In later lessons we will explore algorithms to describe various tasks computers are often expected to accomplish and how languages are used to describe specific tasks to a computer. Learning a computer language is not too unlike learning another speaking language such as French or Spanish. You decide what you want to say and then select the words to convey that meaning. But, more about that later…

Get Real

Write the directions for making a pastrami sandwich as an algorithm. Be as specific as possible.

Your answer might be a bit different but this is how I make a pastrami sandwich.

Inputs (Ingredients):

  • Bread

  • Pastrami

  • Mustard

Algorithm (Recipe):

  • Locate the loaf of bread on the counter

  • Open the package of bread at one end

  • Remove 2 slices

  • From the refrigerator, get the package of pastrami and the jar of mustard

  • Open the package of pastrami

  • Place 2 slices on the face of one piece of bread

  • Open the jar of mustard

  • Using a knife, scoop out an amount about the size of a marble

  • Use the knife to spread it evenly on the top surface of the pastrami

  • Place the second slice of bread on top of the pastrami and mustard taking care to line up the edges

  • Use the knife to cut the sandwich in half diagonally from the top left corner to the bottom right

  • Place the sandwich on a plate, carry to a comfortable location, and enjoy!

Summary

Life presents us with problems every day, and thank goodness, problem solving is a learned skill. To become more effective, it is helpful to analyze the type of problem being confronted and select a strategy that fits the specific problem type. Problems can be categorized as:

  • problems with clear-cut answers and solutions

  • problems with a fairly defined outcome and many possible solutions

  • problems with no defined outcome or defined solution strategy

Solution strategies can take the form of:

  • Request-Response-Result

  • IDEAL

  • Circle-Back

Any solution strategy is most effective if it fits the needs of the problem presented. In addition to being able to analyze the type of problems being confronted and fitting an appropriate strategy to it, gathering knowledge of the topic is a vital element for success.

Technology helps us solve trivial, or clear-cut problems, as well as more complex problems that, until recently, were totally unsolvable. Computer scientists use heuristics to develop algorithms as a critical step in the problem solving process because computers can only follow very specific directions. A heuristic is a general guideline or “rule-of-thumb” for solving a problem. An algorithm is a detailed instruction list for accomplishing a task which can be translated into a specific computer language.

Join me in our next lesson when we further explore how computers can solve problems by modeling the real world and we delve into some of the inside details of computer science and programming.