Thanks Don, <br><br>I've read through noth of Oualline's books, but had forgotten about them.  Thanks for the reminder!  On a more personal note, I learned C in a week-long seminar at the AHPCRC about a decade ago.  As a computational physicist, I've always felt a little odd in having only one formal programming class (in fortran, taught by an engineer, way back in the 1990's)   
<br><br>Nathan<br><br><div class="gmail_quote">On Nov 20, 2007 1:26 PM, Don R. Baker <<a href="mailto:donb@eps.mcgill.ca">donb@eps.mcgill.ca</a>> wrote:<br><blockquote class="gmail_quote" style="border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;">
Hi Nathan,<br><br>I think that you can switch to teaching C without too much pain and<br>effort.  Although I haven't taught C in a course,  I learned it from<br>Steve Oualline's book on C published by O'Reilly press and lots of
<br>practice.  Perhaps more importantly, I had an undergraduate in my lab<br>learn it from the same book without much trouble.  As I remember<br>Qualline has a very nice introduction to pointers, but you don't really<br>
need them for many programs.  Although I appreciate the utility of<br>pointers I find that I rarely use them for my Monte Carlo simulations<br>(but this is admittedly because I am no expert in programming).<br><br>I should also point out that Steve Qualline has a C++ book that is very
<br>similar to the C book and also might work for you.<br><br>I hope this helps,<br><br>Don<br><br><br><br>p.s. The books:<br>Practical C Programming, Third Edition by Steve Oualline<br>Paperback - REVISED<br>Practical C++ Programming by Steve Oualline
<br><div><div></div><div class="Wj3C7c"><br>On Tue, 2007-20-11 at 12:33 -0600, Nathan Moore wrote:<br>> I regularly teach a college course in a physics department that deals<br>> with scientific computation.  After students take the course, I expect
<br>> that they'll be able to write simple "c-tran" style programs for data<br>> analysis, write basic MD or MC simulations, and be fairly fluent in<br>> Mathematica.<br>><br>> In the past, I figured that with the breadth of topics included in the
<br>> course, Fortran, specifically the basic, simple, and reliable F77<br>> dialect (w/ some F90 conveniences) was the language to teach.  In my<br>> own head, my rationale was:<br>> - Most students can grasp the basics of fortran in half a day's
<br>> reading, so I can spend more class time on science and math (probably<br>> because there are no pointers - I think that C is much harder for<br>> students and sometimes "seems" less like mathematical syntax than
<br>> f77)<br>> - "Classical Fortran" is a great text and is readable for self-study<br>> (I know of no such text for C/C++)<br>> - several free compilers exist (g95 seems ok so far)<br>> - Netlib, lapack, and numerical recipes cover the math library
<br>> adequately<br>> - F77 is compiled (Perl/python are too slow for an MD/MC sim and I<br>> figure that students should know at least on compiled language and one<br>> scripting language to be competent)<br>
> - MPI is a relatively basic addition to the language (again, no<br>> pointers, allocation, or addressing)<br>><br>> After reflection though, I've started to wonder about the wisdom of my<br>> choice.  Specifically (like RGB), I love the GSL library, and
<br>> extending GSL to fortran in an intro class is non-trivial.<br>> Additionally, most vendors supply "fast" hardware libraries in C (I<br>> may be ignorant, but if a student wants to call an AMD ACML fast-math
<br>> function( <a href="http://developer.amd.com/acml.jsp" target="_blank">http://developer.amd.com/acml.jsp</a>), or write a linear<br>> algebra function to run on a graphics<br>> card(<a href="http://developer.nvidia.com/object/cuda.html" target="_blank">
http://developer.nvidia.com/object/cuda.html</a>), the vendors seem<br>> to assume that you'll write the code in C).<br>><br>> Also, and more relevant, I assume that most employers word-associate<br>> "Fortran is to backwards as C is to competence".
<br>><br>> So, I'm thinking about reworking the class to favor C, and fearing 3<br>> weeks of pointer and addressing hell.  For those of you who teach<br>> scientific computation (and also those of you who hire undergrads),
<br>> I'd be grateful for your thoughts.  One specific question I have is<br>> what text covers scientific programming and touches on MPI using the C<br>> language.<br>><br>> regards,<br>><br>> Nathan Moore
<br>><br>><br>> --<br>> - - - - - - -   - - - - - - -   - - - - - - -<br>> Nathan Moore<br>> Assistant Professor, Physics<br>> Winona State University<br>> AIM: nmoorewsu<br>> - - - - - - -   - - - - - - -   - - - - - - -
<br></div></div>> _______________________________________________<br>> Beowulf mailing list, <a href="mailto:Beowulf@beowulf.org">Beowulf@beowulf.org</a><br>> To change your subscription (digest mode or unsubscribe) visit 
<a href="http://www.beowulf.org/mailman/listinfo/beowulf" target="_blank">http://www.beowulf.org/mailman/listinfo/beowulf</a><br><font color="#888888">--<br>Melting rocks today for a better tomorrow . . .<br>Don R. Baker, Professor of Geochemistry, Earth and Planetary Sciences,
<br>McGill University, Montreal, QC CANADA  phone: 1-514-398-7485<br><br></font></blockquote></div><br><br clear="all"><br>-- <br>- - - - - - -   - - - - - - -   - - - - - - - <br>Nathan Moore<br>Assistant Professor, Physics
<br>Winona State University<br>AIM: nmoorewsu <br>- - - - - - -   - - - - - - -   - - - - - - -