[net.lang] Bad habits from interps

ramsey (03/21/83)

#R:cbosgd:-326900:inmet:4700003:000:877
inmet!ramsey    Mar 19 18:52:00 1983

I just had to comment on this comment:
----------
I know some of you out there think LISP is wonderful.  I'm very happy
for you.  But I think you are in the minority.  And I don't think LISP
is a good teaching tool, primarily because it relies on recursion too
much.  Recursion is a VERY hard thing for a beginner to learn.  (This
same argument applies to LOGO as well.)
----------
I have taught short courses in LISP, BASIC and Pascal to beginners.
Beginners seem to have as much trouble dealing with loops as they do with
recursion.  Teaching recursion is only a problem when you are dealing with
someone who already knows how to program in a non-recursive language.  You
can always tell someone who learned to program in LISP (or LOGO) late in
life, their programs look like FORTRAN with lots of extra parentheses.

                                              Marc Ramsey

wartik (03/22/83)

Here's my two cents on the issue of bad habits from interactive
environments.  I remember my undergraduate operating systems course,
where I wrote the whole program (about 700 lines of Fortran) limited to
40 runs, and used only 36.  These days, I'd probably spend 10 runs just
getting out the syntax errors.  There is no question in my mind that
the more trouble it is to run a program, the more you think about it
before you submit it.  Thinking is especially important for the
beginning programmer; no matter how well the language encourages data
abstraction or top-down development, a certain amount of maturity in
programming skills is required to properly use these concepts, and I
feel the idea of "let's give the beginning programmer some room to
experiment" leads to bad habits.  If you've ever taken fencing, you
know that they don't just throw a foil in your hand and set you at your
opponent.  Some teachers will require you to spend many months learning
the footwork first.  I think this should be an appropriate metaphor for
learning to program, and I think languages like Pascal support this
concept much better than Logo, BASIC, LISP, etc.  I've read some
personal experiences over the net that disagree with me, but my
experiences teaching courses lead me to believe they are the exception
and not the rule -- the majority of students benefit from the more
disciplined approach to programming that compiling provides.  I don't
mean that we should all program using cards in Fortran because it
encourages us to be careful, and that debugging tools lead to bad
habits because they make programming too easy.  But I first programmed
in 1971, back when people were wondering why that fool Dijkstra wanted
to eliminate something as necessary and powerful as the GOTO, and I
remember how long it took me to overcome some of the terrible practices
I picked up initially.

				-- Steve Wartik
				decvax!trw-unix!trwspp!wartik