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.  
<br><br>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.&nbsp; In my own head, my rationale was:
<br>- Most students can grasp the basics of fortran in half a day&#39;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 &quot;seems&quot; less like mathematical syntax than f77)
<br>- &quot;Classical Fortran&quot; is a great text and is readable for self-study (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 adequately
<br>- 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)<br>- MPI is a relatively basic addition to the language (again, no pointers, allocation, or addressing) 
<br clear="all"><br>After reflection though, I&#39;ve started to wonder about the wisdom of my choice.&nbsp; Specifically (like RGB), I love the GSL library, and extending GSL to fortran in an intro class is non-trivial.&nbsp; Additionally, most vendors supply &quot;fast&quot; hardware libraries in C (I may be ignorant, but if a student wants to call an AMD ACML fast-math function(
<a href="http://developer.amd.com/acml.jsp">http://developer.amd.com/acml.jsp</a>), or write a linear algebra function to run on a graphics card(<a href="http://developer.nvidia.com/object/cuda.html">http://developer.nvidia.com/object/cuda.html
</a>), the vendors seem to assume that you&#39;ll write the code in C).&nbsp; <br><br>Also, and more relevant, I assume that most employers word-associate &quot;Fortran is to backwards as C is to competence&quot;.<br><br>So, I&#39;m thinking about reworking the class to favor C, and fearing 3 weeks of pointer and addressing hell.&nbsp; For those of you who teach scientific computation (and also those of you who hire undergrads), I&#39;d be grateful for your thoughts.&nbsp; One specific question I have is what text covers scientific programming and touches on MPI using the C language. 
<br><br>regards,<br><br>Nathan Moore<br><br>&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;  <br>-- <br>- - - - - - - &nbsp; - - - - - - - &nbsp; - - - - - - - <br>Nathan Moore<br>Assistant Professor, Physics<br>Winona State University<br>AIM: nmoorewsu <br>- - - - - - - &nbsp; - - - - - - - &nbsp; - - - - - - -


!DSPAM:4743290d169981735719037!