Authors:
Wally Roth
(wlroth@tayloru.edu)Suggested Courses:
Computer Science, Intro to Engr
Level:
Freshman
I. Narrative
You are a college engineering student who is experimenting
with a new PDA (hand-held computer: Personal Digital Assistant)
you have just purchased from a reputable manufacturer, ARC.1
The machine has been bundled with a variation of a popular spreadsheet
(SS) product custom-built to run in a small amount of ROM (firmware)
provided in the unit. (The SS product comes in several forms
called X-lacks, X-LINT, Quad-rope-O, or 3-2-1-boom.) In experimenting
with this SS you find a simple calculation such as $3 + 1 cent
is displayed as 3.00 on the LCD panel.
II. Engineering Questions for Discussion and Suggested Answers
1. Is this reasonable? How would you verify this claim?
Is it likely this is the only calculation which displays an
incorrect result?
In the opinion of most people, this is not a reasonable output
(especially if you are handling your finances). It is uncertain
whether is is the only calculation which displays an incorrect
result, and further testing should be done.
2. What possible explanation(s) could there be for this? Propose
an experiment to test/verify your suspicions as to the source/cause
of this problem.
This is up to the creativity of the class. A brainstorming session
should be held. During this brainstorming session, students should
be encouraged to supply as many possibilities as possible (no
matter how unlikely). One possibility may be that the calculation
is performed correctly, but the display subroutine is malfunctioning.
This could be tested by adding 3 + .01 +.01. If the result is
3.02 then the addition is correct and the display is simply off.
Later you conclude the display is indeed incorrect, but the internal representation of $3.01 is as exact as is possible using binary floating-point representations in any format. Nevertheless,
the displayed result on the LCD screen is indeed 3.00.
3. Does this resolve the problem? Does this eliminate (or amplify)
any problems of floating-point representation of dollar and cent
results?
You soon discover all calculations of the form X + .01 for any
integer X will produce a representation on the display of X.00.
4. What does this tell you as a young (or old) engineer/numerical
analyst?
Finally, you call the manufacturer of the machine (PDA)1,
not being sure whether this is a hardware bug, a software bug,
or an error in your interpretation.
5. What possible responses would you speculate they might give
to your inquiry (and possible demand for a replacement PDA)?
Discuss as a class putting suggestions collected on the board
or list on your own. Goal:. Come up with at least five (5) of
them.
III. Questions on Ethics and Professionalism
Following are several possible vendor responses, at least one
of which has occurred in a documented recent case.
A. "We don't believe you have never heard about this problem."
B. "We didn't know about this problem."
C. "We know about it, but we don't plan to do anything about it as this model/release will soon be discontinued."
spreadsheet ) design problem."
E. "We know about it and are working on resolving it."
F. "We know about it, and it will be fixed/resolved in the next version/release of the product."
G. "We will/will not replace the product at your request."
Discuss the ethics of each of these responses.
IV. Suggested Ethical Solution
Although this is a fictional case, problems like this
do occur. The most likely explanation is that the display is
not reflecting accurately (in decimal) the internal binary representation.
Such errors can always occur when adding cents or dimes, because
neither can be represented exactly as a binary number to any number
of bits. However, displays should always be consistent to the
nearest displayed digit, and a remark such as F above is never
adequate, from either a liability standpoint or from an ethical
perspective.
None of these responses is really satisfactory. Even offering
to replace the product without correcting the problem is unsatisfactory.
Students should be able to propose several more satisfactory
responses than any offered in A-G. Some examples: posting on
the internet, creating a special customer BB, sending announcements
on postcards to customers. Many creative solutions can be provided,
and students should be encouraged to brainstorm and come up with
as many solutions to the problem as possible-everything from a
product recall to a public announcement of the problem. When
customers are alerted to the problem, they will either not use
the product when that second decimal spot is critical, or at least
be aware of the problem
Notes:
1. The company's name is ARC (A Reliable Computer),
but a cynical friend has called them Always Really Close computers.
Their advertising slogan is "ARC: Just the spark to get
the job done." Because of the complaints from buyers, they
did consider renaming their company CARP, Computer Are Rarely
Precise!
Although fictionalized, similar situations have been experienced on two occasions by the problem developers in the six months prior to the writing of this case. One occurred with a SS and the other was in the calculator mode of a personal computer operating system.