[net.lang] Teaching programming -GOTO's, Object Oriented Languages, etc.

cbspt002@abnjh.UUCP (Marc E. Kenig ) (06/13/84)

(NIL)

   Seems to me that the type of language is somewhat a secondary cocern.
Beginning CS students should not only be taught simply how to program,
but how to reason a programming solution and to convert it into concrete
terms in an elegant manner.  In short, just as Prof. Kingsfield of
'The Paper Chase' taught his students not just contract law, but "How
to think like lawyers", freshman CS students should undergo a course
discipline that teaches them how to think like computer scientists.
   Using a 'conventional' syntax laden language is bad - too many side issues.
Lisp has a clear, simple syntax.  It is difficult both to "think in Lisp"
and at the same time produce a good program with GOTO's, or one that is 
not properly top-down structured.  Computer sciencs topics such as parsing,
recursion, turing machines, etc. can be easily introduced. Once a student
masters an object oriented language such as Lisp, it permanently alters
the way in which that student will view the "art of programming" in more
conventional, compiled languages.  A Lisp trained programmer has learned to
use many structured techniques as second nature.

   On a related but seperate soapbox, I believe that many students are 
mentally damaged when instructors speak of a programming language/system
in superlative terms.  Many students were taught in the 70's (and may still
believe that) Pascal was the be all and end all language and that EVERYTHING
should be programmed in it.  Same goes for C/UNIX today.  Shuts off their
impressionable minds to accepting that something new may be better, since
they have no wide frame of reference to view the faults/benefits of some
language as opposed to others. Let's not teach language/system bigotry
(hell, I got taught that way, and deep in my heart-of hearts believe that  
programming language development should have halted after UCI lisp was 
invented.....).

Comments?

M. Kenig, ATT-IS, S. Plainfield NJ
...abnjh!cbspt002