home *** CD-ROM | disk | FTP | other *** search
- Newsgroups: comp.edu
- Path: sparky!uunet!zaphod.mps.ohio-state.edu!magnus.acs.ohio-state.edu!usenet.ins.cwru.edu!agate!linus!linus.mitre.org!crawford
- From: crawford@church.mitre.org (Randy Crawford)
- Subject: Re: programming languages, education, unanswered questions, loose threads
- Message-ID: <1992Aug27.164424.249@linus.mitre.org>
- Sender: crawford@church (Randy Crawford)
- Nntp-Posting-Host: church.mitre.org
- Organization: The MITRE Corporation, McLean, VA
- References: <1992Aug26.170100.6270@iscsvax.uni.edu>
- Date: Thu, 27 Aug 1992 16:44:24 GMT
- Lines: 88
-
- In article <1992Aug26.170100.6270@iscsvax.uni.edu>, bohy6489@iscsvax.uni.edu writes:
- > I had a programming languages course with Bruce MacLennan while at the
- > University of Tennessee. He made three statements which (I think) contribute
- > very nicely to this thread during the course of that semester:
- >
- > 1) "Every language since FORTRAN, with the possible exception of
- > functional programming languages, is just warmed-over FORTRAN."
-
- True also for APL and forth?
-
- > 2) "A programming language is defined as a language in which you can
- > write *any* program."
-
- 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.
-
- > 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".
-
- > With the possible exception
- > of LISP (which IMHO is unreadable), anyone can write a readable program in any
- > language.
-
- I think you are objecting to more than just parentheses when you deride Lisp.
- Functional programming languages are an acquired taste.
-
- > So the argument of what language should we use to teach CS is, in some sense,
- > rather pointless. We all have our preferences. I too think that C lets you do
- > some *very* ugly things. I like Pascal and FORTRAN. Not because they are what
- > I learned (I learned BASIC first), nor even because they are what I used most
- > (though they are). It is almost an asthetic thing for me.
-
- 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.
-
- 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.
-
- (...well reasoned comments deleted...)
-
- > What sickens me most is that individuals with the knowledge and capability to
- > teach are being pushed out of schools in favor of those with a knack for
- > publishing (but could not teach their way out of a paper bag). *THIS* is the
- > educational crisis in America, at least in post-secondary schools...
- ...
- >
- > ps - some other statements from Programming languages with MacLennan:
- >
- > "PL/I is the swiss-army-knife approach to programming language design."
- >
- > "After publishing the second edition of my book, I quit doing research
- > in programming language design. There's nothing new."
- >
- > (you could tell by the way he taught the course that he had lost much
- > interest in the subject, I'll tell you that)
-
- Sounds like it.
-
- 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.
- --
-
- | Randy Crawford crawford@mitre.org The MITRE Corporation
- | 7525 Colshire Dr., MS Z421
- | N=1 -> P=NP 703 883-7940 McLean, VA 22102
-