[comp.lang.fortran] Teaching Fortran

meyer@mimsy.UUCP (John R. Meyer) (10/24/87)

You may be interested in

	T.A. LePera & H.E. Donley, "FORTRAN: A Viable Option for the Introductory
	Computer Science Course"

in the March 1987 issue of the ACM SIGPLAN Notices.  They discuss this very topic
and provide some good arguments in favor of teaching FORTRAN.


						Good luck,

							John
							meyer@mimsy.umd.edu
							
-- 
John R. Meyer					Domain: meyer@mimsy.umd.edu
10208C Ashbrooke Ct.				Path:   uunet.uu.net!mimsy!meyer
Oakton, VA  22124				Phone:  (703) 644-3944 (O)
Disclaimer:  The views expressed are my own.		(703) 281-5157 (H)

hankd@pur-ee.UUCP (Hank Dietz) (09/09/89)

In article <370@unmvax.unm.edu> brainerd@unmvax.unm.edu (Walt Brainerd) writes:
>I hope that engineering and science departments will continue to expose
>students to Fortran; now there will not be the excuse to avoid teaching
>them how to effectively use data structures, recursion, modules, etc.

At Purdue, ee263, our introductory engineering programming class, used to be
Pascal followed by a quick review of Fortran.  It was a tight fit, so the
Fortran was pulled out into a separate 1-credit course one year ago.  That
Fortran course has *NEVER* been offered...  my understanding is that instead
of 500 students, only about 5 wanted it and that wasn't enough.

Would we be more likely to teach 8x?  No.  In fact, we'd be *LESS* likely...
for the same reasons we still stress old C, not ANSI C:  no compilers for the
new stuff, most software is written in the old style, etc.

As an optimizing/parallelizing compiler researcher, I see Fortran as serving
the same function now that Latin served in the middle ages.  Sure, it is old
and awkward, but a lot of things were originally expressed in it; somehow it
seems very wrong to try to "modernize" the language.  For this reason, I
personally prefer teaching Fortran 66 over 77 and 8x (and over IV, WATFOR,
WATFIV, etc.).  Fortran 66 was history -- worth preserving as such.

							-hankd@ecn.purdue.edu

rfinch@caldwr.UUCP (Ralph Finch) (09/10/89)

In article <12814@pur-ee.UUCP> hankd@pur-ee.UUCP (Hank Dietz) writes:
. . .
>At Purdue, ee263, our introductory engineering programming class, used to be
>Pascal followed by a quick review of Fortran.  It was a tight fit, so the
>Fortran was pulled out into a separate 1-credit course one year ago.  That
>Fortran course has *NEVER* been offered...  my understanding is that instead
>of 500 students, only about 5 wanted it and that wasn't enough.

But what will those students do when they graduate, go to work and
find that all the existing engineering programs are Fortran?  Some
exposure to Fortran will help them and their employers.

>Would we be more likely to teach 8x?  No.  In fact, we'd be *LESS* likely...
>for the same reasons we still stress old C, not ANSI C:  no compilers for the
>new stuff, most software is written in the old style, etc.
>
>As an optimizing/parallelizing compiler researcher, I see Fortran as serving
>the same function now that Latin served in the middle ages.  Sure, it is old
>and awkward, but a lot of things were originally expressed in it; somehow it
>seems very wrong to try to "modernize" the language.  For this reason, I
>personally prefer teaching Fortran 66 over 77 and 8x (and over IV, WATFOR,
>WATFIV, etc.).  Fortran 66 was history -- worth preserving as such.

But not only are there bunches of old F66 programs, new programs are
still written in Fortran; unfortunately often using the old F66
techniques (even by students out of college!).  Fortran will be used
for a long, long time to come, IMHO.  I would like to see
*engineering* students taught the same structured programming
techniques that the CSc students learn, using whatever language.
-- 
Ralph Finch
...ucbvax!ucdavis!caldwr!rfinch

taylor@sun.soe.clarkson.edu (Ross Taylor) (03/14/91)

Teaching Fortran to University Students
---------------------------------------

I work at a small university in upstate NY.  Most of the 
students are engineers of one sort or another.  All eng. 
students are required to take a first semester course which, 
among other things, attempts to teach them Fortran.  For a 
variety of reasons the course fails in that regard.  The 
students are unable to create even the simplest of programs and 
get them write (pun intended).

As a result, we are currently debating the re-structuring of the 
Fortran course and/or its timing.  I would like to hear from 
fellow readers of this newsgroup who are involved with education 
how their institution and/or dept handles any programming 
requirements.

I would be particularly interested in comments on the following 
questions:

1.  Do you actually teach programming itself or are your 
    students expected to pick up programming skills in order to
    solve problems that are best solved with a computer?

2.  When is the first programming course given (first or second 
    semseter, first or second year etc)?

3.  Do you require Fortran, or are other languages acceptable?

4.  If you do teach programming (syntax etc) as part of any 
    required course, what percentage of the time is spent on 
    this topic?  Any non-Fortran, non-programming material 
    covered? Any other comments on course content would be 
    gratefully received as well.

Thanks in advance for any replies.

Ross Taylor
Department of Chemical Engineering
Clarkson University
Potsdam, New York 13699 (yes, we have our own zip code)

taylor@sun.soe.clarkson.edu

jav8106@ritvax.isc.rit.edu (Doctor FORTRAN) (03/17/91)

In article <9103131812.AA17727@sun.soe.clarkson.edu>, taylor@sun.soe.clarkson.edu (Ross Taylor) writes...

-I work at a small university in upstate NY.  Most of the 
-students are engineers of one sort or another.  All eng. 
-students are required to take a first semester course which, 
-among other things, attempts to teach them Fortran.  For a 
-variety of reasons the course fails in that regard.  The 
-students are unable to create even the simplest of programs and 
-get them write (pun intended).
- 
-As a result, we are currently debating the re-structuring of the 
-Fortran course and/or its timing.  I would like to hear from 
-fellow readers of this newsgroup who are involved with education 
-how their institution and/or dept handles any programming 
-requirements.

First of all, let me say that just as flowers need sun, so do scientists and
engineers need FORTRAN. What would happen if your ME students just couldn't
cope with strength of materials? Or your EE students with circuits? Would you
consider dropping those courses from the requirements?

You mention that this first-semester course includes other things, in addition
to FORTRAN. What other things? It sounds as if you're trying to cram too much
material into a single semester -- a semester which, being the first, provides
the students with plenty to cope with outside the classroom. If you are, in
fact, making a half-hearted attempt, there is little wonder that your efforts
have not been successful. [If, on the other hand, you have been making a
full-hearted attempt, please accept my apologies, and direct all flames to
/dev/null. :-) ]

Some questions on elementary computer programming appear on the PE examination,
which is as it should be. If you drop FORTRAN from your curriculum, it is
quite possible that your school could lose its accreditation as an Engineering
school, and your graduates would no longer be able to sit for the PE
examination. Of course, some other language could be substituted, but if your
students can't handle FORTRAN, I don't think they'll be able to tackle C or
Pascal, which aren't even as important in science and engineering, anyway.

Therefore, I urge you to double (at least) your efforts to teach FORTRAN to your
undergraduates.

C ==========================================================================

C === This subroutine will write a signature at the end of a posting.

      Subroutine Signature
      Write (*, 101)
  101 Format (1H1, 'Doctor FORTRAN', /, ' Master of the Realm', /,
     1            ' Reply: jav8106@ritvax.isc.rit.edu')

      Return
      End

Ross Taylor <taylor@sun.soe.clarkson.edu> (03/18/91)

In response to my posting regarding the teaching of Fortran 
Doctor FORTRAN wrote:

>First of all, let me say that just as flowers need sun, so do scientists and
>engineers need FORTRAN.

No question about it.

>You mention that this first-semester course includes other things, in addition
>to FORTRAN.  What other things?

Introduction to word processing.
Introduction to spreadsheets.

Actually, I should say that I have never taught the course in 
question but have to deal with students who can't program in 
subsequent courses.  I am one of many having a hard time trying 
to get things changed.

>Some questions on elementary computer programming appear on the PE examination,
>which is as it should be. If you drop FORTRAN from your curriculum, it is
>quite possible that your school could lose its accreditation as an Engineering
>school.

Chemical engineering accreditation requires some use of a high 
level language.  Accred. rules do not say that the student must 
be fluent (or even semi-literate) in a language, however.  I 
can't comment on other eng. disciplines but I imagine the same 
things can be said there as well.

>Therefore, I urge you to double (at least) your efforts to teach FORTRAN to your
>undergraduates.

Glad to hear your on my side.  Heres hoping we're succesful.

Ross Taylor
Department of Chemical Engineering
Clarkson University
Potsdam, NY 13699

taylor@sun.soe.clarkson.edu

+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Go KNIGHTS (that's our hockey team who just beat the Badgers of 
Wisconsin (defending national champs) to reach the last 8 of this 
years NCAA Division I hockey tournament).
+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

hrubin@pop.stat.purdue.edu (Herman Rubin) (03/18/91)

In article <9103131812.AA17727@sun.soe.clarkson.edu>, taylor@sun.soe.clarkson.edu (Ross Taylor) writes:
> 
> Teaching Fortran to University Students
> ---------------------------------------
> 
> I work at a small university in upstate NY.  Most of the 
> students are engineers of one sort or another.  All eng. 
> students are required to take a first semester course which, 
> among other things, attempts to teach them Fortran.  For a 
> variety of reasons the course fails in that regard.  The 
> students are unable to create even the simplest of programs and 
> get them write (pun intended).
> 
> As a result, we are currently debating the re-structuring of the 
> Fortran course and/or its timing.  I would like to hear from 
> fellow readers of this newsgroup who are involved with education 
> how their institution and/or dept handles any programming 
> requirements.

This problem has been encountered elsewhere.  I suspect that the main
reason the course fails is that those teaching the course are interested
primarily in such aspects of the language as data management, IO, and
formatting.  The first is of essentially no importance to the students
involved, and the last two are of minor importance.  In using programming
to help in mathematics, the input is all in the PROGRAM, not the data,
and the alignment, etc., of the output is not of major importance, and
can usually be copied if neat formatting is required.

On the other hand, the calculation aspects of Fortran, or any other language,
usually considered of minor importance by CS people, are THE important aspect.
One can see the deficiencies of languages by looking at this point, and they
are manifold.  
--
Herman Rubin, Dept. of Statistics, Purdue Univ., West Lafayette IN47907-1399
Phone: (317)494-6054
hrubin@l.cc.purdue.edu (Internet, bitnet)   {purdue,pur-ee}!l.cc!hrubin(UUCP)

fox@rudolf.nscl.msu.edu (Ron Fox) (03/20/91)

--
In article <8110@mentor.cc.purdue.edu>, hrubin@pop.stat.purdue.edu
(Herman Rubin) writes:
>Path:
>msuinfo!midway!ncar!elroy.jpl.nasa.gov!sdd.hp.com!spool.mu.edu!news.n
>nd.edu!mentor.cc.purdue.edu!pop.stat.purdue.edu!hrubin
>From: hrubin@pop.stat.purdue.edu (Herman Rubin)
>Newsgroups: comp.lang.fortran
>Subject: Re: Teaching Fortran
>Message-ID: <8110@mentor.cc.purdue.edu>
>Date: 18 Mar 91 13:19:30 GMT
>References: <9103131812.AA17727@sun.soe.clarkson.edu>
>Sender: news@mentor.cc.purdue.edu
>Lines: 36
>
>In article <9103131812.AA17727@sun.soe.clarkson.edu>,
>taylor@sun.soe.clarkson.edu (Ross Taylor) writes:
>> ....
> >  For a 
>> variety of reasons the course fails in that regard.  The 
>> students are unable to create even the simplest of programs and 
>> get them write (pun intended).
>> 
>> As a result, we are currently debating the re-structuring of the 
>> Fortran course and/or its timing.  I would like to hear from 
>> fellow readers of this newsgroup who are involved with education 
>> how their institution and/or dept handles any programming 
>> requirements.
>
>This problem has been encountered elsewhere.  I suspect that the
>main
>reason the course fails is that those teaching the course are
>interested
>primarily in such aspects of the language as data management, IO,
>and
>formatting.  
>  ....

  I've done my share of tutoring for the basic courses that are taught
here
(Mich. State) and what I've seen is not that the course is oriented
towards
formatting or data management at all, but raher that so much emphasis
is
put on the *syntax* of programming in FORTRAN, that nothing is taught
about
how to block out and construct a program given the problem to be
solved.
So students when faced with the blank canvas of an editor screen don't
know how
to decompose the problem into manageble pieces.

>On the other hand, the calculation aspects of Fortran, or any other
>language,
>usually considered of minor importance by CS people, are THE
>important aspect.
>One can see the deficiencies of languages by looking at this point,
>and they
     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
>are manifold.  
  ^^^^^^^^^^
  Here there's a bit of disagreement.  While I'd certainly understand
that the
bulk of the computing *you* might do is calculational in nature,
please understand
that that's not the case for everyone.  There are several application
programming
domains.  Yours is math/stat, mine is real time data acquisition.  You
need to be
able to express calculation in a notation that is clear and
straightforward, but my
needs are to be able to express data structures and levels of data
abstraction as
well as to access bits of hardware, there are things I do very
comfortably with
PASCAL and C that I'd shudder to think about doing in FORTRAN,
similarly, there
are things I do in FORTRAN I'd shudder to do in PASCAL or C, and there
are things
I need to do in Assembly that I can't do in any of the above.  The key
is picking
the language that fits the application domain you're working in best. 
FORTRAN
is clearly it for Math/Stat, and many problems in Engineering as well.
However,
for some of the mesh/grid methods of problem solution, advanced data
structuring
facilities can certainly help to represent the solution of a problem
in a clear and
understandable way.
		Ron


Ron Fox                     | FOX@MSUNSCL.BITNET      | Where the name 
NSCL                        | FOX@RUDOLF.NSCL.MSU.EDU | goes on before
Michigan State University   | MSUHEP::RUDOLF::FOX     | the quality
East Lansing, MI 48824-1321 |                         | goes in.
USA

roth@dtoa1.dt.navy.mil (Roth) (03/20/91)

In article <9103131812.AA17727@sun.soe.clarkson.edu> taylor@sun.soe.clarkson.edu (Ross Taylor) writes:
>Teaching Fortran to University Students
>---------------------------------------
>
	[...deleted stuff...}
>
>1.  Do you actually teach programming itself or are your
>    students expected to pick up programming skills in order to
>    solve problems that are best solved with a computer?

Most new engineers who we hire know "a little" Fortran. Most of what we
"officially" teach is Fortran syntax. *How* to write programs is hard
to teach; the best presentation I've seen is in Cooper's "Oh! Pascal!"
>
>2.  When is the first programming course given (first or second
>    semseter, first or second year etc)?
>
>3.  Do you require Fortran, or are other languages acceptable?
>
Fortran is necessary for our folk to do anything with extant programs.
But, because we have so many PC's around, and engineering workstations
as well, new programs can be written in whatever suits the computation.
My own preference is Turbo Pascal. I've taught courses with it to our
engineers and to junior college classes, and found it superior to other
languages because it provides an *environment*. The latest version (6.x)
even provides the skeleton for an event-driven program that programmers
can use in a "fill-in-the-blanks" approach, but it uses the non-Fortran
"object oriented" approach...(pluses & minuses everywhere!). The advantage
I find is that it is a convenient way to learn programming, IF your
facilities allow each student access to a PC. Also, there's a full on-line
help facility in TP6.0. Finally, I haven't found what I call "The Best Fortran
Textbook" because the language is irregular enough to make this a
difficult subject to write about (you have to grow up as a native of
Fortrania to speak the language correctly).

>4.  If you do teach programming (syntax etc) as part of any
>    required course, what percentage of the time is spent on
>    this topic?  Any non-Fortran, non-programming material
>    covered? Any other comments on course content would be
>    gratefully received as well.
>
Syntax takes the first 4 weeks, then its on to other things. Note that I
usually have to refer to the syntax manual myself, & I've been doing this for 
too long.

I opine that the other "non-programming" material you're presenting is
extremely useful to the students. One of my colleagues believes that
the minimum computing an engineer needs (i.e., the *bare* minimum) is
spreadsheet & wordprocessor & Mathematica. Teach these in the Freshman year,
and your entire curriculum will change.

Peter N Roth      roth@dtoa1.dt.navy.mil
Objects in this office are closer than they appear.

rbe@yrloc.ipsa.reuter.COM (Robert Bernecky) (03/26/91)

Henry Ross writes recently about the troubles of teaching Fortran.

I guess I have a few questions:

a. What background do you presume for the students? No computing, some
   games and simple programming?

b. What math background?

I'm wondering if it might make sense to introduce computing and computational
mathematics using APL, J, or Mathematica, and THEN introduce Fortran only
at the end of the course, as a "For industrial strength applications 
written in industry, use Fortran" approach. 
That way, you decompose the problem into two bits: Learning computing, and 
learning Fortran.

Bob