Concepts / Understanding Algorithm Development

Understanding Algorithm Development

Algorithm development is the deliberate process of turning a programming problem into precise instructions.

  • Programming

Where a Program Really Begins

It is tempting to imagine that a computer program simply appears from a command, as if the computer already knows what to do. That picture hides the real work. A program begins with a problem, and that problem has to be considered carefully before anything can be given to a computer. Algorithm development is the deliberate process of turning a programming problem into precise instructions. This article follows that process from the first look at a problem to the exact instructions a computer can follow, and it explains why the process matters so much.

What do you think happens?

When you hand a computer a programming problem, what happens first?

  • The computer works out a solution by itself

  • The programmer must first develop an algorithm and then express it as precise instructions

Reveal answer
Answer:

The programmer must first develop an algorithm and then express it as precise instructions.

A program does not begin with a computer magically knowing what to do. It begins with a problem that must be considered carefully. The programmer develops an algorithm and then expresses the required instructions in a form the computer can follow.

From Problem to Instructions

Algorithm development connects the original problem with the exact instructions given to the computer. The steps can be traced in order. First, the problem is examined carefully. Second, the programmer develops an algorithm, which is the reasoning about how the work should be done. Third, that algorithm is expressed as instructions in a form the computer can follow. Finally, the computer carries out the program that results.

Programming problemCareful considerationAlgorithmPrecise instructionsProgram executed bycomputerexamineddevelopedexpressed asfollowed exactly
What stages does a programmer move through, in order, to get from a programming problem to instructions a computer can follow?

Notice that the computer does not take over the first two stages. The reasoning about the problem belongs to the programmer. The computer's role is to follow the program that results from that reasoning. This is why algorithm development is central to programming: if the reasoning is incomplete, the instructions that come out of it will be incomplete too.

Why Computers Need Precise Instructions

A computer follows the program exactly as written. That means the programmer must account for details that a person might fill in without noticing. When you give a friend an instruction, they often guess the missing parts from common sense. A computer does not supply those missing parts on its own. Programming therefore requires a way of thinking that focuses on precision rather than guesswork.

Cook riceMeasure 1 cup riceAmount not statedAdd 2 cups waterTime not statedSimmer for 15 minutesleaves outleaves outthenthen
How does the same task look when its instructions leave details out compared with when every detail is specified?
Worked example

Tracing a Vague Instruction

A cook-by-instruction task reads: cook the rice. Consider what a precise follower would need in order to carry it out.

  1. 1
    Identify what is missing

    The instruction names an action but not the amount of rice, the amount of water, or how long to cook it.

  2. 2
    Supply each missing detail

    Specifying one cup of rice, two cups of water, and fifteen minutes of simmering removes every open question.

  3. 3
    Check the order

    The fully specified steps happen in a clear sequence, so each action can be carried out without guessing what comes next.

Result

A vague instruction forces the follower to guess. A precise instruction with every detail stated can be carried out exactly as written.

Two Activities to Keep Separate

Two activities are easy to confuse. The first is reasoning about the problem and developing an algorithm. The second is writing a program containing exact instructions. Beginners often rush into the second activity before finishing the first. Keeping them separate helps you notice when a problem is still unclear.

  • Common mistake

    Treating the computer as the place where the thinking happens

    Why it fails

    The computer follows the program that results from the reasoning. It does not replace the reasoning about the problem.

    Do this instead

    Work out the algorithm on paper or in plain language before expressing it as instructions.

  • Common mistake

    Assuming a gap will be handled automatically

    What it looks like

    Using the vague instruction cook the rice and expecting the right amount of water to appear.

    Why it fails

    A computer follows the program exactly as written, so details left out are not supplied for it.

    Do this instead

    List every detail the instructions need, including the cases that must be handled.

  • Common mistake

    Stopping at the first sketch of a solution without checking whether every detail has been stated

Learning to Think in a Programming Way

The difficulty of programming is not a mystery that only a few people can overcome. The essential change is learning to think in a way that suits programming. That means becoming willing to examine a task closely, to account for its details, and to express the intended work precisely enough for the computer to follow. This mindset supports problem solving well beyond any single program, because it turns a loose goal into a set of explicit steps.

QuestionInformal problem solvingProgramming-oriented thinking
How is the task approached?Often from a general sense of what is neededBy examining the task closely and listing its details
What happens to missing details?A person fills them in using common senseThey must be accounted for and stated precisely
What is the expected result?A good enough outcome that a listener can interpretInstructions exact enough for the computer to follow

Contrasting everyday problem solving with the programming-oriented habit described in the source

Practice, Techniques, and Guidelines

Algorithm development is a learnable skill. Skill grows with practice, so finding it hard at the beginning does not mean improvement is impossible. Techniques and guidelines can also help programmers approach algorithm development more deliberately, giving structure to the examining, detailing, and precise expression that the work requires.

Trying the Process on a Familiar Task

EASY

Choose a simple everyday task, such as making a cup of tea. Write down the instruction you would normally give to someone else, then rewrite it so that every detail is stated: quantities, times, and what to do in each case. Compare the two versions and note which details you had been leaving out.

Hints
  • Ask what amount, time, or choice a person would silently assume.
  • Check whether each step says exactly what to do next, without relying on common sense.

Key Takeaways

  • Algorithm development is the deliberate process of turning a programming problem into precise instructions, and it connects the original problem with the exact instructions a computer follows.
  • A computer follows the program exactly as written, so the programmer must account for every detail and cannot rely on the computer to fill gaps.
  • Programming requires a way of thinking that focuses on precision: examining a task closely, accounting for its details, and expressing it precisely.
  • Algorithm development is a learnable skill that grows through practice, and techniques and guidelines can help programmers approach it more deliberately.