Article View: comp.lang.misc
Article #5226Re: : First Languages
From: Paul Dourish
Date: Sun, 06 Mar 1988 16:01
Date: Sun, 06 Mar 1988 16:01
61 lines
3663 bytes
3663 bytes
In article <725@sandino.quintus.UUCP> pds@quintus.UUCP (Peter Schachte) writes:
>>In article <1016@its63b.ed.ac.uk>, cstjc@its63b.ed.ac.uk (A Cunnigham) writes:
>> But if you know HOW TO PROGRAM then it doesn't matter if you know C ( or any
>> other language for that matter ). All you need is the manual and a language
>> definition.
>
>To take you out of context, this isn't really true. If you take a
>skilled 20 year veteran assembly language programmer and give hime an ML
>or Prolog or Smalltalk manual and interpreter, it'll probably take him
>quite a while to get to the point where he can program comfortably in
>any of those languages. There are important (necessary!) concepts that
>he hasn't had to face (inheritance, backtracking, unification,
>recursion).
Yaay! Cheers! Applause!
This is exactly the point. A programming language embodies a model of a
machine and a model of the solution. The important thing in a CS education
is that the student should be exposed to a wide range of such models. Remember,
the models that the student encounters in his course will form that basis of
his solutions to problems later. If the student is always tackling things in
a C-like way, then he'll always produce C-like solutions, even when these are
not appropriate. So, then, the student should learn a range of models, so that
he can pick the one most appropriate to a given problem.
Before I get flamed here, I should point out that I'm talking about models on
the level of *understanding* a problem. I'm trying to divorce the understanding
and conceptual modelling of the problem from its solution. There may be
constraints upon the type of solution ("Sorry, John, it's got to be written
in FORTRAN and interface to those COBOL routines over there...") but there's
no need to place such constraints on the programmer's understanding of the
problem to be solved. Not if you want a good solution, anyway.
The idea of underlying models is important. It really bugs me when concepts in
one language are explained in terms of those in a completely different
language, but which look vaguely similar. Too often, the teaching of
programming languages is done syntax-down rather than model-up. The right way
to teach a language is from the base concepts up to the actual syntax. That way
when new ideas are introducted, the student thinks "Oh, yeah, I'd guessed that
there should be something like that; it fits" rather than "Hmm, I wonder how
that relates to what I've already learned".
So, what's the bottom line? Well, here are two quotes. I've seen them
attributed to Dennis Ritchie and Brian Reid respectively, but I'm not certain
about them:
- "A language that doesn't change the way you think about programmming isn't
worth knowing."
- "When all you have is a hammer, everything looks like a nail."
I guess that's all....
--
Paul Dourish, Speech Input Project, University of Edinburgh, 80, South Bridge,
Edinburgh EH1, Scotland. (Phone: +31 225 8883 x279.)
ARPA: jpd%ed.eusip@nss.cs.ucl.ac.uk UUCP: ...!uunet!mcvax!ukc!eusip!jpd
JANET: jpd@uk.ac.ed.eusip
"Ain't they got no barbers where you come from, boy?"
Technical Details
Message-ID:
<283@aiva.ed.ac.uk>Path:
arc1-ca.pugleaf.net!utzoo!mnetor!uunet!mcvax!ukc!its63b!aiva!jpdReferences:
<725@sandino.quintus.UUCP>Show Full Headers
Complete Article Headers
Path: arc1-ca.pugleaf.net!utzoo!mnetor!uunet!mcvax!ukc!its63b!aiva!jpd From: jpd@aiva.ed.ac.uk (Paul Dourish) Newsgroups: comp.lang.misc Subject: Re: : First Languages Message-ID: <283@aiva.ed.ac.uk> Date: 6 Mar 88 16:01:25 GMT References: <725@sandino.quintus.UUCP> Reply-To: jpd@eusip (Paul Dourish) Organization: Alvey Speech Input Project, CSTR, U of Edinburgh Lines: 61 Summary: The model that underlies the language is more important.