From mboxrd@z Thu Jan 1 00:00:00 1970 X-Spam-Checker-Version: SpamAssassin 3.4.4 (2020-01-24) on polar.synack.me X-Spam-Level: X-Spam-Status: No, score=-1.9 required=5.0 tests=BAYES_00 autolearn=ham autolearn_force=no version=3.4.4 X-Google-Language: ENGLISH,ASCII-7-bit X-Google-Thread: 107f24,626a0a064b320310 X-Google-Attributes: gid107f24,public X-Google-Thread: f4fd2,626a0a064b320310 X-Google-Attributes: gidf4fd2,public X-Google-Thread: 103376,ea8ea502d35ca2ce X-Google-Attributes: gid103376,public X-Google-Thread: 1164ba,626a0a064b320310 X-Google-Attributes: gid1164ba,public X-Google-Thread: 103d24,626a0a064b320310 X-Google-Attributes: gid103d24,public X-Google-Thread: 10259a,626a0a064b320310 X-Google-Attributes: gid10259a,public X-Google-Thread: 114809,626a0a064b320310 X-Google-Attributes: gid114809,public X-Google-ArrivalTime: 2001-05-10 08:17:33 PST Path: newsfeed.google.com!newsfeed.stanford.edu!bloom-beacon.mit.edu!senator-bedfellow.mit.edu!dreaderd!not-for-mail Followup-To: comp.lang.scheme Sender: brlewis@kindness.mit.edu From: brlewis@my-deja.com Newsgroups: comp.lang.ada,comp.lang.lisp,comp.lang.smalltalk,comp.lang.basic,comp.lang.functional,comp.lang.scheme,comp.lang.perl Subject: Re: Beginner's Language? References: <9cukad$nn68@news-dxb> <9d6b6e$1bt$1@nh.pace.co.uk> <87snihxiwc.fsf@frown.here> <9dbi83$sji$1@nh.pace.co.uk> Organization: MIT Alumni X-Newsreader: Gnus v5.7/Emacs 20.7 Date: 10 May 2001 11:17:25 -0400 Message-ID: NNTP-Posting-Host: KINDNESS.MIT.EDU X-Trace: 989507852 senator-bedfellow.mit.edu 1930 18.152.1.145 Xref: newsfeed.google.com comp.lang.ada:7478 comp.lang.lisp:9945 comp.lang.smalltalk:9690 comp.lang.functional:5626 comp.lang.scheme:3778 comp.lang.perl:2781 Date: 2001-05-10T11:17:25-04:00 List-Id: "Marin David Condic" writes: > First, let me point out that I have no objection to teaching anyone Lisp at > some later point in their CS education. I have nothing against Lisp, in this > sense. The reason I wouldn't teach it as a FIRST programming language should > be fairly obvious. The Scheme dialect of Lisp is, in fact, largely designed with pedagogy in mind. It is used as a first programming language not only at places like MIT, but even in high schools. Here is some rationale behind such a choice: http://www.htdp.org/2001-01-18/Book/node4.htm > If you are familiar with Lisp, try this: Write a small program to read in a > couple of numbers from a keyboard, do some math with them and print the > result to the screen. Since Scheme is interactive, a beginning programmer doesn't need to learn keyboard I/O. Given the amount of GUI and web programming done these days, why bother? Beginning programming is more about the process of transforming input (e.g. function arguments) into output (e.g. return values), rather than the mechanics of I/O by keyboard, web forms, or anything else. But since you asked, here's a Scheme program that takes input both ways (as function arguments as well as from the keyboard): (define (quiz op n1 n2) (display "Your answer? ") (if (equal? (op n1 n2) (read)) "Correct!" (op n1 n2))) > Now look at it. Could a neophite with literally *zero* > experience in programming computers read it and stand a chance of > understanding what it does or how it does it? Usually "neophyte" refers to someone with non-zero experience. It originally meant a newly-ordained priest, not someone with zero church experience. Nonetheless, I think the above program could be explained quickly and understood reasonably by someone with zero experience. > Could a neophite duplicate it easily or modify it to do something > different? Yes, although they can already do a lot with it as-is. You can quiz yourself on addition, multiplication, GCD, LCM, and pretty much any math operation that takes two numbers. > Is it intuitively obvious to even the most casual observer how to make > a similar program? At least as obvious, if not moreso, than it would be in other programming language. > That's why I wouldn't recommend Lisp as a first programming language in an > intro to CS course. > > Gee. I never thought I'd have to defend THAT statement! :-) Given that the Scheme dialect of Lisp *has* been used as a first programming language in so many schools, you shouldn't be surprised. http://www.schemers.com/schools.html Followups set to comp.lang.scheme