🚀 go-pugleaf

RetroBBS NetNews Server

Inspired by RockSolid Light RIP Retro Guy

Article View: comp.lang.misc
Article #1244

Re: introductory language

#1244
From: Lars Thomas Hansen
Date: Sat, 14 Apr 1990 04:13
49 lines
3169 bytes
In article <12594@goofy.megatest.UUCP> djones@megatest.UUCP (Dave Jones) writes:
>In article <7300008@ux1.cso.uiuc.edu> cs290ac@ux1.cso.uiuc.edu writes:
>> 
>>I'm looking for opinions on what languages people think should
>>be taught as introduction to programming for both CS majors and
>>non-CS majors.  My initial opinions are C for CS majors because
>>of its popularity, and its low-level programming characteristics.
>
>[...]
>
>After much reflection on the subject, if I had it to do again, I would
>fight long and hard against using Pascal. I would start with a "toy"
>assembly language, following that with C, and then C++ with a good
>class-library. Introduce stacks and structures in the assembler phase.
>That will be the stepping-stone to C. Introduce information-hiding,
>encapsulation, etc. in C, then move to C++.
>
>[Some reasonable justification deleted]

This seems to imply that you consider programming to be the skill of
implementing specifications. I have to disagree with you.

In the end we all have to get the code working, but I believe that a
programmer is someone who is creative, inventive, and works mostly
with conceptual structures. To program is to be creative; we need
tools (languages!) that let us quickly and easily implement our
high-level designs so that we can test them and refine them further.

I am _not_ advocating that the students be taught that the computer
works by magic, rather that their primary effort should be spent on
solving the problems that need solving, not on learning which register
is suitable for what on an 8086 (or whatever processor). Your approach
is to let the students discover the utility of HLLs because they are
simpler to use and offer more power than assemly language; my approach
is to let the students discover the utility of LLLs (low-level
languages, that is) because they offer more control and performance
than HLLs. The basic idea, however, is that there is an idea to
explore, a problem to solve, not a technology barrier to overcome.

For these reasons, I am convinced that a "clean" HLL (like Scheme) is
ideally suited to introduce students to computer programming. This applies
to CS and non-CS types alike; in fact, the latter group is likely to benefit
at least as much as the former, since they will most likely end up using
some VHLL or 4GL in any job they might get. (Would anybody out there hire
an assembly language programmer with 4 months' training?)

To educate programmers as implementers and nothing else is a shame.

--lars
Technical Details
Message-ID: <1990Apr14.041313.720@cs.uoregon.edu>
Path: arc1-ca.pugleaf.net!utzoo!utgpu!watserv1!watmath!att!tut.cis.ohio-state.edu!cs.utexas.edu!uunet!ogicse!cs.uoregon.edu!idiotix!lth
References: <4147@ethz.UUCP> <12594@goofy.megatest.UUCP>

Show Full Headers
Complete Article Headers
Path: arc1-ca.pugleaf.net!utzoo!utgpu!watserv1!watmath!att!tut.cis.ohio-state.edu!cs.utexas.edu!uunet!ogicse!cs.uoregon.edu!idiotix!lth
From: lth@idiotix.cs.uoregon.edu (Lars Thomas Hansen)
Newsgroups: comp.lang.misc
Subject: Re: introductory language
Summary: Teaching assembly language first...?
Message-ID: <1990Apr14.041313.720@cs.uoregon.edu>
Date: 14 Apr 90 04:13:13 GMT
References: <4147@ethz.UUCP> <12594@goofy.megatest.UUCP>
Sender: news@cs.uoregon.edu (Netnews Owner)
Reply-To: lth@idiotix.cs.uoregon.edu (Lars Thomas Hansen)
Organization: University of Oregon Computer Science Dept.
Lines: 49