Posts Tagged ‘MatLab’

Engineering students, you may need multiple programming languages

April 16, 2009

Last month, after I posted an entry “Engineering Professors, Please Teach Some Programming Languages“, I received two well thought comments:

spinoza1111 (from his article “‘Academic” as a term of abuse‘, I know he dislikes FORTRAN because of “Go To”):

Interesting comment.

I worked as a programmer at Princeton and wound up “teaching at Princeton”. That is: the university takes the position that computer science and other engineering students MAY NOT study programming in formal Princeton classes, but are expected, as computer science students, to know C and Java upon matriculation. Therefore I was asked to teach C at Princeton.

This elitist philosophy also appears in Princeton’s math department, which offers no classes before Calculus.

Increasingly, programming is part of high school. My kid learned it in HS.

As to your hires knowing Fortran, this could be a problem in the years to come. It’s very unpopular in academia, and your hires will need training in its idiosyncracies. “Structured” Fortran was developed to avoid some of Fortran’s classic problems, but legacy code may not use the new features.

My view is that at University, students have the right to learn Truth and Beauty for a few years, and that for this reason, they shouldn’t be taught about Fortran, and I say this as one who, in 1971, debugged a nonworking Fortran compiler in object code to make it available to students. If industry uses legacy code, it should be ready to train students in older programming languages.

Otherwise, there is a danger, given the glamour and authority of university material, that students will repeat Fortran’s mistakes.

Fortran WAS a mistake. It has caused many engineering problems, including recent “credit crisis” problems because Fortran, sad to say, is used for financial modeling and speculation. Because auditors like your hire aren’t trained in it, they “audit around” it only to discover, too late and in the current crisis, that financial models built in Fortran have serious deficiencies including loss of the address of the original debtor in a securitized mortgage and circular derivatives where a is priced on b, b is priced on c, and c upon…a.

Now, Fortran doesn’t force the Fortran programmer to make these mistakes, but it does set a terrible example of “down and dirty” design which is psychological reinforcement for modern errors.

dougaj4 (an Excel advocator, see his articles “http://newtonexcelbach.wordpress.com/2009/04/12/evaluating-pi/“, “Gaussian Quadrature” and “Evaluate integrals to a specified tolerance“, etc.):

There are some things that are better learnt at university, and some that are better learnt “on the job”. In my opinion coding in specific languages is definitely in the latter group, although the basics of programming probably comes in the former.

So it seems quite reasonable to me that students should only have experience in coding Matlab, although personally I’d suggest Excel VBA which would allow the teaching of the same basics, plus proficiency in a tool of wider general use.

Now I see resistance from educators and they probably have their point too. But the reality is that industry does not soly rely on Matlab or any exclusive programming language. In fact, there are emerging new languages coming to the world. Moreover, a language is not simply a tool to do engineering work. It is a training on how to think, how to do engineering work. I hope I will get another change to write more about it. For now, without being able to tell professors to teach various programming languages, I would suggest that engineering students be ready to learn and use other languages that you do not learn in class. An eager-to-learn attitude is very important as you can not tell your boss that you are unable to do the work because you didn’t learn it at school.

Engineering Professors, Please Teach Some Programming Languages

March 19, 2009

Last summer, we had a summer intern from an engineering school.  We were hoping that she could write a few line of code to drive an engineering application. All it needed to do was to read a simple input file (five lines) and start the main application with user desired options. We told her that we don’t mind whether she used FORTRAN, C, C++, Java, shell script, or anything she liked. But to our surprise, she said that she could do the work in Matlab only because her profesoors let them do all the projects within Matlab. (more…)