Problem-Solving Strategies Defined
A problem exists when there is a gap between where you are and where you want to be, and the way across isn't obvious. If the route is obvious, you have a task, not a problem.
A problem-solving strategy is a general method for closing that gap — one that applies across many different problems rather than just one.
Well-defined and ill-defined problems
This distinction appears in the KTU classroom exercises for this module, so it's worth getting precise.
| Well-defined | Ill-defined | |
|---|---|---|
| Starting point | Clear | Vague |
| Goal | Clear and testable | Open to interpretation |
| Allowed moves | Specified | Unclear |
| "Is it solved?" | Objectively checkable | A matter of judgement |
Well-defined: "Find the largest of these 50 numbers." You know what you have, what you want, and you can verify the answer.
Ill-defined: "Improve the college website." Improve how? For whom? When is it done?
Computers require well-defined problems. A large part of this course is learning to turn an ill-defined problem into a well-defined one. That translation is the actual skill; the coding afterwards is comparatively mechanical.
Why several strategies, not one
Each strategy suits a different shape of problem:
- Small search space, no information to guide you → trial and error
- Too large to search exhaustively, need a good-enough answer → heuristics
- A clear goal, and you can measure your distance from it → means-ends analysis
- The end state is known and the start is not → working backward
A student who only knows one strategy applies it everywhere, including where it cannot work. Recognising which strategy a problem calls for is what's being tested — often more than the mechanics of any single one.
Algorithms and heuristics
Two words used loosely in conversation but precisely here:
- An algorithm is a finite, unambiguous sequence of steps that is guaranteed to produce the correct result.
- A heuristic is a rule of thumb that usually works quickly but carries no guarantee.
The trade-off is certainty against speed. Algorithms give you the right answer eventually; heuristics give you a probably-good answer now.