×
INTELLIGENT WORK FORUMS
FOR ENGINEERING PROFESSIONALS

Contact US

Log In

Come Join Us!

Are you an
Engineering professional?
Join Eng-Tips Forums!
  • Talk With Other Members
  • Be Notified Of Responses
    To Your Posts
  • Keyword Search
  • One-Click Access To Your
    Favorite Forums
  • Automated Signatures
    On Your Posts
  • Best Of All, It's Free!

*Eng-Tips's functionality depends on members receiving e-mail. By joining you are opting in to receive e-mail.

Posting Guidelines

Promoting, selling, recruiting, coursework and thesis posting is forbidden.

Students Click Here

Should Undergraduates Be Taught Fortran?
2

Should Undergraduates Be Taught Fortran?

Should Undergraduates Be Taught Fortran?

(OP)
   Here is an interesting discussion on Slashdot.

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

               JHG

RE: Should Undergraduates Be Taught Fortran?

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

RE: Should Undergraduates Be Taught Fortran?

I read all of the link mentioned in the first post:

http://www.walkingrandomly.com/?p=1397

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

RE: Should Undergraduates Be Taught Fortran?

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

RE: Should Undergraduates Be Taught Fortran?

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

RE: Should Undergraduates Be Taught Fortran?

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

RE: Should Undergraduates Be Taught Fortran?

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

RE: Should Undergraduates Be Taught Fortran?

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

RE: Should Undergraduates Be Taught Fortran?

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.

RE: Should Undergraduates Be Taught Fortran?

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.

RE: Should Undergraduates Be Taught Fortran?

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: Eng-Tips.com Forum Policies

RE: Should Undergraduates Be Taught Fortran?

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

RE: Should Undergraduates Be Taught Fortran?

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: Eng-Tips.com Forum Policies

RE: Should Undergraduates Be Taught Fortran?

"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

RE: Should Undergraduates Be Taught Fortran?

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: Eng-Tips.com Forum Policies for tips on how to make the best use of Eng-Tips.

RE: Should Undergraduates Be Taught Fortran?

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

RE: Should Undergraduates Be Taught Fortran?

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,

Quote:

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: Eng-Tips.com Forum Policies

RE: Should Undergraduates Be Taught Fortran?

Quote:

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

RE: Should Undergraduates Be Taught Fortran?

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

RE: Should Undergraduates Be Taught Fortran?

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 !

RE: Should Undergraduates Be Taught Fortran?

(OP)
truckcab,

   I like Perl for manipulating text.  It has a couple of built-in functions for search and replace, that are amazing.  On the other hand, I like playing with computers, and I don't mind learning new languages.  

   The best argument for Fortran is that non-computer technical people have better things to do than learn new computer languages.  I have not seen any good books on Fortran in the local stores, so when I have to use a computer language for calculations, I tend to use C.  C is not that good a language for calculations, and for analysis, the mid-level capabilities of C are not that useful, but if you have a hammer, your problem looks like a nail.

   I have done calculations using the AutoLISP built into AutoCAD.

               JHG

RE: Should Undergraduates Be Taught Fortran?

Personally I use Matlab (or Octave) for post-processing data, with C-MEX extensions for things Matlab alone cannot do (although that list has got shorter over the 19 years I've been using it!).

C for general maths isn't that good.  C++ is a lot better, with its overloads and template classes.  I've spent the last week or two converting code from Matlab to C++, line-by-line with hardly any changes.

- Steve

RE: Should Undergraduates Be Taught Fortran?

One could argue that the MATrix LABoratory is king of computations.
peace

Fe

RE: Should Undergraduates Be Taught Fortran?

I'm torn.  Matlab is the (auto at least) industry standard for those who have grown up and renounced Excel.  But it is still proprietary, even though there are clones that use the same syntax.  Teaching Matlab to students seems akin to teaching PowerPoint - vendor lock-in.

Mind you, most software vendors shower their goods on universities, so TMW aren't in any way the guilty ones.

I would have killed to use ML in my uni days, had I known it was there.

- Steve

RE: Should Undergraduates Be Taught Fortran?

I can write in every programming language in the world.  How do I achieve this feat? Simply because before starting most things (big or small), I'll write the pseudo code.  With sufficient iterations the pseudo is detailed enough for me to program in any language since it's just "vocabulary" by then.  

What I'm saying is that most people focus on learning a computer language as opposed to learning how to program.  They are quite different things.  You can know a language well but be a poor programmer.  But if you are a good programmer, switching languages is really just learning the correct syntax.

 

-
Syl.
www.aercoustics.com

RE: Should Undergraduates Be Taught Fortran?

I totally agree with SylvestreW. He hit it right on.

peace

Fe

RE: Should Undergraduates Be Taught Fortran?

I disagree, like I always do.

When I first found Matlab, it was a revelation.  It still is in some ways, although I can't be done with all the "improvements" over the last few years.

Likewise, when I first learned C.  Amazing compared with what I's known before.

And I'm still learning new tricks in C++.

Pseudo-code?  Pah!

- Steve

RE: Should Undergraduates Be Taught Fortran?

My first opinion:
Students should learn a programming language so they get the basics of programming logic and understand some of what their computer is actually doing (as stated above). Frankly I don't care if it's FORTRAN, BASIC, C++, etc. Most engineers will not be programming in one of these languages anyway. It's the education that's most important here. BTW, I took FORTRAN 77 back when it was brand new. I dinked around with BASIC after college, but it was for fun and not for any professional use. However, the skills I learned made me a very good RPN programmer for my various HP calcs, and I use most of my programs professionally. We have 12 engineers in our office, and half use an HP calc, but I am the only one who programs either kind (mostly my HP-42S, and sometimes my HP-41CX and HP-48G+).

My second opinion (everyone wants a second opinion):  Students should get a good grounding in Excel, Mathcad, and/or Mathematica because they will likely be using one or more of these professionally. I venture to guess that most of use Excel every day or nearly so, and I would make Excel training a requirement and Mathcad and Methematica an elective. For Excel training, I don't mean just learning how to use the program itself, but how to use to solve real-world problems. BTW, I use Excel daily and Mathcad once in a while. I used to use Mathcad more often, when I was doing more pure design. I am the only Mathcad user in my office of 12 engineers, and I am pretty sure I am the only Mathcad user in our region of the company (>200 engineers). I am also one of only two engineers in the office who use Excel for more than just basic calculations. The other guy is a recent graduate and he's like me in the sense that if we see an opportunity to automate and standardize a frequent calculation, we build a spreadsheet.

I'm not trying to brag. I'm just more facinated by numbers, equations, and ways to simplify my calculation life by taking on the task of building a solution (even if it takes longer). On the other hand, I'm not terribly fascinated by project management and the financial side of the business, even though I do that more now than design.

RE: Should Undergraduates Be Taught Fortran?

I can think of about 10 things that undergrad engineers should learn instead of Fortran.

1) How to spell
2) How to make an outline of a report before starting to type
3) How to use Excel the way it's designed
4) How to turn off MSN while at work
5) How things in their field of interest are manufactured
6) How their employers actually generate income and profit
7) How and where to find which design loads to use
8) What "design requirements" are.
9) How to work with others
10) How to talk to clients

Come to think of it, I have about 15 more, but I need to get to work.

tg

RE: Should Undergraduates Be Taught Fortran?

lol, that MSN one is sooo true. smile

Fe

RE: Should Undergraduates Be Taught Fortran?

I had to take a Fortran course in college which meant of course in those days all the things that went with it; punch cards, lines at the computer lab, waiting for days for your turn for your program to be run only to discover that you had built a 'do loop' into the thing and you had to do the whole thing over again.  It was much less important to me at the time than the slide rule training that I had also had just a little earlier.  That is how I got calculations done on a day to day basis and when examinations had to be taken.

I have never used it since even though I did get the first programmable calculator that HP came out with (10 steps-wow-I thought I'd died and gone to heaven, and I was the envy of the office) but I never equated my having learnt Fortran with any ability to use it.  I can't program the HP 23 that I own today.

Still, and even to this day even though my type of engineering doesn't require me to write programs (I use plenty, however), I think it gave me a basic understanding of what is going on inside the belly of the beast when a computer does computations or sizing for me and it helped me understand early on that "garbage in = garbage out".

rmw

RE: Should Undergraduates Be Taught Fortran?

One of my early beefs with programming (possibly fodder for a new thread) was:

i = i + 1

Ouch...

RE: Should Undergraduates Be Taught Fortran?

i++;

Makes much more sense.  Except that "i" is reserved in some languages.

- Steve

RE: Should Undergraduates Be Taught Fortran?

What's wrong with i=i+1 ?
I sometimes use this in Matlab. Although, for obvious reasons not in C.

peace

Fe

RE: Should Undergraduates Be Taught Fortran?

Fex, try subtracting i from both sides of the equation and see what your high school Algebra teacher has to say.

All this talk of index counts is giving me flashbacks to my 2 years of C at university (Aero had to take C, Mechanical got to take visual basic).  My most complex program for the end of year project wouldn't work because I got them mixed up somehow.  

Both years were given by completely unintelligible lecturers, one from Iran and one from Newcastle.  I heard the one from Newcastle took a course on how to be a better teacher after our reviews of his course.  The one from Iran on the other hand wanted us to submit 2 reviews, one anonymous as was school policy the other with our names on it as he thought there would be a difference in how we graded him if we feared retribution.  Not me, I filled in both exactly the same, mostly 1's & 0's (fitting for a computing course though the scale was something like 1-5 with 5 being good) with my name on one in big letters.

And I wonder why I'm having trouble finding an alternative employerwinky smile.

As to the OP, not sure it has to be Fortran but learning C has given me some appreciation for how code is done, what's going on behind the scenes in other programs etc.  Even when doing some stuff in Excel this comes in handy.

KENAT,

Have you reminded yourself of FAQ731-376: Eng-Tips.com Forum Policies recently, or taken a look at posting policies: http://eng-tips.com/market.cfm?
What is Engineering anyway: FAQ1088-1484: In layman terms, what is "engineering"?

RE: Should Undergraduates Be Taught Fortran?

Real life story form a practising engineer...

I created a C++ matrix class about 10 years ago for DoE/optimisation stuff using our simulation results.  I wanted to make Matlab->my code easy to translate.

This past few months I've extended it to be a template class (needed complex variables).  Then I've used it for some big matrix maths it was never really designed for.  So I've had to interface it with lapack and blas, which are both FORTRAN.

Had I not known the intricacies FORTRAN, I would have been stuffed.

- Steve

RE: Should Undergraduates Be Taught Fortran?

(OP)

Quote (KENAT):

Fex, try subtracting i from both sides of the equation and see what your high school Algebra teacher has to say.

   That is i gets i+1.

   As opposed to the equals operator, which is what you are discussing.  APL uses an arrow as an assignment operator.  C uses == as the equals operator.
 

               JHG

RE: Should Undergraduates Be Taught Fortran?

i = i+1 is just shorthand. The subscripts have been dropped:

i(n) = i(n-1)+1

Personally, while I agree that it could anger algebra teachers, I like it. By knowing that i = i + 1 is a valid statement (in certain applications) I feel more powerful. I can now look at somebody that only knows algebra and not programming and say, "You can't say i = i + 1, but I can, because I know something you don't."   ;)

-- MechEng2005

RE: Should Undergraduates Be Taught Fortran?

MechEng2005, I agree

i(n)-i(n)=i(n-1)+1-i(n)...

KENAT also has an algebraic point. But, when I am programming I rarely think of it as just algebra.

peace
 

Fe

RE: Should Undergraduates Be Taught Fortran?

... anyone who uses "i" as an index will get bitten when their code becomes complex.  Or "j".

- Steve

RE: Should Undergraduates Be Taught Fortran?

True. smile

Fe

RE: Should Undergraduates Be Taught Fortran?

...if you are referring to MILITARY students (Annapolis, West Point, etc.) it might have to be ADA instead of FORTRAN.

RE: Should Undergraduates Be Taught Fortran?

I learned FORTRAN IV in 1967 along with a slide rule class and have used the programming principles in some self taught AutoLisp to draw something I wanted to do repetitively.  I wrote several structural programs for transmission pole design and a baseplate design program using FORTRAN which required lots of number crunching.  In the late 1980's I learned a LISP variant called ICAD that was an artificial intelligence system that ran on a Symbolics computer.

I've used programmable HP calculators and written programs for them (RPN is the best and I can't use an algebraic calculator today).

I think the students should learn some type of procedural language and with the possibility of calling FORTRAN routines from C++, maybe both languages should be taught.

_____________________________________
I have been called "A storehouse of worthless information" many times.

RE: Should Undergraduates Be Taught Fortran?

FORTRAN is to programming languages as LATIN is to ENGLISH...a predecessor with much "historical" insight and foundation to pass along to the new student.

...so, learn it, No. Study about it, Yes.

RE: Should Undergraduates Be Taught Fortran?

Well, oddly, there's still a bunch of diehards out there, cranking out BRAND NEW Fortran code.  Why?  Beats me...

The latest posting in the Fortran forum is some guy wanting to Bessel function evaluations in double precision Fortran...

TTFN

FAQ731-376: Eng-Tips.com Forum Policies

RE: Should Undergraduates Be Taught Fortran?

... and the likes of Intel are still working on polishing their Fortran compilers day and night.

- Steve

Red Flag This Post

Please let us know here why this post is inappropriate. Reasons such as off-topic, duplicates, flames, illegal, vulgar, or students posting their homework.

Red Flag Submitted

Thank you for helping keep Eng-Tips Forums free from inappropriate posts.
The Eng-Tips staff will check this out and take appropriate action.

Reply To This Thread

Posting in the Eng-Tips forums is a member-only feature.

Click Here to join Eng-Tips and talk with other members! Already a Member? Login


Resources

Low-Volume Rapid Injection Molding With 3D Printed Molds
Learn methods and guidelines for using stereolithography (SLA) 3D printed molds in the injection molding process to lower costs and lead time. Discover how this hybrid manufacturing process enables on-demand mold fabrication to quickly produce small batches of thermoplastic parts. Download Now
Design for Additive Manufacturing (DfAM)
Examine how the principles of DfAM upend many of the long-standing rules around manufacturability - allowing engineers and designers to place a part’s function at the center of their design considerations. Download Now
Taking Control of Engineering Documents
This ebook covers tips for creating and managing workflows, security best practices and protection of intellectual property, Cloud vs. on-premise software solutions, CAD file management, compliance, and more. Download Now

Close Box

Join Eng-Tips® Today!

Join your peers on the Internet's largest technical engineering professional community.
It's easy to join and it's free.

Here's Why Members Love Eng-Tips Forums:

Register now while it's still free!

Already a member? Close this window and log in.

Join Us             Close