Article View: comp.lang.misc
Article #1136Re: introductory language
From: Piercarlo Grandi
Date: Sun, 08 Apr 1990 16:04
Date: Sun, 08 Apr 1990 16:04
55 lines
3091 bytes
3091 bytes
In article <3168@castle.ed.ac.uk> nick@lfcs.ed.ac.uk (Nick Rothwell) writes:
I'd go for ML in both cases since it's clean, nicely typed,
I like ML, but:
functional and pointer-safe,
^^^^^^^^^^^^^^^^^^^^^^^^^^^
It depends on what you want to teach. Notwithstanding what the
functional advocates say, statefulness and graphness are damn important
in *programming*. ML is a wonderful language for demonstrating
*algorithms* without being distracted too much by programming. This is
is the usual fundamental problem of CS: is it about algorithms or
programs? is it mathematics or engineering? and so on ad infinitum.
There is also the horrid issue that maybe you should teach
*programming*, if you want so, whereas many CS departments confuse that
with teaching *languages*.
To me a language is just a notation to demonstrate a program, which is
the algol view of language as a medium of communicating program
descriptions between programmers or between programmers and compilers.
To others a language is a notation in which to express algorithms. To
many CS curricula teaching a language is an end in itself. I'd rather go
with the Sussman approach of using Scheme as notation for a book on
program design, and concentrating on the latter (interestingly, my
preference for a first notation to teach *programming* with is indeed
scheme or lisp, and second place ML et similia).
Me, I think that most CS curricula are skewed towards the research
interests of faculty (isn't it always true?), because they tend to be
biased either towards mathematics or towards systems programming.
and easy to use for illustrating important modern language
principles; but perhaps I'm biased.
Most "programmer" jobs will now be about DMBSes and 4GLs, and CS
departments turn out either complexity theorists/logicians (UK) or
system implementors (USA).
Alternatively a Modula or something like it.
To me computers are mostly used to sort data, and secondarily to
calculate. Thirdly, and very rarely, to develop other programs, such as
OSes and compilers. You do not see this in most CS curricula.
Seriously, what about teaching SQL or RPG or Ramis as first language,
and have the first course in *data* design, and then put them to work on
expressing such things and queries against them in one of the above?
--
Piercarlo "Peter" Grandi | ARPA: pcg%cs.aber.ac.uk@nsfnet-relay.ac.uk
Dept of CS, UCW Aberystwyth | UUCP: ...!mcvax!ukc!aber-cs!pcg
Penglais, Aberystwyth SY23 3BZ, UK | INET: pcg@cs.aber.ac.uk
Technical Details
Message-ID:
<PCG.90Apr8170405@odin.cs.aber.ac.uk>Path:
arc1-ca.pugleaf.net!utzoo!utgpu!news-server.csri.toronto.edu!cs.utexas.edu!uunet!mcsun!ukc!dcl-cs!aber-cs!odin!pcgReferences:
<7300008@ux1.cso.uiuc.edu> <3168@castle.ed.ac.uk>Show Full Headers
Complete Article Headers
Path: arc1-ca.pugleaf.net!utzoo!utgpu!news-server.csri.toronto.edu!cs.utexas.edu!uunet!mcsun!ukc!dcl-cs!aber-cs!odin!pcg From: pcg@odin.cs.aber.ac.uk (Piercarlo Grandi) Newsgroups: comp.lang.misc Subject: Re: introductory language Message-ID: <PCG.90Apr8170405@odin.cs.aber.ac.uk> Date: 8 Apr 90 16:04:05 GMT References: <7300008@ux1.cso.uiuc.edu> <3168@castle.ed.ac.uk> Sender: pcg@aber-cs.UUCP Organization: Coleg Prifysgol Cymru Lines: 55 In-reply-to: nick@lfcs.ed.ac.uk's message of 5 Apr 90 10:56:53 GMT