From: bohy6489@iscsvax.uni.edu
Newsgroups: comp.edu
Subject: <None>
Date: 27 Aug 92 14:59:15 -0500
Organization: University of Northern Iowa

In article <1992Aug27.164424.249@linus.mitre.org>, crawford@church.mitre.org (Randy Crawford) writes:
> True also for APL and forth?

Seems to me he said that APL is a functional programming language.  And he 
never said *anything* about forth either way.  Then again, in all fairness the
statement was quoted somewhat out of context (but not really).

> No doubt that would include Lotus 123 macros and C shell scripts.  I don't 
> think that's a particularly useful statement except to an academic who doesn't 
> have to program in this "language".  It smacks of a preoccupation with theory
> and turing machine equivalency.

Actually, he *did* include macros and shell scripts as programming languages. 
But you're right, he *is* quite preoccupied with theory.  In his defense, he
wrote a heckuva text on language design, which many consider(ed) to be *the*
programming languages text.  All in all, though, I found I was able to be
interested in the things *he* was interested in throughout the semester. 
Unfortunately, this was very seldom programming languages.


>  
>> I *still* maintain (as someone else has pointed out) that it is *not* the
>> language which encourages bad programming style.  
> 

> Whoa.  Languages differ greatly in what they _allow_ the programmer to write.
> And because bad code is often a matter of poor programming style, bad C or bad
> FORTRAN is much more common than bad Pascal or bad Modula where poor style is
> more difficult.  I would agree with you, however, if you changed the word 
> "encourages" to "guarantees".

Hmmm.  I don't know.  I think that someone who writes bad code in C is going to
write bad code in *any* language, at least I have been able to observe this. 
In fact, I have seen some *horrible* Pascal code.  Granted, most of the
problems were due to indentation (non)standards, terrible identifier naming,
etc.  Okay.  Make it "languages do not *guarantee* poor programming style". 
BUT, regardless of the language, many programmers do have poor programming
style.  I still cling to that.

> I think you are objecting to more than just parentheses when you deride Lisp. 
> Functional programming languages are an acquired taste.

I'll buy that.  Though I do have my opinions (obviously) I also attempt to keep
an open mind about these things.

> Teaching programming is more than teaching style.  If the programming language
> cannot support structured types, then you cannot use it to teach structured 
> types (or it becomes unnecessarily difficult)..  The same holds for data 
> abstraction, abstract data types, advanced data constructs (linked lists, trees, 
> heaps, stacks, etc), recursion, functional programming, etc.  In my opinion, 
> FORTRAN, and BASIC are poor choices for such instruction, and C suffers for the 
> poor machine abstraction it affords.  Ada is too complex and few compilers are
> available/affordable on personal computers.  The same is true for Common Lisp. 
> Pascal is not ideal in that few professionals  use it (like Algol or PL/1 or 
> scheme or ML).  The same holds for Modula 2. 

There is the school of thought that programming should be taught as a building
experience, i.e. if you can do this with a limited amount of tools, you can do
it with the full set.  This idea has been incorporated into whole introductory 
courses at one school, to the point that the students programmed in Pascal but
were forced to do everything with character variables and files.  Whether or
not this holds merit, I do not know.  I do know that an awful lot of students
failed that course.

I do not agree with the above...

*But* I have implemented trees using arrays.  Sure, the allocation was not
*dynamic*, but the concepts were the same.  We did this as an exercise in my
data structures class (even used Pascal to do it).  And there is nothing wrong
with that.  It does show some of the assembly language concepts like relative
addressing and even motivates them.  Kind of nice, rather than having to just
except that "it works".

I see nothing wrong with teaching a course in FORTRAN to beginning students. 
My taking FORTRAN really helped me be a more organized Pascal programmer.  That
may be a function of the instructor I had for both courses (who, incidentally,
did not have a PhD and has never published but was one hell of a *teacher*).
 
> I think the conclusion among most academics who care is: teach programming in a
> language which teaches good stylistic form and supports the constructs needed 
> to learn more about computer science.  No language can be all things, but some 
> are simply inappropriate to certain tasks.

I totally agree.  Something of a contradiction with your above statement, there
*are* professionals programming in Pascal.  Not a lot, but they are out there. 
I think the language has something of a bad reputation as being a toy.  I have
found it to be very useful for anything I have ever wanted to accomplish.  What
do I know, though?  I also prefer VMS to unix.  :-]
 
> (...well reasoned comments deleted...)

Thanks for thinking they were well-reasoned...

> Maybe we should divide universities the way some have suggested we divide
> college sports: college athletics could become professional and non-academic,
> and college research could follow its own non-academic track as well.  Let the
> graduate programs become separate entities from undergrad, with different profs
> and a different agenda (more applied).  Measure the undergrad profs as teachers
> and contributors to the applied sciences.  Leave the theorists to write theory
> and to produce other theorists.

Sounds good to me!

> -- 
> 
> | Randy Crawford        crawford@mitre.org        The MITRE Corporation
> |                                                 7525 Colshire Dr., MS Z421
> | N=1 -> P=NP           703 883-7940              McLean, VA  22102

===============================================================================
Jim Bohy                                        | "If you have to ask, you'll
Graduate Student - Computer Science Education   |  never know..."
University of Northern Iowa                     | 
Cedar Falls, IA  50614                          | - Louis Armstrong, when asked
bohy@att1.uni.edu                               |   what jazz is.
===============================================================================
Xref: sparky comp.edu:1461 comp.lang.fortran:3352 comp.lang.misc:2858 comp.arch:9140 sci.math:10822