RE: Debugging and science (was PPIG discuss: Searching for searchstrategies)

2002-07-08 Thread Russel Winder

I would have thought it patently obvious that debugging a program is
directly analogous to scientific experimentation:

1. Create an hypothesis about the bug
2. Design a data/test framework in which to extract information
3. Execute constructed test and obtain data
4. Relate new data to hypothesis to create information (or not)
5. Decide whether bug is fixed
6. Goto 1 if necessary.

Unit test approaches (see for example Extreme Programming) almost
certainly help.  Although there is way too much hype surrounding Extreme
Programming, the core idea they espouse of evolutionary development and
unit testing are spot on in my view and experience.

It was always one of my biggest concerns when I was an academic how
woefully inadequate the training of computer science students was on
this issue.  Almost no courses in this country expose computer science
students to scientific method and debugging even though it probably
accounts for by far the largest amount of time of a programmers life. 
Possibly this is one of the factors why Physics/Chemistry/Biology
students who have been on a conversion MSc generally are generally good
at this sort of thing.

Some computer science courses try and use introductions to logic as ways
of inculcating in students a structure to their thinking and reasoning
and sometimes this helps.  However, far too many people teaching logic
are mathematicians rather than programmers and can't program properly
even in Prolog.

I guess I should have said flame on and flame off around the above.

-- 
Russel.

Dr Russel WinderChief Technology Officer
OneEighty Software Ltd  Tel: +44 20 8680 8712
Cygnet HouseFax: +44 20 8680 8453
12-14 Sydenham Road [EMAIL PROTECTED]
Croydon, Surrey CR9 2ET, UK http://www.180sw.com   

Under the Regulation of Investigatory Powers (RIP) Act 2000 together
with any and all Regulations in force pursuant to the Act One Eighty
Software Ltd reserves the right to monitor any or all incoming or
outgoing communications as provided for under the Act



signature.asc
Description: This is a digitally signed message part


RE: Debugging and science (was PPIG discuss: Searching for search strategies)

2002-07-08 Thread Derek M Jones

Russel,

I would have thought it patently obvious that debugging a program is
directly analogous to scientific experimentation:

1. Create an hypothesis about the bug
2. Design a data/test framework in which to extract information
3. Execute constructed test and obtain data
4. Relate new data to hypothesis to create information (or not)
5. Decide whether bug is fixed
6. Goto 1 if necessary.

This is certainly one approach and the one favoured by most developers.
However, there is an method that often locates the problem in less time.
It uses binary chop to narrow down the fault to a few dozen lines of
code and explicitly requires not forming hypotheses (I find they distract
and lead down too many blind alleys if formed to early).
 
Over the years I have tried to teach this method to a number of developers.
While agreeing that the method generally leads to a much faster solution of
problems, they don't like using it.  The urge to create hypotheses seems
to be very strong.  Using a binary chop approach provides no sense of
direction, which is something developers seem to like to have (even  when
it leads them down blind alleys).


derek

--
Derek M Jones   tel: +44 (0) 1252 520 667
Knowledge Software Ltdmailto:[EMAIL PROTECTED]
Applications Standards Conformance Testing   http://www.knosof.co.uk



- Automatic footer for [EMAIL PROTECTED] --
To unsubscribe from this list, mail [EMAIL PROTECTED]  unsubscribe discuss
To join the announcements list, mail [EMAIL PROTECTED] subscribe announce
To receive a help file, mail [EMAIL PROTECTED] help
This list is archived at http://www.mail-archive.com/discuss%40ppig.org/
If you have any problems or questions, please mail [EMAIL PROTECTED]



Re: PPIG discuss: Searching for search strategies

2002-07-08 Thread Bjorn Reese

Lindsay Marshall wrote:

 creative. I would contend that there is a tremendous amount of what
 amounts to debugging in science and that it often constitutes the
 largest part of any experimental endeavour : you design an experiment to
 test a hypothesis and it doesn't work and so you try to find out why.
 Sounds like debugging to me. In fact it sounds very like debugging
 someone else's undocumented code without any source...

Exactly! When I mentioned science, I was particularly thinking of
hypothesis-testing.

Furthermore, scholarship is not the only field outside of software
development that has to debug stuff (find faults in artifacts).
Doctors diagnose, mechanics examines, lawyers interrogates,
commissions of inquiry investigates, and so forth. What interests
me is what methods they use (for example, scholarship uses Occams
razor), what commonalities and differences there are, and most
significantly if there are any lessons to be learned by software
developers.

With regards to scholarship, I am currently reading Peter Naur's
Knowing and the Mystique of Logic and Rules, which has an entire
chapter devoted to the topic.

- Automatic footer for [EMAIL PROTECTED] --
To unsubscribe from this list, mail [EMAIL PROTECTED]  unsubscribe discuss
To join the announcements list, mail [EMAIL PROTECTED] subscribe announce
To receive a help file, mail [EMAIL PROTECTED] help
This list is archived at http://www.mail-archive.com/discuss%40ppig.org/
If you have any problems or questions, please mail [EMAIL PROTECTED]



RE: PPIG discuss: Searching for search strategies

2002-07-08 Thread P Chase

  In fact it sounds very like debugging
someone else's undocumented code without any source...

Yes it is. The most obvious example is genetic research.
Nature is infinitely more complex than anything
humans have devised, so the uncertainly in science is
far greater than in de-bugging.
Both involve creativity, uncertainty and intuition.
We can program a computer for the kind of work the
word science is often misused to refer to.

PC

- Automatic footer for [EMAIL PROTECTED] --
To unsubscribe from this list, mail [EMAIL PROTECTED]  unsubscribe discuss
To join the announcements list, mail [EMAIL PROTECTED] subscribe announce
To receive a help file, mail [EMAIL PROTECTED] help
This list is archived at http://www.mail-archive.com/discuss%40ppig.org/
If you have any problems or questions, please mail [EMAIL PROTECTED]



RE: Debugging and science (was PPIG discuss: Searching for search strategies)

2002-07-08 Thread P Chase


I would have thought it patently obvious that debugging a program is
directly analogous to scientific experimentation:



1. Create an hypothesis about the bug
2. Design a data/test framework in which to extract information
3. Execute constructed test and obtain data
4. Relate new data to hypothesis to create information (or not)
5. Decide whether bug is fixed
6. Goto 1 if necessary.


Yes it may be obvious, but as you explained, not to everyone.
And there is a lot of subtlety involved in scientific research
which is not at all obvious and which is not on your list.

PC






Dr Russel WinderChief Technology Officer
OneEighty Software Ltd  Tel: +44 20 8680 8712
Cygnet HouseFax: +44 20 8680 8453
12-14 Sydenham Road [EMAIL PROTECTED]
Croydon, Surrey CR9 2ET, UK http://www.180sw.com  

Under the Regulation of Investigatory Powers (RIP) Act 2000 together
with any and all Regulations in force pursuant to the Act One Eighty
Software Ltd reserves the right to monitor any or all incoming or
outgoing communications as provided for under the Act

Content-Type: application/pgp-signature; name=signature.asc
Content-Description: This is a digitally signed message part

Attachment converted: Polly HD:signature.asc (/) (000A466F)


- Automatic footer for [EMAIL PROTECTED] --
To unsubscribe from this list, mail [EMAIL PROTECTED]  unsubscribe discuss
To join the announcements list, mail [EMAIL PROTECTED] subscribe announce
To receive a help file, mail [EMAIL PROTECTED] help
This list is archived at http://www.mail-archive.com/discuss%40ppig.org/
If you have any problems or questions, please mail [EMAIL PROTECTED]



RE: Debugging and science (was PPIG discuss: Searching for search strategies)

2002-07-08 Thread Lindsay Marshall


 And there is a lot of subtlety involved in scientific 
 research which is not at all obvious and which is not on your list.

Which renders it all unscientific in many people's eyes. (Which is why
it never gets mentioned in discussions of scientific method)

L.


- Automatic footer for [EMAIL PROTECTED] --
To unsubscribe from this list, mail [EMAIL PROTECTED]  unsubscribe discuss
To join the announcements list, mail [EMAIL PROTECTED] subscribe announce
To receive a help file, mail [EMAIL PROTECTED] help
This list is archived at http://www.mail-archive.com/discuss%40ppig.org/
If you have any problems or questions, please mail [EMAIL PROTECTED]



RE: Debugging and science (was PPIG discuss: Searching for searchstrategies)

2002-07-08 Thread P Chase

At 2:30 PM +0100 7/8/02, Lindsay Marshall wrote:
   And there is a lot of subtlety involved in scientific
  research which is not at all obvious and which is not on your list.

Which renders it all unscientific in many people's eyes. (Which is why
it never gets mentioned in discussions of scientific method)

According to the incorrect definition of science, science is
unscientific.

PC

- Automatic footer for [EMAIL PROTECTED] --
To unsubscribe from this list, mail [EMAIL PROTECTED]  unsubscribe discuss
To join the announcements list, mail [EMAIL PROTECTED] subscribe announce
To receive a help file, mail [EMAIL PROTECTED] help
This list is archived at http://www.mail-archive.com/discuss%40ppig.org/
If you have any problems or questions, please mail [EMAIL PROTECTED]