<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
		>
<channel>
	<title>Comments on: Should Fortran be taught to Undergraduates?</title>
	<atom:link href="http://www.walkingrandomly.com/?feed=rss2&#038;p=1397" rel="self" type="application/rss+xml" />
	<link>http://www.walkingrandomly.com/?p=1397</link>
	<description>Because it's more fun than getting there in a straight line.</description>
	<lastBuildDate>Thu, 09 Sep 2010 09:21:49 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.9.1</generator>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
		<item>
		<title>By: Dan</title>
		<link>http://www.walkingrandomly.com/?p=1397&#038;cpage=1#comment-24328</link>
		<dc:creator>Dan</dc:creator>
		<pubDate>Fri, 14 May 2010 23:09:02 +0000</pubDate>
		<guid isPermaLink="false">http://www.walkingrandomly.com/?p=1397#comment-24328</guid>
		<description>A first programming language is a tough choice.  It seems everyone has an opinion.  However,  if you took or are taking Fortran as a first course and you think it&#039;s hard.  Well...  IMHO, it&#039;s likely hard because you don&#039;t have a good teacher or simply because you &quot;just don&#039;t get it&quot;  (and I&#039;m not saying this to sound mean or uncaring).  If basic fortran coding is hard, then... well... pretty much any language is going to seem hard to you until the right light bulb goes off in your head.  I mean, in fortran, the syntax you need to write a loop that iterates some whole number between 1 and 100... come on.  The fortran mental model for that type of thing really doesn&#039;t get any easier does it???  

Sure,  you&#039;re not going to jump into drawing graphics using fortran without some add-on software, etc.  Of course,  most languages aren&#039;t going to have you drawing graphics.  A language with built-in graphics generally means it&#039;s a proprietary language or a slow one and it rarely is a portable language.  But, then again... if you&#039;re writing &quot;simple&quot; graphics code in your first programming course, then... you&#039;re not doing rocket science either.  And... you may even be spending your time learning &quot;frills&quot; rather than actual good programming techniques.

The purpose for teaching a future engineer or physicist fortran or some other language in a first course on programming is not about showing the person a good time with a few extra colors on the screen (not that that is a bad thing!!).  It&#039;s about making them better at what they will be doing in the future.  They can always do that graphics later.  It&#039;s a LOT easier to write code to draw a few lines and curves than it is to write a nice iterative solver routine.  So... you can teach them to solve complex problems and they&#039;ll easily figure out how to add graphics to their code later or you can teach them to do simple graphics and they can get a job writing the graphics code for the smarter guys out there who wrote the complex mathematical code.

Dan  :-)</description>
		<content:encoded><![CDATA[<p>A first programming language is a tough choice.  It seems everyone has an opinion.  However,  if you took or are taking Fortran as a first course and you think it&#8217;s hard.  Well&#8230;  IMHO, it&#8217;s likely hard because you don&#8217;t have a good teacher or simply because you &#8220;just don&#8217;t get it&#8221;  (and I&#8217;m not saying this to sound mean or uncaring).  If basic fortran coding is hard, then&#8230; well&#8230; pretty much any language is going to seem hard to you until the right light bulb goes off in your head.  I mean, in fortran, the syntax you need to write a loop that iterates some whole number between 1 and 100&#8230; come on.  The fortran mental model for that type of thing really doesn&#8217;t get any easier does it???  </p>
<p>Sure,  you&#8217;re not going to jump into drawing graphics using fortran without some add-on software, etc.  Of course,  most languages aren&#8217;t going to have you drawing graphics.  A language with built-in graphics generally means it&#8217;s a proprietary language or a slow one and it rarely is a portable language.  But, then again&#8230; if you&#8217;re writing &#8220;simple&#8221; graphics code in your first programming course, then&#8230; you&#8217;re not doing rocket science either.  And&#8230; you may even be spending your time learning &#8220;frills&#8221; rather than actual good programming techniques.</p>
<p>The purpose for teaching a future engineer or physicist fortran or some other language in a first course on programming is not about showing the person a good time with a few extra colors on the screen (not that that is a bad thing!!).  It&#8217;s about making them better at what they will be doing in the future.  They can always do that graphics later.  It&#8217;s a LOT easier to write code to draw a few lines and curves than it is to write a nice iterative solver routine.  So&#8230; you can teach them to solve complex problems and they&#8217;ll easily figure out how to add graphics to their code later or you can teach them to do simple graphics and they can get a job writing the graphics code for the smarter guys out there who wrote the complex mathematical code.</p>
<p>Dan  <img src='http://www.walkingrandomly.com/wp-includes/images/smilies/icon_smile.gif' alt=':-)' class='wp-smiley' /> </p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Jon</title>
		<link>http://www.walkingrandomly.com/?p=1397&#038;cpage=1#comment-23572</link>
		<dc:creator>Jon</dc:creator>
		<pubDate>Wed, 28 Apr 2010 15:16:52 +0000</pubDate>
		<guid isPermaLink="false">http://www.walkingrandomly.com/?p=1397#comment-23572</guid>
		<description>I&#039;m taking Fortran right now. I absolutely despise the class, and I know for a fact that I will NEVER USE IT. But because I&#039;m not passing the course, much to my 30+year veteran programmer father&#039;s chagrin, I&#039;m going to have to RE-Take the damned thing and get held back in other courses that require it as a passing grade.

I F!$#%NG HATE THIS %$D !%MN$$ &quot;PROGRAMMING&quot; LANGUAGE. T_T</description>
		<content:encoded><![CDATA[<p>I&#8217;m taking Fortran right now. I absolutely despise the class, and I know for a fact that I will NEVER USE IT. But because I&#8217;m not passing the course, much to my 30+year veteran programmer father&#8217;s chagrin, I&#8217;m going to have to RE-Take the damned thing and get held back in other courses that require it as a passing grade.</p>
<p>I F!$#%NG HATE THIS %$D !%MN$$ &#8220;PROGRAMMING&#8221; LANGUAGE. T_T</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Mike Croucher</title>
		<link>http://www.walkingrandomly.com/?p=1397&#038;cpage=1#comment-14459</link>
		<dc:creator>Mike Croucher</dc:creator>
		<pubDate>Mon, 17 Aug 2009 09:12:32 +0000</pubDate>
		<guid isPermaLink="false">http://www.walkingrandomly.com/?p=1397#comment-14459</guid>
		<description>Thanks for the tip - it&#039;s an interesting technical workaround and one that I will try out in the future.  However, I would much prefer to use the fully supported option in applications like Abaqus.

When you have people designing components for bridges and planes you tend to get jittery advising anything other than the fully supported option and the fully supported option is the IFC.

Cheers,
Mike</description>
		<content:encoded><![CDATA[<p>Thanks for the tip &#8211; it&#8217;s an interesting technical workaround and one that I will try out in the future.  However, I would much prefer to use the fully supported option in applications like Abaqus.</p>
<p>When you have people designing components for bridges and planes you tend to get jittery advising anything other than the fully supported option and the fully supported option is the IFC.</p>
<p>Cheers,<br />
Mike</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Some one</title>
		<link>http://www.walkingrandomly.com/?p=1397&#038;cpage=1#comment-14312</link>
		<dc:creator>Some one</dc:creator>
		<pubDate>Tue, 11 Aug 2009 06:42:35 +0000</pubDate>
		<guid isPermaLink="false">http://www.walkingrandomly.com/?p=1397#comment-14312</guid>
		<description>&gt; If gfortran worked in almost all cases then I would never have had a hoard of people demanding the Intel Fortran Compiler. 

gfortran can produce the same link level object code as IFC. The assembly produced may differ, and you may need to rename f90 files to .f90. 

A small bash script can be used to hijack most toolchains by placing it in /usr/local/bin/ifort (EG abaqus, which is what I do) to make for savings on your compiler costs.

Something like:

PARAMS=`echo $* &#124; sed s/-w90// &#124; sed s/-w95// &#124; sed s/-auto// &#124; sed s/-WB// &#124; sed s/-cxxlib-gcc// &#124; sed s/-threads// &#124; sed s/-parallel//`

will drop the flags passed to ifort by abaqus. You may need the -ff2c flag.</description>
		<content:encoded><![CDATA[<p>&gt; If gfortran worked in almost all cases then I would never have had a hoard of people demanding the Intel Fortran Compiler. </p>
<p>gfortran can produce the same link level object code as IFC. The assembly produced may differ, and you may need to rename f90 files to .f90. </p>
<p>A small bash script can be used to hijack most toolchains by placing it in /usr/local/bin/ifort (EG abaqus, which is what I do) to make for savings on your compiler costs.</p>
<p>Something like:</p>
<p>PARAMS=`echo $* | sed s/-w90// | sed s/-w95// | sed s/-auto// | sed s/-WB// | sed s/-cxxlib-gcc// | sed s/-threads// | sed s/-parallel//`</p>
<p>will drop the flags passed to ifort by abaqus. You may need the -ff2c flag.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Mike Croucher</title>
		<link>http://www.walkingrandomly.com/?p=1397&#038;cpage=1#comment-13717</link>
		<dc:creator>Mike Croucher</dc:creator>
		<pubDate>Wed, 22 Jul 2009 10:56:51 +0000</pubDate>
		<guid isPermaLink="false">http://www.walkingrandomly.com/?p=1397#comment-13717</guid>
		<description>If gfortran worked in almost all cases then I would never have had a hoard of people demanding the Intel Fortran Compiler.  If gfortran worked in almost all cases then some senior academics wouldn&#039;t insist on teaching using the NAG compiler....or the Silverfrost compiler.  If gfortran worked in almost all cases then I wouldn&#039;t be getting emails asking for yet more compilers such as PGI and lahey.

gfortran may well work for you but when you are dealing with 100s of Fortran programmers you get to see that there are plenty of people who need more.

I agree you should learn both high and low level languages for numerical computing but the whole point of this article was &#039;When you have never programmed before...I mean ever...maybe, just maybe learning Python is a little less scary and more productive.&#039;

When you know the difference between a loop and an if statement - then you can take the training wheels off and dive into Fortran or C or whatever else floats your boat.</description>
		<content:encoded><![CDATA[<p>If gfortran worked in almost all cases then I would never have had a hoard of people demanding the Intel Fortran Compiler.  If gfortran worked in almost all cases then some senior academics wouldn&#8217;t insist on teaching using the NAG compiler&#8230;.or the Silverfrost compiler.  If gfortran worked in almost all cases then I wouldn&#8217;t be getting emails asking for yet more compilers such as PGI and lahey.</p>
<p>gfortran may well work for you but when you are dealing with 100s of Fortran programmers you get to see that there are plenty of people who need more.</p>
<p>I agree you should learn both high and low level languages for numerical computing but the whole point of this article was &#8216;When you have never programmed before&#8230;I mean ever&#8230;maybe, just maybe learning Python is a little less scary and more productive.&#8217;</p>
<p>When you know the difference between a loop and an if statement &#8211; then you can take the training wheels off and dive into Fortran or C or whatever else floats your boat.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Some one</title>
		<link>http://www.walkingrandomly.com/?p=1397&#038;cpage=1#comment-13715</link>
		<dc:creator>Some one</dc:creator>
		<pubDate>Wed, 22 Jul 2009 09:49:41 +0000</pubDate>
		<guid isPermaLink="false">http://www.walkingrandomly.com/?p=1397#comment-13715</guid>
		<description>Fortran compilers are expensive? gfortran works perfectly in almost all cases. 

Scripting languages (Python/matlab) should not be compared to low level languages at all. It is important to learn both a high and low level language for numerical computing. I have seen people running matlab simulations on clusters that would run in a few minutes on an entry level desktop if not written in extremely inefficient matlab!</description>
		<content:encoded><![CDATA[<p>Fortran compilers are expensive? gfortran works perfectly in almost all cases. </p>
<p>Scripting languages (Python/matlab) should not be compared to low level languages at all. It is important to learn both a high and low level language for numerical computing. I have seen people running matlab simulations on clusters that would run in a few minutes on an entry level desktop if not written in extremely inefficient matlab!</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Phil Bergmaier</title>
		<link>http://www.walkingrandomly.com/?p=1397&#038;cpage=1#comment-12908</link>
		<dc:creator>Phil Bergmaier</dc:creator>
		<pubDate>Thu, 09 Jul 2009 19:08:07 +0000</pubDate>
		<guid isPermaLink="false">http://www.walkingrandomly.com/?p=1397#comment-12908</guid>
		<description>Hi,

As a senior with a major in the atmospheric sciences, I was required to take Fortran as well back as a sophomore. However, the reasoning behind this was due to the fact that IDL, a VERY relevant and useful programming language for my field of study, was also required. My department also offers a numerical modeling course, so Fortran is merely used as a bridge to other similar and more useful languages that are used extensively in the atmospheric sciences. No, I doubt I will ever use Fortran again, but without it, learning IDL would have been a nightmare, especially considering the two are very, very similar.</description>
		<content:encoded><![CDATA[<p>Hi,</p>
<p>As a senior with a major in the atmospheric sciences, I was required to take Fortran as well back as a sophomore. However, the reasoning behind this was due to the fact that IDL, a VERY relevant and useful programming language for my field of study, was also required. My department also offers a numerical modeling course, so Fortran is merely used as a bridge to other similar and more useful languages that are used extensively in the atmospheric sciences. No, I doubt I will ever use Fortran again, but without it, learning IDL would have been a nightmare, especially considering the two are very, very similar.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: QuasiNewton</title>
		<link>http://www.walkingrandomly.com/?p=1397&#038;cpage=1#comment-12578</link>
		<dc:creator>QuasiNewton</dc:creator>
		<pubDate>Mon, 29 Jun 2009 14:50:28 +0000</pubDate>
		<guid isPermaLink="false">http://www.walkingrandomly.com/?p=1397#comment-12578</guid>
		<description>I agree that python would be a good choice to be taught in a scientific computing class for beginners (CS departments might prefer Java). Due to e.g. the size of matrices often dealt with in scientific computing I think it would be necessary to learn a slightly more &quot;low-level&quot; language like fortran in order to better understand the concepts of e.g. memory allocation. It would be easy to blend in a single lecture on how to use such a &quot;low-level&quot; language to write modules for python.

I would even suggest experienced scientists to start new projects in python, which I think is useful for prototyping new algorithms (running the code interactively helps debugging - might be easier than using an external debugger) and to replace heavy-duty routines by C or Fortran once the code has matured.

It is true that Fortran has been around for quite some time (and still is - thanks to us), probably for a good reason - the focus on FORmulas without sophistication for other programming issues. C will probably also be around for some time due to its importance for OS&#039;s (or the major part of open source apps), but in general programming languages will come and go (as well as software design/programming paradigms). So I think that there shouldn&#039;t be much too much focus on a single language during the education (as Martin pointed out), but more on the basic programming concepts and how to come up with algorithms (which python should be optimal for).

I think that if there are both students with previous programming knowledge (which might be quite advanced among young engineers/physicists etc.) and without, two different courses might be better, which could be too much workload for a single department. When I attended computing classes myself, a course was offered at the CS department by for all students who majored in other fields.</description>
		<content:encoded><![CDATA[<p>I agree that python would be a good choice to be taught in a scientific computing class for beginners (CS departments might prefer Java). Due to e.g. the size of matrices often dealt with in scientific computing I think it would be necessary to learn a slightly more &#8220;low-level&#8221; language like fortran in order to better understand the concepts of e.g. memory allocation. It would be easy to blend in a single lecture on how to use such a &#8220;low-level&#8221; language to write modules for python.</p>
<p>I would even suggest experienced scientists to start new projects in python, which I think is useful for prototyping new algorithms (running the code interactively helps debugging &#8211; might be easier than using an external debugger) and to replace heavy-duty routines by C or Fortran once the code has matured.</p>
<p>It is true that Fortran has been around for quite some time (and still is &#8211; thanks to us), probably for a good reason &#8211; the focus on FORmulas without sophistication for other programming issues. C will probably also be around for some time due to its importance for OS&#8217;s (or the major part of open source apps), but in general programming languages will come and go (as well as software design/programming paradigms). So I think that there shouldn&#8217;t be much too much focus on a single language during the education (as Martin pointed out), but more on the basic programming concepts and how to come up with algorithms (which python should be optimal for).</p>
<p>I think that if there are both students with previous programming knowledge (which might be quite advanced among young engineers/physicists etc.) and without, two different courses might be better, which could be too much workload for a single department. When I attended computing classes myself, a course was offered at the CS department by for all students who majored in other fields.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Rusi</title>
		<link>http://www.walkingrandomly.com/?p=1397&#038;cpage=1#comment-12571</link>
		<dc:creator>Rusi</dc:creator>
		<pubDate>Mon, 29 Jun 2009 02:27:11 +0000</pubDate>
		<guid isPermaLink="false">http://www.walkingrandomly.com/?p=1397#comment-12571</guid>
		<description>I think Fortran is even more relevant today specially on multi core CPUs. It is much easier to auto parallelize Fortran code than C++/Java code.

The language is designed keeping compiler optimization in mind (with things like &#039;Forall&#039;, Pure/Elemental Procedures, Support for whole array operations etc.)

Moreover it is so much easier to teach Fortran than C++ which has a tremendously high learning curve.</description>
		<content:encoded><![CDATA[<p>I think Fortran is even more relevant today specially on multi core CPUs. It is much easier to auto parallelize Fortran code than C++/Java code.</p>
<p>The language is designed keeping compiler optimization in mind (with things like &#8216;Forall&#8217;, Pure/Elemental Procedures, Support for whole array operations etc.)</p>
<p>Moreover it is so much easier to teach Fortran than C++ which has a tremendously high learning curve.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Américo Tavares</title>
		<link>http://www.walkingrandomly.com/?p=1397&#038;cpage=1#comment-12548</link>
		<dc:creator>Américo Tavares</dc:creator>
		<pubDate>Sun, 28 Jun 2009 07:27:13 +0000</pubDate>
		<guid isPermaLink="false">http://www.walkingrandomly.com/?p=1397#comment-12548</guid>
		<description>Just to say as a retired Portuguese Engineer that:

1) I know knothing about Python, so I have no informed opinion.

2) Concerning Fortran I studied it for a week in Numerical Methods, at IST, part of the Technical University of Lisbon,  back in 1970. A couple of years later when working as a designer engineer in automation/control I bought a book by an American author on the subject.
I loved it, read it almost entirelt and did most of the exercises. If I remember well the book is &quot;A first Primer on Fortran&quot;, a lovely one. Only later I learned other programming languages.</description>
		<content:encoded><![CDATA[<p>Just to say as a retired Portuguese Engineer that:</p>
<p>1) I know knothing about Python, so I have no informed opinion.</p>
<p>2) Concerning Fortran I studied it for a week in Numerical Methods, at IST, part of the Technical University of Lisbon,  back in 1970. A couple of years later when working as a designer engineer in automation/control I bought a book by an American author on the subject.<br />
I loved it, read it almost entirelt and did most of the exercises. If I remember well the book is &#8220;A first Primer on Fortran&#8221;, a lovely one. Only later I learned other programming languages.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Américo Tavares</title>
		<link>http://www.walkingrandomly.com/?p=1397&#038;cpage=1#comment-12543</link>
		<dc:creator>Américo Tavares</dc:creator>
		<pubDate>Sat, 27 Jun 2009 22:02:56 +0000</pubDate>
		<guid isPermaLink="false">http://www.walkingrandomly.com/?p=1397#comment-12543</guid>
		<description>As a retired Portuguese engineer I can say that in Numerical Methods I studied one week Fortran in 1970.

In 1974 I bought an American book on the subject and read it almost entirely doing at the same time most of the exercises. I liked the book very much. The book title is &quot;A Primer on Fortran&quot;, if I remember well. I do agree that one needs much time for learning the &quot;arcane string output formatting&quot;.

Python is only a word for me which I know nothing about.</description>
		<content:encoded><![CDATA[<p>As a retired Portuguese engineer I can say that in Numerical Methods I studied one week Fortran in 1970.</p>
<p>In 1974 I bought an American book on the subject and read it almost entirely doing at the same time most of the exercises. I liked the book very much. The book title is &#8220;A Primer on Fortran&#8221;, if I remember well. I do agree that one needs much time for learning the &#8220;arcane string output formatting&#8221;.</p>
<p>Python is only a word for me which I know nothing about.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Jordan</title>
		<link>http://www.walkingrandomly.com/?p=1397&#038;cpage=1#comment-12326</link>
		<dc:creator>Jordan</dc:creator>
		<pubDate>Tue, 16 Jun 2009 06:27:37 +0000</pubDate>
		<guid isPermaLink="false">http://www.walkingrandomly.com/?p=1397#comment-12326</guid>
		<description>Well you got slashdotted but as usual it seems no-one RTFA.

Your arguments are all accurate. I was a Maths student at university who took courses in Computer Science and Physics to round out my degree, and when I came to do a third year maths school course &quot;Introduction to Numerical Methods&quot;, the horror of Fortran - the first half of the course was learning the language, and we seemed to spend weeks just on the arcane string output formatting - made me drop the whole subject like a hot stone. A friend who persisted told me the actual mathematical/computational content in the second half of the course was worthwhile, but I was long gone by that stage.

Python&#039;s a very good choice - in fact the more science undergraduates learn scientific Python, the more they&#039;ll be motivated to write Python wrappers to other Fortran numerical libraries when they actually encounter heavy number crunching in their postgrad research, making the power of those libraries accessible to a much wider range of people and reducing the need for all but a few specialists to even know about the existence of Fortran. Which is a Very Good Thing.

Although maybe Guy Steele&#039;s work on Fortress will change the terms of this debate...</description>
		<content:encoded><![CDATA[<p>Well you got slashdotted but as usual it seems no-one RTFA.</p>
<p>Your arguments are all accurate. I was a Maths student at university who took courses in Computer Science and Physics to round out my degree, and when I came to do a third year maths school course &#8220;Introduction to Numerical Methods&#8221;, the horror of Fortran &#8211; the first half of the course was learning the language, and we seemed to spend weeks just on the arcane string output formatting &#8211; made me drop the whole subject like a hot stone. A friend who persisted told me the actual mathematical/computational content in the second half of the course was worthwhile, but I was long gone by that stage.</p>
<p>Python&#8217;s a very good choice &#8211; in fact the more science undergraduates learn scientific Python, the more they&#8217;ll be motivated to write Python wrappers to other Fortran numerical libraries when they actually encounter heavy number crunching in their postgrad research, making the power of those libraries accessible to a much wider range of people and reducing the need for all but a few specialists to even know about the existence of Fortran. Which is a Very Good Thing.</p>
<p>Although maybe Guy Steele&#8217;s work on Fortress will change the terms of this debate&#8230;</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: MJC</title>
		<link>http://www.walkingrandomly.com/?p=1397&#038;cpage=1#comment-12292</link>
		<dc:creator>MJC</dc:creator>
		<pubDate>Sun, 14 Jun 2009 05:43:09 +0000</pubDate>
		<guid isPermaLink="false">http://www.walkingrandomly.com/?p=1397#comment-12292</guid>
		<description>Ed Prescott the noble prize winner at ASU uses Fortran and would always get his grad student to learn it - even when we were taught GAUSS and Matlab.  

GAUSS is big with the econometrics people (along with EVIEWS)- always fun to begin in GAUSS spend 30 minutes getting it to run a simple regression that EVIEWS does in 10 seconds.

Matlab with the macro guys and the micro guys scoff at them all.

Interestingly in consulting if you have someone who is an expert at excel they can earn a packet.  Got to love goal seek. 

Also the add in @risk is used a lot (especially in the finance world) - not the best endorsement!</description>
		<content:encoded><![CDATA[<p>Ed Prescott the noble prize winner at ASU uses Fortran and would always get his grad student to learn it &#8211; even when we were taught GAUSS and Matlab.  </p>
<p>GAUSS is big with the econometrics people (along with EVIEWS)- always fun to begin in GAUSS spend 30 minutes getting it to run a simple regression that EVIEWS does in 10 seconds.</p>
<p>Matlab with the macro guys and the micro guys scoff at them all.</p>
<p>Interestingly in consulting if you have someone who is an expert at excel they can earn a packet.  Got to love goal seek. </p>
<p>Also the add in @risk is used a lot (especially in the finance world) &#8211; not the best endorsement!</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Martin</title>
		<link>http://www.walkingrandomly.com/?p=1397&#038;cpage=1#comment-12282</link>
		<dc:creator>Martin</dc:creator>
		<pubDate>Sat, 13 Jun 2009 09:11:40 +0000</pubDate>
		<guid isPermaLink="false">http://www.walkingrandomly.com/?p=1397#comment-12282</guid>
		<description>The title may have benefited by including the use of the word &quot;ever&quot;.

When I was a postdoc in the early 1980&#039;s, I read articles then about the demise of Fortran. I recall one article making the point that people said that language X is better, but whatever X is depended on what was in fashion. and the article noted that X appeared to be changing rapidly. The various candidates for X back then are no longer talked about, and since then we have been through a number of different candidates for X. But Fortran has survived.

In my view there are there are four reasons for the survival of Fortran in science: a) it is well-embedded in the scientific community, b) it works well, c) it is relatively natural for scientists to program in and doesn&#039;t use too many short-hands or clever tricks, d) it has the capacity to evolve. I don&#039;t think that any of these reasons stand alone, but together they have helped Fortran survive. (Aside on point a, it isn&#039;t that we are all using legacy codes, although some do exist, but communities in science are choosing to start new projects in Fortran).

So in answer to the question of whether Fortran should ever be taught to undergraduates, the answer has to be &quot;yes&quot; if the particular undergraduates will need to learn it as a core skill for the science they are training for.

But in answer to the question about whether it should be the language of choice for teaching programming, that is a very different question, and the answer will probably depend on the latest fashion. Python seems to me to be the candidate language of today, but it could recently have been Perl or Java or C++.

There is one significant change between the 1980&#039;s and today, and that is that we work in a very different computing environment. Computers are fast, we have good displays and graphics tools, and we have much richer data sets. Fortran is good at what it does, as also are Python, Perl, Java etc, but no one language is good at everything (because our understanding of &quot;everything&quot; is constantly expanding). Today&#039;s computational scientist ideally should now know more than one language in order that they can perform many different functions. Students will be ill-served if they think that they can learn programming based only on a single language.

I would also suggest that we have to see a difference between a course to teach people how to think like a programmer, and a course that is designed to teach the mechanics of a given language. These are not the same, and should not be mixed (at least, not if you want to ensure your students are not confused). I suspect that you could more-or-less teach a course on programming using any language, but the simpler the better (which probably argues for a language that is interpretative and which allows you to write one-line programs). I suspect that the problems people are discussing here arise because the course aims were not clear in the eyes of the institutes giving them.

Finally, I would make the comment that it is increasingly easy to avoid ever having to write programs, and I am not sure that is a good thing. It seems to me that one problem that results from this is that people are no longer looking at raw data, but only at what is produced by pressing a few buttons in a GUI. I am seeing several bad analyses now being published that only arise because people don&#039;t have the capacity for being critical of their data.</description>
		<content:encoded><![CDATA[<p>The title may have benefited by including the use of the word &#8220;ever&#8221;.</p>
<p>When I was a postdoc in the early 1980&#8217;s, I read articles then about the demise of Fortran. I recall one article making the point that people said that language X is better, but whatever X is depended on what was in fashion. and the article noted that X appeared to be changing rapidly. The various candidates for X back then are no longer talked about, and since then we have been through a number of different candidates for X. But Fortran has survived.</p>
<p>In my view there are there are four reasons for the survival of Fortran in science: a) it is well-embedded in the scientific community, b) it works well, c) it is relatively natural for scientists to program in and doesn&#8217;t use too many short-hands or clever tricks, d) it has the capacity to evolve. I don&#8217;t think that any of these reasons stand alone, but together they have helped Fortran survive. (Aside on point a, it isn&#8217;t that we are all using legacy codes, although some do exist, but communities in science are choosing to start new projects in Fortran).</p>
<p>So in answer to the question of whether Fortran should ever be taught to undergraduates, the answer has to be &#8220;yes&#8221; if the particular undergraduates will need to learn it as a core skill for the science they are training for.</p>
<p>But in answer to the question about whether it should be the language of choice for teaching programming, that is a very different question, and the answer will probably depend on the latest fashion. Python seems to me to be the candidate language of today, but it could recently have been Perl or Java or C++.</p>
<p>There is one significant change between the 1980&#8217;s and today, and that is that we work in a very different computing environment. Computers are fast, we have good displays and graphics tools, and we have much richer data sets. Fortran is good at what it does, as also are Python, Perl, Java etc, but no one language is good at everything (because our understanding of &#8220;everything&#8221; is constantly expanding). Today&#8217;s computational scientist ideally should now know more than one language in order that they can perform many different functions. Students will be ill-served if they think that they can learn programming based only on a single language.</p>
<p>I would also suggest that we have to see a difference between a course to teach people how to think like a programmer, and a course that is designed to teach the mechanics of a given language. These are not the same, and should not be mixed (at least, not if you want to ensure your students are not confused). I suspect that you could more-or-less teach a course on programming using any language, but the simpler the better (which probably argues for a language that is interpretative and which allows you to write one-line programs). I suspect that the problems people are discussing here arise because the course aims were not clear in the eyes of the institutes giving them.</p>
<p>Finally, I would make the comment that it is increasingly easy to avoid ever having to write programs, and I am not sure that is a good thing. It seems to me that one problem that results from this is that people are no longer looking at raw data, but only at what is produced by pressing a few buttons in a GUI. I am seeing several bad analyses now being published that only arise because people don&#8217;t have the capacity for being critical of their data.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Alan</title>
		<link>http://www.walkingrandomly.com/?p=1397&#038;cpage=1#comment-12270</link>
		<dc:creator>Alan</dc:creator>
		<pubDate>Fri, 12 Jun 2009 15:23:03 +0000</pubDate>
		<guid isPermaLink="false">http://www.walkingrandomly.com/?p=1397#comment-12270</guid>
		<description>As I mentioned before, my first exposure to programming was in college to PL/C. My second language was assembler, and one of the programs had to be written in machine code. Yes, that&#039;s op code, register, base and displacement for every command translated into hex. No variable names, no command names. Just straight hex commands. The program didn&#039;t do much, but the lesson was beautiful. When you understand programming at that level you can handle anything. But that is for Computer Science majors. I wouldn&#039;t even recommend it for engineers. Not enough payoff.

I like to compare programming to cabinet making. I can do it all with hand saws, hand planes, and chisels. It took me years to learn. When I have to build something I use power tools because they&#039;re faster. There are still times when I use hand tool skills (setting hinges) because the result is better.

I can&#039;t recommend the teaching of Fortran or any other old language (even considering newer versions) for the simple reason of maintaining an existing code base. How many of those learning the language will go on to use it in their career? It doesn&#039;t make sense. If you want to teach a low level language for the purpose of learning CS basics, that&#039;s a different story.</description>
		<content:encoded><![CDATA[<p>As I mentioned before, my first exposure to programming was in college to PL/C. My second language was assembler, and one of the programs had to be written in machine code. Yes, that&#8217;s op code, register, base and displacement for every command translated into hex. No variable names, no command names. Just straight hex commands. The program didn&#8217;t do much, but the lesson was beautiful. When you understand programming at that level you can handle anything. But that is for Computer Science majors. I wouldn&#8217;t even recommend it for engineers. Not enough payoff.</p>
<p>I like to compare programming to cabinet making. I can do it all with hand saws, hand planes, and chisels. It took me years to learn. When I have to build something I use power tools because they&#8217;re faster. There are still times when I use hand tool skills (setting hinges) because the result is better.</p>
<p>I can&#8217;t recommend the teaching of Fortran or any other old language (even considering newer versions) for the simple reason of maintaining an existing code base. How many of those learning the language will go on to use it in their career? It doesn&#8217;t make sense. If you want to teach a low level language for the purpose of learning CS basics, that&#8217;s a different story.</p>
]]></content:encoded>
	</item>
</channel>
</rss>
