On Tue, 20 Nov 2007, Nathan Moore wrote:

Thanks for the message Peter.  I agree with you about the lucidity of K&R,
although I think the Landau-Lifshitz series of texts eclipses it in overall
greatness.

OK, if we're going there, Richard Cox's The Algebra of Probable
Inference is perhaps the greatest intellectual achievement in philosophy
since roughly the day of Parmenides, call it 2500 years ago.  And nearly
unknown, which makes it all the more exciting.

Oh, you meant in COMPUTING.  Well, Cox's axioms and their conclusions
were worked out around two years before Shannon's theorem, and Shannon's
theorem is more or less one of their trivial consequences.  It is
information theory at a level even more profound than that developed by
Shannon, defining what we mean by "information" at the point where it
arises out of chaos.  (OK, maybe that's a bit poetical, but still...:-)


Regarding demographics, I'm thinking mainly about the device driver/embedded
systems/EE track, in which a fortran interface seems to be unheard of.  The
only field I know of in which Fortran is common and vital is numerical
weather modeling.  Maybe others on the list can disabuse me of this notion.

Also, the truck full of gravel analogy is great, thanks!

I agree.  Next time I want a load of gravel I'm going to definitely
write down the address of the gravel company and dereference the gravel
directly onto my driveway...;-)

  rgb


On Nov 20, 2007 1:30 PM, Peter St. John <[EMAIL PROTECTED]> wrote:

Nathan,
I'm sure you'll get lots of very experienced responses but if I may:
1. Book. K&RC is the best book ever, on any subject.
2. Demographics. It looked to me that engineers were typically
learning and using C (C++, C with Classes, sometimes Java) more than
Fortran. I would have expected similar among physicists, but I
understand that a lot of Fortan is still extant and vital. Also there
is some convergence, ultimately it won't matter much.
3. Pedagogy. When computational efficiency is important, the
distinctions bettween sending data, and sending references to data, is
real important. I think it can be made vivid, early; what's the
difference between my handing you a card with the shipping address of
the warehouse that has the gravel you need for your construction
business, and handing you one thousand wheelbarrows full of gravel?
Either way can be right in the circumstances, but the difference is
obviously very relevant and should be taught even if you use a
language that hides the distinctions.
4. You might let them choose, but that might make more sense with
graduate students, than undergrads, and you may not like grading
papers in multiple languages. So you might ask about departmental
guidelines, what languages they will be exprected to learn anyway. I'd
advocate presenting some of the shorter but fundamental algorithms in
two languages, if you have time, but time is scarce and it's a physics
course, not a programming course.
5. Choose C because there is no real choice, but I don't have time to
explain that in the margin of my email :-)
Peter


On Nov 20, 2007 1:33 PM, Nathan Moore <[EMAIL PROTECTED]> wrote:
I regularly teach a college course in a physics department that deals
with
scientific computation.  After students take the course, I expect that
they'll be able to write simple "c-tran" style programs for data
analysis,
write basic MD or MC simulations, and be fairly fluent in Mathematica.

In the past, I figured that with the breadth of topics included in the
course, Fortran, specifically the basic, simple, and reliable F77
dialect
(w/ some F90 conveniences) was the language to teach.  In my own head,
my
rationale was:
- Most students can grasp the basics of fortran in half a day's reading,
so
I can spend more class time on science and math (probably because there
are
no pointers - I think that C is much harder for students and sometimes
"seems" less like mathematical syntax than f77)
- "Classical Fortran" is a great text and is readable for self-study (I
know
of no such text for C/C++)
- several free compilers exist (g95 seems ok so far)
- Netlib, lapack, and numerical recipes cover the math library
adequately
- F77 is compiled (Perl/python are too slow for an MD/MC sim and I
figure
that students should know at least on compiled language and one
scripting
language to be competent)
- MPI is a relatively basic addition to the language (again, no
pointers,
allocation, or addressing)

After reflection though, I've started to wonder about the wisdom of my
choice.  Specifically (like RGB), I love the GSL library, and extending
GSL
to fortran in an intro class is non-trivial.  Additionally, most vendors
supply "fast" hardware libraries in C (I may be ignorant, but if a
student
wants to call an AMD ACML fast-math function(
http://developer.amd.com/acml.jsp), or write a linear algebra function
to
run on a graphics card(http://developer.nvidia.com/object/cuda.html ),
the
vendors seem to assume that you'll write the code in C).

Also, and more relevant, I assume that most employers word-associate
"Fortran is to backwards as C is to competence".

So, I'm thinking about reworking the class to favor C, and fearing 3
weeks
of pointer and addressing hell.  For those of you who teach scientific
computation (and also those of you who hire undergrads), I'd be grateful
for
your thoughts.  One specific question I have is what text covers
scientific
programming and touches on MPI using the C language.

regards,

Nathan Moore


--
- - - - - - -   - - - - - - -   - - - - - - -
Nathan Moore
Assistant Professor, Physics
Winona State University
AIM: nmoorewsu
- - - - - - -   - - - - - - -   - - - - - - -
_______________________________________________
Beowulf mailing list, [email protected]
To change your subscription (digest mode or unsubscribe) visit
http://www.beowulf.org/mailman/listinfo/beowulf








--
Robert G. Brown
Duke University Dept. of Physics, Box 90305
Durham, N.C. 27708-0305
Phone(cell): 1-919-280-8443
Web: http://www.phy.duke.edu/~rgb
Lulu Bookstore: http://stores.lulu.com/store.php?fAcctID=877977
_______________________________________________
Beowulf mailing list, [email protected]
To change your subscription (digest mode or unsubscribe) visit 
http://www.beowulf.org/mailman/listinfo/beowulf

Reply via email to