Got it! This site "robinsnyder.com" uses cookies. You consent to this by clicking on "Got it!" or by continuing to use this website. Note: This appears on each machine/browser from which this site is accessed.
The definition of an error and a desired change is very similar.
Both an error and a change are a difference between the observed behavior and the expected or desired behavior.
To identify an error requires a specification and one should not use the operational code (in programming, or reality in general) as a specification.
2. Errors
An error and a change are both defined as a difference between the observed behavior and the expected or desired behavior.
One should be able to see that the difference between an "error" and a "change" is a matter of perspective.
To identify an error requires a specification and one should not use the operational code as a specification.
3. Perspective
Alan Kay (American computer scientist) . Talk at Creative Think seminar, 20 July 1982.
A change in perspective is worth 80 IQ points.
Perspective is worth 80 IQ points.
Point of view is worth 80 IQ points
Kay uses the example of solving problems using polar coordinates rather than Cartesian coordinates. Each works better in certain circumstances.
Rather than using the text "Consider the following code:" and asking the student to find an error, consider using the following text.
"Consider the following code that computes the maximum of the values in array variable called values and stores that maximum value in the variable called max ..."
Then ask about a possible error. Note that without a specification one may be able to identify some obvious and possible errors (e.g., array index out of bound) in the code but not how to resolve or fix that error.
9. Testing
Testing is the process of finding differences between the expected behavior of the desired system and the observed behavior of the existing system. That is, testing is insuring that what you expect is what you get. You would like to find and fix these differences before your customers find them.
Those differences could be "errors" to be eliminated or "changes" to be made.
I was eventually persuaded of the need to design programming notations so as to maximize the number of errors which cannot be made, or if made, can be reliably detected at compile time.Tony Hoare (British computer scientist)