Beefy Boxes and Bandwidth Generously Provided by pair Networks
The stupid question is the question not asked
 
PerlMonks  

Polly wants some Numerical Computation

by TomDLux (Vicar)
on Mar 04, 2011 at 16:00 UTC ( [id://891478]=perlmeditation: print w/replies, xml ) Need Help??

I came across a website called Software Carpentry which sets out to teach scientists to write good software. Scientists are smarter than most, Scientists are generally smart, they are well educated, almost all need data processing in their work, and most have tragically limited software-engineering training. Recent crises / scandals have revealed problems verifying the source of data, an inability to repeat old calculations and other problems. Victorian science can be repeated, because we have descriptions of the process, and the original data preserved in notebooks. Fifty year old rocket-science is stored on tape reels that have magnetic particles flaking off, not that you can find a matching tape player any more.

One of training sections at Software Carpentry discusses using numpy to numerical calculations and matrix operations --- the presumed alternative being hand-rolled code of questionable efficiency and accuracy, or ugly Fortran. Being a fully-robed vicar, I wished it was Perl & PDL, rather than Python, but I am pleased to see a sibling serve to improve science.

It did remind me that one of the design goals of Parrot was to allow libraries to cross over implementation, so a single library could complement a program written in Perl, Python or Ruby. Mind you, the current bloom ( in an algae sense ) of Mojolicious, Dancer, Catalyst, etc. makes me think the presence of already function modules will not prevent the development of more modules to do the same thing.

The numerical tutorials also made me wonder about the idea of math courses based on high-level software such as PDL or numpy. After all, computer programming courses do not begin with a detailed explanation of the interactions of emitter, base and collector in a transistor, or drain, source, gate in cmos components, or even with register, ALU, memory transfer. The computer is taken for granted, other than firing up the interpreter of choice.

The underlying operations would still be relevant, to understand what something is. But it would be viewed as something the computer does, rather than something the student does over and over until it becomes ingrained. People interested in advanced math would have greater exposure to the detail, but for most people, engineers, numerical programers, etc, it's the result rather than process that matters. I speak as someone with a minor in Math, who perpetually made addition and multiplication errors in matrix operations.

One significant benefit would be the ability to process much more complex, much more realistic problems. Any problem that requires human computation needs to be kept small, if any significant portion of the class is to pass the course. By quickly progressing through hand operations to the appropriate selection of different computerized methods, students would be able to handle realistic problems, and thus gain an appreciation for the relevance to real life.

Of course, there would need to be some discussion of cumputational limits ... but it would help the general public to have some understanding of how calculations are performed, to go with the why.

As Occam said: Entia non sunt multiplicanda praeter necessitatem.

Replies are listed 'Best First'.
Re: Polly wants some Numerical Computation
by ww (Archbishop) on Mar 04, 2011 at 17:47 UTC
    Tom
    While I think most of your meditation is highly worthy (and richly deserving of my ++), I have a bit of a problem with the unsupported generalization in:
    Scientists are smarter than most, they are well educated, almost all need data processing in their work, and most have tragically limited software-engineering training.

    May I suggest s/Scientists...training/Some scientists...training.

    Even that's less than 'high-precision' -- judging solely by my experience (hence, merely 'anecdotal evidence' -- as much of what you wrote appears to me to apply to "Many scientists." One could also kvetch about "smarter than most" as "smarter than most about some things" would probably be more accurate. ;-(

      I actually emailed the contact at the site cited ( :) sorry ) and was told that the reason that Python was preferred over Perl was quite simply that Python was easier! This in no way negates your point; perhaps we could compromise on /Some/Many/ ?

      --hsm

      "Never try to teach a pig to sing...it wastes your time and it annoys the pig."
        HoKay; I'm "comfy" (MOL) with that and/or with TomDLux' edit in the OP.

        :-)

Log In?
Username:
Password:

What's my password?
Create A New User
Domain Nodelet?
Node Status?
node history
Node Type: perlmeditation [id://891478]
Approved by Old_Gray_Bear
Front-paged by Old_Gray_Bear
help
Chatterbox?
and the web crawler heard nothing...

How do I use this?Last hourOther CB clients
Other Users?
Others chilling in the Monastery: (6)
As of 2024-03-28 11:50 GMT
Sections?
Information?
Find Nodes?
Leftovers?
    Voting Booth?

    No recent polls found