The developer must create an algorithm that will solve the client's problem.
The client is responsible for creating a description of the problem, but this is often the weakest part of the process.
We can use an everyday example to demonstrate a high-level algorithm.
Problem: I need a send a birthday card to my brother, Mark. I prefer to buy a card rather than make one myself.
Using fun and well–known puzzles to gradually introduce different aspects of algorithms in mathematics and computing.
Backhouse presents you with a readable, entertaining, and energetic book that will motivate and challenge you to open your mind to the algorithmic nature of problem solving.
It's quite common for a problem description to suffer from one or more of the following types of defects: (1) the description relies on unstated assumptions, (2) the description is ambiguous, (3) the description is incomplete, or (4) the description has internal contradictions.
These defects are seldom due to carelessness by the client.
Learn a basic process for developing a solution to a problem. I could drive to her house and thank her in person.
Nothing in this chapter is unique to using a computer to solve a problem. In fact, there are many ways I could thank her, but that's not the point.