🚀 go-pugleaf

RetroBBS NetNews Server

Inspired by RockSolid Light RIP Retro Guy

Article View: comp.lang.misc
Article #5051

Languages and learning (was: Philosophy of C)

#5051
From: Dave Mason
Date: Sat, 23 Jan 1988 04:11
54 lines
3758 bytes
In article <3473@ihlpf.ATT.COM> nevin1@ihlpf.UUCP (00704A-Liber,N.) writes:
>In article <11348@brl-adm.ARPA> dsill@NSWC-OAS.arpa (Dave Sill) writes:
>>In article <4186@eagle.ukc.ac.uk> "H.A.Shaw" <has@eagle.ukc.ac.UK> writes:
>>>I wholeheartedly agree, and hope I write better C
>>>programs now for three years of BASIC/PASCAL/FORTRAN/FORTH first.
>>>They did teach [C] to third year Computer Scientists sometimes.
It's not clear to me that BASIC & FORTH (or even FORTRAN) are any
improvement over C.  None of them allow software engineering style,
top-down program design.  (Of course this is a generalization, with
the right FORTH environment, or a modern structured BASIC, this could be
less true).  It took me YEARS to unlearn the junk programming
practices that I developed using Basic & Fortran IV.

>>This is much too late.  Computer education should proceed from a
>>hardware overview to machine language to assembler language to low-
>>level compiled languages on up to high-level compiled languages.
>I don't know if this is the best way to learn computer programming.  Without
>any previous experience, I think it would be extremely difficult to impossible
>to debug a machine language program (although I do, I know that not everybody
>in the world grasps logic easily).
We (Ryerson) used to teach S/370 assembler as the first programming
language.  This had a very high failure rate, but those who made it
through that first year had a very good understanding of data flows,
etc. in the machine.  Unfortunately their programming style stank (for
the most part) (by 4th year when I saw them).  They had little idea of
how to structure a problem.  We then taught PL/1 for 2 or 3 years,
which wasn't so great either...program structure improved, but PL/1 is
such a big, ugly language.  Then we started using PASCAL, and
supplementing it with an intro Computer Organizatin course.  This is
the best combination so far, but I'm lobbying to change to LOGO
(non-graphic) supplemented with the Organization course.

>>BASIC is a bad joke.  The bad habits that it imparts on students are
>>particularly hard to unlearn (first impressions are lasting
>>impressions).
YES!  I'd rather they'd never seen a computer before my 1st year course.
>>  It oversimplifies the hardware-software interface to
>>the point where it seems, to the student, to be performing magic.  C
>>on the other hand, is more transparent.  It allows the student to see
>>the gears turning.
But there's so d**m much detail to keep track of (all 12 levels of
precedence and 40+ operators).  I think it obscures the logic too
much.  First year students find PASCAL syntax confusing, I see no
reason to increase the problem by switching to C!

> I don't know what the best language to start
>with is, but I don't think the bottom-up approach (i.e., starting with machine
>language) has enough benefits to outweigh the problems.  Maybe starting with
>Lisp (a language which can be described very simply) and teaching theory is the
>way to go (I think this is MIT's approach); I really don't know.
I basically agree. Brian Harvey (LOGO book authour) suggests that they
should learn a Lisp dialect (Scheme, LOGO, Common?) and an assembler
like C, and then pick up any remaining languages when and as necessary
for a particular problem.
Technical Details
Message-ID: <271@tmsoft.UUCP>
Path: arc1-ca.pugleaf.net!utzoo!utgpu!tmsoft!mason
References: <11348@brl-adm.ARPA> <3473@ihlpf.ATT.COM>

Show Full Headers
Complete Article Headers
Path: arc1-ca.pugleaf.net!utzoo!utgpu!tmsoft!mason
From: mason@tmsoft.UUCP (Dave Mason)
Newsgroups: comp.lang.misc
Subject: Languages and learning (was: Philosophy of C)
Message-ID: <271@tmsoft.UUCP>
Date: 23 Jan 88 04:11:26 GMT
References: <11348@brl-adm.ARPA> <3473@ihlpf.ATT.COM>
Reply-To: mason@tmsoft.UUCP (Dave Mason)
Followup-To: comp.lang.misc
Organization: TM Software Associates, Toronto
Lines: 54