Engineering Professors, Please Teach Some Programming Languages

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. Well, Matlab is definitely an option to consider but it requires paid license. That could be a headache when we deliver our software tool. As a result, we decided to write the code ourselves and let her work on the XML data input file for the major application and that was all she did in the last summer.

So, I wonder whether the current engineering schools should train their students to develop software using multiple programming languages or not. I know some students will not end up to writing codes at all. That’s for sure. But many of them will. In fact, nowadays in industry, there are many legacy applications written in FORTRAN and they are still in use and they require constant changes.  Can we afford to have all new engineers who claim that the only programming language they know is Matlab?

Tags: , , , , , , ,

8 Responses to “Engineering Professors, Please Teach Some Programming Languages”

  1. Use Opersource for sure, but how much? « Paviavio’s Blog Says:

    […] Paviavio’s Blog Just another weblog « Engineering Professors, Please Teach Some Programming Languages […]

  2. dougaj4 Says:

    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.

    • paviavio Says:

      I see your point. Thanks! I think a student should have an attitude to learn what is needed on the job, not to refuse to learn simply because he/she is not taught at school.

  3. spinoza1111 Says:

    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.

    • paviavio Says:

      Thank you for your comments. Your story reminds me another intern we had: a high school student having some C++ knowledge. We asked him to build a GUI application in Java. You may think we asked too much. We actually didn’t expect much from him. But he quickly learned Java and built an excellent application for us. We finally came up to a paper and let him present it at a conference.

  4. Engineering students, you may need multiple programming languages « Paviavio’s Blog Says:

    […] need multiple programming languages By paviavio Last month, after I posted an entry “Engineering Professors, Please Teach Some Programming Languages“, I received two well thought […]

  5. Livio Says:

    I have to say that here in Italy we have the same your situation.
    Engineering students are not supposed to be able to “write” software.
    They have to know the world around software but they are not required to dirty the hand with coding.
    In my IT company we face your same problem with young engineers.
    The ones that are able to do something is just because they have passion for programming and IT in general.
    I have found spinoza1111’s theory (can I call it in such a way ?) really interesting:
    Fortran -> new credit.crises++ (sorry for this mixed syntax)

  6. Top 15 Popular Posts of 2009 « Paviavio           Says:

    […] Engineering Professors, Please Teach Som […]

Leave a Reply

Fill in your details below or click an icon to log in: Logo

You are commenting using your account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s

%d bloggers like this: