Path: utzoo!utgpu!jarvis.csri.toronto.edu!mailrus!uflorida!haven!aplcen!aplvax.jhuapl.edu!genesch From: genesch@aplvax.jhuapl.edu (Eugene Schwartzman) Newsgroups: comp.edu Subject: Re: Which language to teach first? Message-ID: <2480@aplcen.apl.jhu.edu> Date: 2 Aug 89 21:02:57 GMT Sender: news@aplcen.apl.jhu.edu Reply-To: genesch@aplvax.jhuapl.edu (Eugene Schwartzman) Organization: The Johns Hopkins University Applied Physics Laboratory Lines: 44 In article <1095@kuling.UUCP> mattias@emil (Mattias Waldau) writes: > >But to the point: Now and then we discuss using Prolog first, an >algorithmic language isn't actually needed until the students meet the >three books of Knuth. The difference between clean programming in Lisp >and Pascal is just syntax, the approach to solve a programming task is >the same. > Agreed, but how do you explain to the student what a matrix is in Lisp. >If the students can Lisp then they learn Pascal, C, Ada within weeks. >But they are of course not professional programmers, that takes at >least a year. Disagree, once you learn Lisp, it is very difficult to change to a more restrictive language like you mentioned. On the other hand it is very easy to go from Pascal, C, Ada to Lisp since you already know how to 'think' in a language taht has many different types and it is possible to simulate those types in Lisp. If you learn Lisp first, you wont encounter things like 'records', you will learn to use lists to do it and when you switch to Pascal/C/Ada you will simulate lists as arrays and it becomes a mess. I know of what I speak, I have programmed in Assembly, C, Pascal, Lisp, Prolog, FORTRAN, COBOL (ugh!!! :-( ), BASIC (double ugh!!!), and dabbled in ADA (tripple ugh!!!! - wouldn't wish it on my worst enemy) My choice would be Pascal since everything you can do in any other language you can do in Pascal - yes even low level bit manipulation, though it's not in the standard, but an offshoot of it. It allows you to be as restrictive as you like it and at the same time gives you enough freedom to manipulate things without watchdog eye like ADA or loose like C. Even has recursion for the Lisp-lovers. I feel that pascal is the ideal language as the first language because after that people can choose their own paths - Lisp, Prolog, etc for higher level, or C, Assembly, etc for OS stuff. Would you want to teach Lisp or Prolog to a future OS writer? I wouldn't and shouldn't need to. gene schwartzman genesch@aplvax.jhuapl.edu _______________________________________________________________________________ | GO BEARS, GO CUBS, GO WHITE SOX, GO BULLS, GO BLACKHAWKS, GO TERPS !!!!! | | Soccer is a kick in the grass (and sometimes on astroturf)! | | GO DIPLOMATS, GO STARS, GO BAYS, GO BLAST !!!! | | CFL -> GO EDMONTON ESKIMOS!!!! VFL -> GO CARLTON BLUES !!!! | |_____________________________________________________________________________| Disclaimer: These are my opinions and not of my employer.