[Beowulf] Teaching Scientific Computation (looking for the perfect text)

Jim Lux james.p.lux at jpl.nasa.gov
Tue Nov 20 13:23:59 PST 2007

Quoting "Peter St. John" <peter.st.john at gmail.com>, on Tue 20 Nov 2007  
11:30:57 AM PST:

> 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.

But for solving a problem (as opposed to learning to get a job  
programming) what about something like Matlab?  It's procedural, there  
are compilers (sort of), and it automatically does stuff with matrices  
in sensible ways.

I would certainly eschew any of the fads for "Engineering with Excel"  
which make my teeth grind when I hear about it.  Every time one of my  
colleagues creates this incredibly elaborate spreadsheet to calculate  
receiver performance (gain distribution, intermodulation, etc.) I have  
to wonder how many hours were spent working around the idiosyncracies  
of Excel (just to get the plot to look right, if nothing else), when  
they could have spent that time learning a "real" tool to do the job.

> 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.

I like that example.

> 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.

No, no... force a bizarre abstraction of no possible commercial value.  
  Make them do it in MIXAL. Programming as *Art*, not engineering or  
science. What do you think this is, some sort of trade school? <grin>

> 5. Choose C because there is no real choice, but I don't have time to
> explain that in the margin of my email :-)
no time because you're working out a concise proof regarding the sums  
of integer powers of integers, perhaps?

> Peter

More information about the Beowulf mailing list