Eng-Tips is the largest engineering community on the Internet

Intelligent Work Forums for Engineering Professionals

  • Congratulations waross on being selected by the Tek-Tips community for having the most helpful posts in the forums last week. Way to Go!

Should Undergraduates Be Taught Fortran? 3

Status
Not open for further replies.

drawoh

Mechanical
Oct 1, 2002
8,860
0
0
CA
Here is an interesting discussion on Slashdot.

Slashdot is a computer geek site, although there are replies by at least one engineer. Any thoughts?

Critter.gif
JHG
 
Undergraduate _engineers_ should learn Fortran, some assembler, and FORTH.
... because they can be taught, and usually debugged, the Elbonian way.





Mike Halloran
Pembroke Pines, FL, USA
 
I read all of the link mentioned in the first post:


and agree with a lot of it. I learned BASIC (various 1980's flavours) first, then 6502 assembly (ah, the memories of LDA, BNE, etc). FORTRAN was taught at university (1987) and used in all the CFD/FEA courses. Then I forgot it.

I never really appreciated (or learned properly) FORTRAN until I started writing user subs for ADAMS a couple of years after I graduated. None of the exercises at university helped me in any way. Oddly enough, I taught myself C at about the same time. Learning multiple languages makes you need to understand things like memory management and other practicalities (pass by value, reference, etc).

My personal view is that engineering students will endure any computer programming class and learn nothing unless they are already computer nerds and want to learn a different language.

I work in a mixed FORTRAN/C/C++ shop and the choice of language is a purely religious choice, as is the ensuing debate.

- Steve
 
I use Fortran with Abaqus, though it's hardly advanced stuff. Anybody who had learnt any programming language could pick it up in an hour.

corus
 
Mike come on - thats like saying students should still be taught to use a slide ruler - because thats what the teacher understand...

I was taought Fortran 77 back in the '90 at my univercity in Denmark - and found it stupid.

Best regards

Morten
 
Computers are stupid.
FORTRAN is primitive.
It's also stable, in terms of behavior, so it's going to respond consistently to typical errors, and it's going to behave like the documentation says it should.
It's also stable, in terms of language drift, so its behavior is not going to be much different in forty years, when you will need to understand some hoary old NASA code.



Mike Halloran
Pembroke Pines, FL, USA
 
We weren't required to learn FORTRAN. We had to take C in the earlier years and then ended up utilizing mostly Matlab and Maple in the later years of undergraduate. I only started using FORTRAN code in grad studies only because some of the papers I was reading referenced their code which was in FORTRAN.
I found Matlab to be the most useful in comparison when actually doing engineering work.
Although, the work could have been done in any of the languages. I think students should learn a "primitive" language as well as a more advanced one (at least).
After all, we are in a computational era. [smile]



Fe
 
I think students should be taught a programming language. I think it helps think logically and methodically about problems. While the only "programming" I have done since graudation is in Excel, the courses I had certainly helped. However, I believe the value of programming classes is more in practicing sequential, logical analysis. This skill is crucial.

The classes I had were using Matlab and C++, so I can't give an opinion on Fortran. However, I don't know that a lower-level language is necssary. I think it should be sufficient that engineers know how to program in one higher-level language. The idea is to make them better at using software, not able to write it. Let the software/computer majors worry about that.

-- MechEng2005
 
MechEng2005 hit the nail on the head. All engineers should have some understanding of how software is created and the limitations there of.

Also, since computers only do EXACTLY what they are programed to do, learning some programing teaches methodical thinking and the importance of details.
 
I think FORTTRAN is taught because that's what is there. Feed it to the students instead of throwing it in the trash where it belongs.

Far more useful to teach VBA and object-oriented programming. That, and databse tools.
 
They should be taught Matlab and/or Mathcad. From an engineer's perspective, the job function is to solve engineering problems, not dink around with compilers, pointers, memory management, and programming languages.

Matlab insulates the engineer from solving programming problems that come with every new math problem, and allows the engineer to concentrate on solving the ENGINEERING problem, as opposed to the PROGRAMMING problem.

Mathcad, for the most part, aside from the usual griping, which I'll ignore here, is, from an engineer's perspective a great tool for solving the simple and mundane, everyday, problems we come across in engineering.

Fortran is, after all, a programming language. If you think that you might be creating software tools, then Fortran is probably the right answer. Otherwise, you'd be better off with Visual C or Visual Basic, for the occasional situation where you need to generate a program or modify a program.

TTFN

FAQ731-376
 
Splitting hairs here...

Matlab, Mathcad and (gulp) Excel are not languages, they are proprietary applications.

FORTRAN is a language that can be taught, independently from applications that can compile it and run it.




- Steve
 
Matlab is an interpreted language; just look at the snippets included wit the typical Matlab posting here.

While Mathcad does not need to be programmed for simple problems, it too, is a form interpreted program and has an interpreted programming language of its own.

But, that's besides my point, which is that I think that an engineer should be taught Matlab and/or Mathcad, in lieu of Fortran, and should be taught something like Visual C++ before Fortran. The question posed was whether Fortran should be taught, not whether a programming language should be taught.

TTFN

FAQ731-376
 
"Matlab is an interpreted language"

Wrong! It is an application you can lease/buy from The MathWorks. It uses an interpreted language.

Whereas FORTRAN, C, C++ and others are pure languages.

- Steve
 
Come on Steve you know very well there are other interpreters available for the matlab 'language'. I think the distinction that it is not really a language if it can only be run inside one proprietary app is pushing things a bit as well, to be honest.

As to the main point of this thread, I'd resent being taught more than one computer language at uni, simply because the chances of them teaching me the right one for real life is unlikely, and they only need teach one to teach good programming habits.

It's not a religious war for me, most computer languages I've ever used suck in various ways, and it is just as possible to write poor programs in (say) Pascal as it is to write good programs in Basic. So, given that Fortran has been around for 40 years and is NEVER going away, it is not necessarily a bad choice, but I suppose it does lack some of the more advanced features that most modern languages have, so may not be a useful tool to teach the concepts used in modern languages.

FWIW the last compiled code I wrote at work was in Fortran, 2 years ago. The first compiled code I wrote at work was in Fortran, 27 years ago, approximately.

Of course I would expect anyone who has learned a proper grown up modern language would pick Fortran up in 4 hours, so to that extent there is no great harm in not learning it.


Cheers

Greg Locock

SIG:please see FAQ731-376 for tips on how to make the best use of Eng-Tips.
 
Zoom forwards to modern times...

Who thinks of Modelica as a product or a language?

Most mangers where I work think it is a product.

- Steve
 
Again, that's not the point. The question is whether Fortran should be taught versus something else. No one said that the alternative had to be a programming language.


As for the so-called "pure" languages, I defy you to find a fielded Fortran, or C, program that can be arbitrarily compiled on any compiler for any operating system without modification. Every progam written is tailored for its compiler and its operating system, and becomes specific to its application, the compiler.

Wikipedia is oft-maligned, but,
A programming language is a machine-readable artificial language designed to express computations that can be performed by a machine, particularly a computer. Programming languages can be used to create programs that specify the behavior of a machine, to express algorithms precisely, or as a mode of human communication.

That fits the bill for Matlab, Fortran, and even Mathcad

TTFN

FAQ731-376
 
I defy you to find a fielded Fortran, or C, program that can be arbitrarily compiled on any compiler for any operating system without modification

You are defining my job. Except you left out C++.

Any compiler that implements ANSI X3.159-1989 can compile my C code. ISO/IEC 9899:1990 adds more functionality that the Windoze guys seem to like.

- Steve
 
petty squabbles to one side ...

In my experience, there has been a move toward computer apps that take and make data. That data is a mystery to most (I've watched my father double-clicking on what is clearly a text file). Writing programs to sift/sort/filter text files takes minutes if you know what you are doing and have a complier.

Teaching kids FORTRAN may not be the answer. Teaching them to search for compiler tools may be better (my 6502 assembler .... better than sex).

- Steve
 
I think it depends on what you aim to use your programming skills for. Myself I work within the CAE-business where it is quite often necessary to write more or less complex programs for number crunching and treatment of results. I have used Fortran quite much and it is a good tool, however it is not very good for extracting stuff from large files meaning that a pre step using e.g. awk was always necessary. Now I have discovered Perl which has it all in one, the more I use it the more I like it. Of course for huge number crunching tasks it might not be the solution, but in my world it is almost unbeatable.





Live Long and Prosper !
 
Status
Not open for further replies.
Back
Top