Roll your own! UNC students come equiped with a powerful
CCI program laptop.
Their boxes put most faculty hardware to shame. But what are they using them
for? File sharing? Pirated music? English composition rewrites?
Time to get science majors cracking or at least hacking.
Mathematica is too obtuse, MathCAD is too restricting for
anything beyond the simplest few-line applications, believe me
I've tried both in Astr 137 and Astr 142.
From my experiences in Astr 137, I've developed the following
Minimialist Approach to Scientific Computing.
- Pick a language that is high-level, strongly typed,
extensible within reason, has a small number of keywords,
and supports Numerical Recipes. Java is too extensible, C# is
too Windows specific, C++ has too many operators and like Java
is too extensible.
But Fortran 95 in its streamlined and free
F incarnation or full
GNU g95 compiler)
fits the bill nicely.
In particular, Fortran 95's
powerful array language leads to very transparent image/spectrum
processing programs that
are as high-level as e.g. IDL. No loops! Not much boilerplate!
forall
and where
, masks, lots of intrinsic functions, support for
Numerical Recipes in Fortran 90 that
generally get the job done. (Of course, someone has already
typed in all the useful NR routines), and
g95 now includes the proposed Fortran 2008
coarray extension for
transparent multi-processor/parallel computing.
- Execute in the dismal but familiar
Windows XP environment so you don't intrude on the generic CCI laptop
load. Use MinGW and MinSys, available
here.
- Use a high-level graphics library with high-quality output from a
very small number of simple function calls.
DISLIN works well for Windows and Linux
under Fortran 95, has an
easy to program widget set for text input, and
works effectively with cgi-scripts such as
this one. So students
can generate dynamic gif/jpeg/png
graphics on their Web pages with no effort at all.
- Give them a very high-level image display function, a couple of functions
to hide all the complexity of the
cfitsio
(use v5.03 with MinGW) library (they only need my simple
rfits
routine
included here for image/spectrum/datacube reading/writing.
- Add the SciTE syntax-aware
editor to handle compile/link/execute.
- Bundle all Fortran 95, FITS file access, and graphics code
into a single module
that they simply USE in each program,
- I'm still evaluating debuggers, but MinGW has several candidates.
All this is free, and takes ~30 MB and 5 mins to install. Off they go!
If everyone adopted this approach, along with MathCAD for the simple stuff
and LabVIEW for lab work,
our Physics majors would be developing very sophisticated applications and
would benefit from a growing set of our pedagogical programs.
How about it folks?