[net.cse] pascal ass intro. language

brad@looking.UUCP (Brad Templeton) (02/24/86)

I hate Pascal as much as anybody who's had to implement one, but I will
second it as the choice for an introductory course.

Your audience in an introductory course is quite broad.  Some are going
on to further education in CS.  Others want something they can use.

If you give them fortran or cobol, you won't give much in the way of
CS concepts to those going on.  If you give them something unusual like
lisp, they will have trouble using their lisp skills in the real world.

You need something that's widely accepted, fairly standardized (at some level)
and that contains the basic concepts you want to deal with in a complete
degree program.

This leaves you with C and Pascal.  Pascal was designed for teaching, and
much of what is wrong with it is that people have forgotten this.
(Although I will never forgive writeln myself)

If you put Pascal in a nice interactive environment (like mine; plug, plug,
plug) this is your only choice.


This is not a statement to be proud of, necessarily.  Nonetheless, what is being
used in the real world does control what can be taught to some exent.
-- 
Brad Templeton, Looking Glass Software Ltd. - Waterloo, Ontario 519/884-7473

robt@molihp.UUCP (Robert L Thurlow) (02/26/86)

[]
In article <497@looking.UUCP> brad@looking.UUCP (Brad Templeton) writes:
>I hate Pascal as much as anybody who's had to implement one, but I will
>second it as the choice for an introductory course.
>

    I also cast my vote for Pascal, but think that more  exposure  is to
other  languages is  necessary,  especially to an assembly  language.  I
learned Algol-W and FORTRAN first and got an idea about  algorithms, and
then  engineering  gave  a feel  for  limited  resources  with  assembly
language  on an 8080  (gack,  barf, even  worse  than an 8088!  :-) with
almost no memory.  Then I got into Pascal, 'C' and the other things, and
I found I had a lot more respect and  understanding  for the machine and
the problems you can get into.  What highlighted this was the System/370
assembler they throw in at the end of the second-year  computer  science
courses at UBC; a large  portion of the class were  fighting just to get
the concepts of memory and registers  straight while the engineers  were
basking in the luxury of the  architecture  compared to the 8080.  (Hey,
Al, this thing does  floating  point  math!  All by itself!  :-) Most of
the class was fuzzy about looking  around for the resources you have and
using them  properly,  anf this was only due to lack of exposure to what
is REALLY going on under  there.  If your  teaching  Pascal can spit out
assembly  code,  perhaps  showing the students  what it looks like would
help.

# UUCP : ...!ubc_vision!molihp!robt			Robert Thurlow	   #
<DISCLAIMER : my thoughts are my own, and are void where prohibited by law.>
# "There was something fishy aboout the butler.  I think he was a Pisces,  #
#  probably working for scale."				- Nick Danger      #

jimb@tekcbi.UUCP (Jim Boland) (02/27/86)

In article <497@looking.UUCP>, brad@looking.UUCP (Brad Templeton) writes:
> I hate Pascal as much as anybody who's had to implement one, but I will
> second it as the choice for an introductory course.
> 
> 
> 	Pascal was designed for teaching, and
> much of what is wrong with it is that people have forgotten this.
> (Although I will never forgive writeln myself)

>From: latham@bsdpkh.UUCP (Ken Latham)

>Ah yes.... PASCAL....

>Why PASCAL ....?

>	I think this is the real point ... The compiler has to be
>	so strict as to not let the student get too inventive ...
>	like C ...  The objective is to learn Algoritmic Representation
>	not the language.

>	Even though the language keeps a tight reigh it also has a
>	sufficient array of types ( structures, pointers, sets, etc.)
>	and an expressive enough syntax and semantics to do just about
>	anything.

>		There I admit I am a C programmer (and Computer Scientist)
>		that actually LIKES PASCAL!!!

I have had to learn and use various languages while in school (BASIC, FORTRAN)
and later on jobs.
I hve programmed in Basic, Basic+, Pascal, and C.  Each language has it's
good points and bad points.  Each has merits.  Basic is quite easy to learn
and do things.  However, I sure don't like to look at code I didn't write
or haven't seen for a year and try to figure out what the heck is going on.
With all the line numbers and goto's and gosub's, one can get lost real fast.

Then along came Pascal.  I sure didn't like it at first.  However, after 
using it for a while, I started to see real merits in it, particularly in
reviewing code at a later date or trying to see what someone else had done.
I have no real problems with that.  

Then along came C.  I like the way some things are done and I like what I
can do with it.  Yes, I currently am a C programmer, also.  However, I must
say that if I had my choices, I believe I would lean more towards Pascal.

But then, I have been programming Pascal since 1975.  If I had been programming
C since then, and started Pascal recently, I would probably prefer C.

Sorry, It doesn't work the same for Basic.  I started that around 1970.  And
nope, I would never prefer it over C or Pascal.  (Except for a few 
applications)

If you are just passing through a course, will only program for 3 months and
never do it again, Basic is probably sufficient.  

ark@ut-sally.UUCP (Arthur M. Keller) (03/01/86)

In article <528@tekcbi.UUCP> jimb@tekcbi.UUCP (Jim Boland) writes:
>If you are just passing through a course, will only program for 3 months and
>never do it again, Basic is probably sufficient.  

I suppose that if you are just passing through foreign language
literature course, will only read foreign literature for 3 months and
never do it again, foreign language newspapers are probably
sufficient.  I don't buy that.  If you are taking a 3 month course
and will never directly apply the knowledge, then learning concepts is
probably the most important because you will forget the details.  It is
easier to learn the concepts of programming (the basis for learning
Computer Science, but not *all* of CS) using Pascal as many are simply
not expressible in Basic.  (Don't bug me about Turing equivalence, and
I won't ask you to write a universal Turing machine in Basic.)

On the other hand, if you are teaching a "computer literacy" course,
that is, a primarily non-programming course, it may be worthwhile to
use Basic because the start up costs are low, programming is a minor
part of the course, and you are not attempting to teach programming
concepts but rather have the students write a few trivial programs.
Pascal is also a problem for students who have not yet mastered high
school algebra and who may be able to manage some simple Basic
programs.  Probably better to teach them Logo or Karel the Robot.

Arthur

-- 
------------------------------------------------------------------------------
Arpanet: ARK@SALLY.UTEXAS.EDU
UUCP:    {gatech,harvard,ihnp4,pyramid,seismo}!ut-sally!ark

goldberg@SU-Russell.ARPA (Jeffrey Goldberg) (03/02/86)

In article <4346@ut-sally.UUCP> ark@sally.UUCP (Arthur M. Keller) writes:
[Some stuff deleted here, basically Keller was expressing the need
 for expressing algorithms, structure, etc.  a vote for Pascal]
>
>On the other hand, if you are teaching a "computer literacy" course,
>that is, a primarily non-programming course, it may be worthwhile to
>use Basic because the start up costs are low, programming is a minor
>part of the course, and you are not attempting to teach programming
>concepts but rather have the students write a few trivial programs.

At UC Santa Cruz the computer literacy course used C.  This was a
required course for some students who had no background with computing
at all.  We started with "This is a terminal, and that is a computer.
Try not to get them confused." and finshed with recursive function
calls.  Along the way we taught vi and a little nroff, binary
arithmatic, manipulating files and directories (on BSD4.2), tr, diff,
grep, head, tail, and other filters, and extremely small bit of shell
programming (they never had to write any), and some C.  All of this was
done in a 10 week course with 200 students, two instuctors, and 15
undergraduate TAs (I was one of them).

The course was went over very well. (there were problems, but they
were the result of a group of students who thought that they course
would be so easy that they would never need to come to class (and I
mean 'never').)

We used C for three reasons.

1)  Structured programming 

2)   We could show them that what they were writing was (in some ways)
no different from the programs they had been using earlier in the
quarter.  This 'demystifies' things like nothing else can, and that is
what a computer literacy course is all about.

3)  We wanted something close enough to the machine to force people
to think about the machines representation of the data.  I.e. What is
the machine really doing?

The course was taught by two linguistics faculty, and about half of the
TAs were linguistics students; the rest were CS.

The intro CS series uses Pascal (those wimps) which is no doubt an
improvement overwhat they used to teach:  ALGOL W.  (Actually, I don't
know anything about ALGOL; I've just heard lots of complaints.)

The point is is that if you don't scare them, they can learn a lot.

Also, there were some people who were turnd on to computing as a result
of this course.  I don't think they would have been if we used BASIC.
Nor were the bound to end up programming through other routes.  One was
a literature major the other theater.

>Pascal is also a problem for students who have not yet mastered high
>school algebra ...

Don't you have entrance requirements at your school?  (Actually, I'm
all for certain sorts of special admission, but there are remedial
courses that special admittees are supposed to take first.)
 
>Arthur
 
-Jeff

PS:  I leave the "wimps" comment in with reservations.  There are
plenty of good Pascal programmers out there, and I am intending a
little friendly rivalry and nothing more serious than that.  If anyone
wants to get into the old C vs. Pascal debate just mark you subjects
accordingly so I don't have to read any of what we have all seen enough
times before.  The "wimps" comment is purely :-) .
-- 
/* 
**  Jeff Goldberg (best reached at GOLDBERG@SU-CSLI.ARPA)
*/