Send Close Add comments: (status displays here)
Got it!  This site "www.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.
Errors and changes
by RS  admin@robinsnyder.com : 1024 x 640


1. Errors and changes
Obzerved and desired behaviorThe 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
Obzerved and desired behaviorAn 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. Kay uses the example of solving problems using polar coordinates rather than Cartesian coordinates. Each works better in certain circumstances.

Information sign More: Alan Kay

4. Warnings
A warning is similar to an error except that it is not considered as important an issue as an error.

5. Error types
There are many types of errors.

6. Three errors puzzle
Errors
What is not there may be important?

Consider this self-referential sentence that has real issues. First, find them. Then ask yourself the following question. How easy is it to fix them?

Information sign More: Three errors puzzle

7. Logical errors
Logical errors can be very difficult to detect because they are based on incorrect assumptions.

Information sign More: Logical errors

8. Wording
Rather than using the text "Consider the following code:" and asking the student to find an error, consider using the following text. 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.

Information sign More: Verification vs. validation

10. Program testing
Program testing can be used to show the presence of bugs, but never to show their absence! Edsger Dijkstra (computer scientist)

Dahl, O., Dijkstra, E., & Hoare, C. (1972). Structured programming. New York: Academic Press., p. 6.

Dijkstra has said that if debugging is the process of removing bugs from a program, then programming must be the process of putting them in.

Information sign More: Edsger Dijkstra

11. Change management
A "change management" system allows tracking changes to the code of software systems.

A change management system is sometimes called a "version control" system.

12. Regression testing
A "regression testing" system allows tracking changes to the output of software systems.

Information sign More: Regression testing

13. Errors
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)

Information sign More: Tony Hoare

14. End of page

by RS  admin@robinsnyder.com : 1024 x 640