Problem-Solving Strategies

Problem-Solving Strategies

A problem-solving strategy is a systematic approach used to understand a problem, explore possible solutions, and arrive at a suitable solution.

In computer science, these strategies help us move from:

Problem → Understanding → Solution approach → Algorithm → Program

Let us understand each strategy with a simple real-life example and its connection to computing.


1. Trial and Error

What does it mean?

In trial and error, we try one possible solution. If it does not work, we try another one.

It is useful when we don't know the exact solution or when the number of possibilities is relatively small.

Real-life example: Unlocking a combination lock

Suppose you forgot a 3-digit combination.

You may try:

123 → No
124 → No
125 → No
...
527 → Yes

You continue trying until you find the correct combination.

In programming

Trial and error can be used when:

  • testing different approaches,
  • debugging,
  • experimenting with parameters,
  • finding a solution among a small number of possibilities.

Key idea

Try → Check → Learn → Try again


2. Heuristics

What does it mean?

A heuristic is a shortcut or practical rule used to find a good solution quickly.

It does not guarantee the best solution.

Real-life example: Choosing a supermarket queue

You see:

Queue A → 8 people
Queue B → 5 people
Queue C → 2 people

You choose Queue C.

You assume:

Fewer people → less waiting.

But this may not always be true. The two people in Queue C might have very large shopping carts!

In computing

Heuristics are widely used when searching all possibilities would take too much time.

Examples include:

  • route finding,
  • game playing,
  • scheduling,
  • optimization,
  • AI search.

Key idea

Don't examine everything; examine the most promising options first.


3. Means-End Analysis

This is a very important strategy for algorithmic thinking.

What does it mean?

We compare:

Where am I now?

with

Where do I want to be?

Then we identify what needs to change to reduce the difference.

Real-life example: Preparing for an examination

Current state:

10 chapters remaining

Goal:

Complete all 10 chapters before the examination

You divide the difference into smaller tasks:

10 chapters
     ↓
2 chapters/day
     ↓
Study Chapter 1
Study Chapter 2
...
     ↓
Complete syllabus

In programming

Suppose you want to transform:

Unsorted list

into:

Sorted list

You identify what is preventing the current state from becoming the desired state and take steps to reduce that difference.

Key idea

Compare the current state with the goal and take actions that reduce the difference.


4. Backtracking

What does it mean?

Backtracking means:

Try a path. If it fails, go back to the previous decision and try another path.

Real-life example: Finding your way through a maze

Imagine:

Start
  ↓
Path A
  ↓
Path B
  ↓
Dead end

You return to the previous point and try another path.

        Path A
       ↙      ↘
    Dead end   Path C
                 ↓
                Exit

In computer science

Backtracking is used in problems such as:

  • maze solving,
  • N-Queens,
  • Sudoku,
  • generating permutations,
  • constraint satisfaction.

Simple algorithmic idea

Choose an option
       ↓
Does it work?
   ↙       ↘
 Yes        No
 ↓           ↓
Continue    Backtrack
             ↓
       Try another option

Key idea

Explore → Fail → Undo → Try another choice


5. Divide and Conquer

What does it mean?

A large problem is divided into smaller sub-problems.

Each sub-problem is solved separately, and the solutions are combined.

Real-life example: Searching for a document

Suppose you have 10,000 documents.

Instead of examining all documents together, divide them:

10,000 documents
       ↓
5,000 + 5,000
       ↓
2,500 + 2,500 + ...

You progressively reduce the amount of information that needs to be handled at one time.

Famous programming examples

Merge Sort is a classic divide-and-conquer algorithm.

[38, 12, 45, 7, 23, 19]

             ↓ Divide

[38, 12, 45]     [7, 23, 19]

       ↓               ↓

  Smaller parts    Smaller parts

       ↓               ↓

     Sort              Sort

             ↓ Combine

        Sorted list

Other examples

  • Merge Sort
  • Quick Sort
  • Binary Search

Key idea

Divide → Solve smaller problems → Combine


6. Algorithmic Approach

What does it mean?

An algorithmic approach solves a problem using a well-defined sequence of steps.

Unlike trial and error or intuition, the steps are explicitly specified.

Real-life example: Making tea

You can describe the process as:

1. Boil water
2. Add tea powder
3. Add milk
4. Add sugar
5. Boil for a few minutes
6. Filter
7. Serve

This is an algorithm because it provides a sequence of steps for achieving the desired result.

Programming example

Problem:

Find the largest number in an array.

Algorithm:

1. Take the first number as largest.
2. Compare it with the next number.
3. If the next number is larger, update largest.
4. Continue until all numbers are checked.
5. Output largest.

Key idea

Clearly define the steps required to transform input into output.


7. Brainstorming

What does it mean?

Brainstorming is about generating many possible ideas before deciding which one is best.

The important rule is:

Generate ideas first; evaluate them later.

Real-life example

Problem:

How can we reduce traffic congestion near our college?

Students might suggest:

  • carpooling,
  • shuttle buses,
  • staggered class timings,
  • bicycle lanes,
  • additional parking,
  • traffic signals,
  • one-way roads,
  • ride sharing.

At the brainstorming stage, we don't immediately reject ideas.

In computing

Brainstorming is particularly useful during:

  • problem definition,
  • system design,
  • software design,
  • project planning,
  • finding alternative algorithms.

Key idea

First generate possibilities; then analyze and select the best ones.


8. Analogy

What does it mean?

Analogy means solving a new problem by recognizing its similarity to a problem we have already solved.

Real-life example

Suppose you learned how to operate one brand of washing machine.

You encounter another washing machine with similar controls.

You may think:

“The operation should be similar.”

You use your previous knowledge as a starting point.

Programming example

Suppose you know how to search an element in an array.

Now you need to search an element in a sorted array.

You can ask:

“Is this similar to a problem I already know?”

You may recognize that Binary Search can solve the new problem efficiently because the sorted structure provides additional information.

Key idea

Recognize similarity → Reuse previous knowledge → Adapt it to the new problem


Comparing the Strategies

StrategyBasic ideaTypical thinking
Trial and ErrorTry possibilities until one works“Let me try this.”
HeuristicsUse a shortcut or rule“This looks promising.”
Means-End AnalysisReduce the gap between current and goal states“What is preventing me from reaching the goal?”
BacktrackingUndo a failed choice and try another“This path doesn't work; go back.”
Divide and ConquerBreak a large problem into smaller problems“Let's solve smaller pieces.”
Algorithmic ApproachFollow well-defined steps“What exact sequence of steps will solve it?”
BrainstormingGenerate many possible solutions“What are all the possibilities?”
AnalogyUse a previous solution as a starting point“Have I solved something similar?”

One Problem Can Use Multiple Strategies

This is a very important point for students.

Consider:

You need to find the shortest route from your college to the railway station.

You could use several strategies:

Brainstorming

List possible routes.

Route A
Route B
Route C
Route D

Heuristic

Prefer routes that appear shorter or less congested.

Means-End Analysis

Think:

Current location → Intermediate location → Destination

Backtracking

If a road is blocked:

Try Route A
   ↓
Blocked
   ↓
Go back
   ↓
Try Route B

Algorithmic approach

Use a formal shortest-path algorithm such as Dijkstra's algorithm or A*.

Analogy

If you have previously solved a similar navigation problem, reuse that knowledge.

So:

Problem-solving strategies are not isolated techniques. Several strategies can be combined to solve one problem.


How This Connects to Algorithmic Thinking

I would summarize the relationship  like this:

                 PROBLEM
                    ↓
          Understand the problem
                    ↓
       Choose a problem-solving strategy
                    ↓
          Develop a solution idea
                    ↓
               ALGORITHM
                    ↓
                PROGRAM
                    ↓
             TEST & EVALUATE

The choice of strategy is important because different problems have different structures.

For example:

  • Large problem with repetitive structure → Divide and Conquer
  • Many possible paths → Backtracking
  • No obvious exact solution → Heuristic
  • Well-defined mathematical procedure → Algorithmic approach
  • Many possible ideas → Brainstorming
  • Similar problem already solved → Analogy
  • Unknown solution with limited possibilities → Trial and Error
  • Clear goal but large gap from current state → Means-End Analysis

Summary

Problem solving is not just about knowing algorithms. It is about knowing how to think about a problem and choosing an appropriate strategy before designing the algorithm.

That is really the foundation of algorithmic thinking: understand → decompose → explore → choose → design → verify.


Importance of Problem-Solving Strategies:

  • Systematic Approach: They provide a structured way to approach challenges, making it easier to find effective solutions.
  • Efficiency: By using an appropriate strategy, you can solve problems more quickly and with less effort.
  • Adaptability: Different strategies can be applied to different types of problems, making them versatile tools in various situations.

In summary, problem-solving strategies are essential techniques that help you tackle challenges efficiently and effectively by offering various approaches tailored to the nature of the problem at hand.

Comments

Popular posts from this blog

Algorithmic Thinking with Python UCEST 105- KTU First Semester BTech Course 2024 scheme notes pdf - Dr Binu V P 9847390760

Lab Experiments and Solutions - Algorithmic thinking with Python KTU S1 2024 scheme

PadLocking