RE: Debugging and science (was PPIG discuss: Searching for searchstrategies)
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)
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
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
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)
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)
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)
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]