Computer Science and Programming is all about solving problems. Whether it is finding out why an Operating System has crashed, or why a website is giving you to wrong data, we use the basic principles of Computing to identify and define the scope of the problem.
What is meant by a problem?
A problem is a given where it is not immediately obvious how to reach the goal.
What is meant by problem solving?
Problem solving involves moving from an initial state, the given, to a desired state, the goal, using a set of resources, possibly constrained, to help reach the goal.
What does it mean to “Understand A Problem”?
Understanding a problem means turning an ill-defined problem into a well-defined problem stated clearly and unambiguously.
Lets say we have a problem, in that we are trying to make a Bacon sandwich. In order to define a problem, we need the following information:
A Clearly Defined Initial Situation
Your initial problem is well understood. You know exactly what you have to accomplish. You know any potential inputs to the system and the final output. So we have some ingredients, and we want to stick them together in the right order to make a Bacon sandwich.
A Clearly Defined Goal
You know exactly what you are trying to achieve. We want to end up with a yummy Bacon sandwich.
A Clearly Defined set of resources
You know tools (hardware and software) that are available to you to accomplish this task. This can also take the form of software inputs/ data files. So we have some bread, some Bacon, some oil, some Brown sauce.
Any problems that you know might affect the final solution. For example if your problem is to develop a website – you will need to know which browsers you will need to support. Well, we don't have an oven ,so we're going to have to use a grill.
Who is responsible for particular sections of the problem. You are responsible for putting the sandwich together, the chef is responsible for grilling the bacon.
Now Take a look at this clip from Apollo 13 and see if you can identify the situation? The Goal, the resources and any constraints.
Later on in these blog posts we'll look at the answers..