[comp.lang.misc] Re : First Languages

cstjc@its63b.ed.ac.uk (A Cunnigham) (02/25/88)

wcs>.	Remember that 1st-year students, even CS students, are studying
wcs>.	more than just CS100, and, if possible, they should have *some*
wcs>.	usable programming knowledge as soon as possible.  While it's
wcs>.	probably a Bad Thing to expose them to BASIC, whatever
wcs>.	functional language you teach them had better be adequate for
wcs>.	doing chemistry and physics homework, numerical integration for
wcs>.	calculus, statistics for their psych classes, and the like.

>Good point, Bill.  This is generally the point I was trying to make.

Wrong Wrong Wrong.
	CS1 courses exist to teach people about computer science. They are
not in general service courses for other departments. Here we run 3 first 
year courses. One is for computer scientists, one is for other scientists,
one is for Arts students. ( By the way we teach the other scientists 
Common LISP as well as Pascal. )


>Incidentally, I don't happen to feel that's a good thing.  It would be
>nice if a physicist (for example) could stick primarily to physics and
>not have to learn a second discipline (computer science).  Hopefully,
>the legacy of our generation of programmers will be a considerable
>simplification in computer user interfaces.

wcs.> And somewhere along the lines, engineering students will *have* to
wcs.> learn Fortran, if only so they can do interesting *engineering*
wcs.> research without having to rewrite EISPAK and its hench-programs.

nevin1>   And engineers DO NOT have to learn FORTRAN!!

>On which planet?  Your statement is rhetorical and doesn't have practical
>value.  I think you would be hard pressed to find an engineering curriculum
>which didn't require FORTRAN (with the possible exception of Computer Science,
>which you may or may not count as engineering).


Right Right Right. Engineering courses can teach FORTRAN after we ( computer
science ) have taught them HOW TO PROGRAM. You can teach anyone to ride a 
bike and after that they can ride any bike. It's just that using a bike with
square wheels isn't very good for teaching.
Computer Science most certainly IS NOT engineering. If anything it's a 
branch of mathematics.

pcm> [ ... ]  I have just changed jobs.  In no interview was I asked
pcm> whether I knew ML; in every interview I was asked if I knew C.

>I've been generally amused at the response I've gotten to this statement.
>As a footnote, I'll add that I used to list ML on my resume as one of the 
>programming languages I know.  I finally removed it because (1) nobody
>had ever heard of it, and (2) when I explained what it was, they didn't
>care.

If they don't care then they ain't worth working for!

>...and smaller companies can't afford to train you how to program in C,
>so you probably won't get a job there unless you know C.

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.


nevin1> Learn the good programming habits first; then pick up all the 'fad'
nevin1> languages.  It will pay off a lot better in the end.

>Now let me get this straight.  Fortran, which has been around since about
>1950, and C, which is the implementation language for the defacto industry
>standard operating system and about a jillion utilities and applications 
>programs, these are the fad languages, right?

>Incidentally, the implication here is that you can't learn 'good programming
>habits' in C.  Bullshit.

You can learn 'good programming habits' in any language providing they're 
taught well. It just happens that some languages are better for teaching 
them in ( eg ML, LISP, Modula-2 ) than languages that let you pull all sorts
of nasty tricks. Would you teach someone to drive in a Formula 1 racing
car ? Or a tank ?

>Lucky for me, though, I know ML and Prolog, so if I ever have to your
>planet, I'll be able to get a job ;-).

>Phil Miller

Stay off my planet - I like it the way it is!

Anthony Cunningham.

'I think of Sarah. The rest is easy.'
-- 

Anthony Cunningham, Dept of Computer Science, University of Edinburgh.

             ARPA:  tjc%ed.ecsvax@ucl-cs.arpa
             UUCP:  ...!{decvax,ihnp4,seismo}!mcvax!ukc!ecsvax!tjc
             JANET: tjc@uk.ac.ed.ecsvax

I think of Sarah. The rest is easy.

jonathan@pitt.UUCP (Jonathan Eunice) (03/02/88)

In article <1016@its63b.ed.ac.uk> cstjc@itspna.ed.ac.uk (A Cunnigham) writes:
>	CS1 courses exist to teach people about computer science. They are
>  not in general service courses for other departments. 

What makes you think that good programming techniques are going to be
any different when found in physicists, say, than when found in
computer scientists?  Programming is a SKILL, not a science.  You use
"computer science" as though it is some higher religion that is
defiled by teaching it to heathens, unbelievers, or people from
other departments.

>>  [...] It would be nice if a physicist (for example) could stick 
>>  primarily to physics and not have to learn a second discipline (computer 
>>  science).  

Yes, but if a scientist is going to use a tool, like a computer, it
would be a good idea to learn how to use it, to gain some skill at it.
Programming is a skill, and one that sometimes requires cleverness and
artfulness, and is often difficult.  The requirment of programming for 
scientists is unlikely to disappear.  Again, let's not confuse the art 
of programming with science.

>  Computer Science most certainly IS NOT engineering. If anything it's a 
>  branch of mathematics.

Then your computer science is different from the one I see.  The bulk
of what people call computer science is people designing and building
new operating systems, compilers, expert systems, hardware, languages,
communication networks, and so on.  This is *engineering*, just as
building circuits, bridges, houses, motor assemblies, turbofan blades,
etc. is.  There is no *science* being done in these applied areas, even
though the application may further knowledge in the field.  This is the
difference between science and technology.  Scientists deal in science,
engineers in technology.  Most so-called computer scientists think of
themselves as scientists when writing systems, operating or expert, but
they are wrong.  The science of computers is the less-popular theory --
the study of things like computability, decidability, and algorithms.
The bulk of CS, as it is generally talked about, is engineering --
designing, working out practical problems, implementing, etc.  It most
certainly *is not* like mathematics.  We delude ourself if we somehow
think that what we're doing is somehow more akin to what chemists and
biologists do that what {chemical, mechanical, electrical, ...} engineers 
do.

>   pcm> [ ... ]  I have just changed jobs.  In no interview was I asked
>   pcm> whether I knew ML; in every interview I was asked if I knew C.
>
>>  [...] I used to list ML on my resume as one of the programming languages 
>>  I know.  I finally removed it because (1) nobody had ever heard of it, 
>>  and (2) when I explained what it was, they didn't care.
>
>   If they don't care then they ain't worth working for!

Anthony is clearly not going to get a job in the US.  There are maybe a
half-dozen employers in the states who will ask or care about obsurities
like ML or Snobol, unless the job specifically pertains to these
languages.  I don't claim this is right, but among the ones who do not 
are quite a few that are well worth working for.

>nevin1> Learn the good programming habits first

YES YES YES YES YES 
(See, I learned my lesson at the School of Power Posting. :-) )

>>   Lucky for me, though, I know ML and Prolog, so if I ever have to your
>>   planet, I'll be able to get a job ;-).
>
>    Stay off my planet - I like it the way it is!

Let's be nice, eh?  

------------------------------------------------------------------------------
Jonathan Eunice                 ARPA:  jonathan%pitt@relay.cs.net
University of Pittsburgh               jonathan%pitt@cadre.dsl.pittsburgh.edu
Dept of Computer Science        UUCP:  jonathan@pitt.UUCP
(412) 624-8836                BITNET:  jonathan@pittvms.BITNET

shebs%defun.utah.edu.uucp@utah-cs.UUCP (Stanley T. Shebs) (03/03/88)

In article <2922@pitt.UUCP> jonathan@vax.cs.pittsburgh.edu.UUCP (Jonathan Eunice) writes:

>The bulk of CS, as it is generally talked about, is engineering --
>designing, working out practical problems, implementing, etc.  It most
>certainly *is not* like mathematics.  We delude ourself if we somehow
>think that what we're doing is somehow more akin to what chemists and
>biologists do that what {chemical, mechanical, electrical, ...} engineers 
>do.

Even the more applied parts of CS could be characterized as a sort of
"mathematical engineering".  Even theory-hating hackers use more abstractions
than most pure mathematicians (notice that I said "use" not "prove").

Actually, this is turning into yet another argument about what CS really is.
I haven't seen anyone mention that the traditional sciences have theoretical
and experimental subdivisions.  There are a lot of similarities between the
physicist building/using a particle accelerator, and an OS researcher building
and experimenting with a new system.

							stan shebs
							shebs@cs.utah.edu