Path: utzoo!utgpu!water!watmath!clyde!rutgers!sri-unix!quintus!pds From: pds@quintus.UUCP (Peter Schachte) Newsgroups: comp.lang.misc Subject: Re: Languages and learning (was: Philosophy of C) Summary: Lisp is a good first language Message-ID: <580@cresswell.quintus.UUCP> Date: 26 Jan 88 22:05:14 GMT References: <11348@brl-adm.ARPA> <3473@ihlpf.ATT.COM> Organization: Quintus Computer Systems, Mountain View, CA Lines: 29 In article <3473@ihlpf.ATT.COM>, nevin1@ihlpf.ATT.COM (00704A-Liber) writes: > Maybe starting with > Lisp (a language which can be described very simply) and teaching theory is the > way to go (I think this is MIT's approach); I really don't know. None of the > current languages seem very good for an introduction (sorry, Mr. Kernighan and > Mr. Ritchie :-)). Syracuse University's introductory programming course for CS majors uses Lisp (at least it did when I was there). I found this to be a good approach. I think it's pretty important that an introductory course use an interpreted language, so users don't have to start out by learning too much extraneous stuff, like running compilers. And being able to type in a fragment and execute it is helpful in getting started quickly. Once budding programmers have learned to be precise in expressing themselves, and to think through what a program means, THEN make them learn about things like syntax, and where semicolons go, etc. And you shouldn't be sorry to K&R. C wasn't meant to be a teaching language, Pascal was. And I think Pascal IS a better language for teaching. (Please, no flames about the UTILITY of Pascal relative to C, just TEACHABILITY (learnability).) C is more practical for real-world programming. So teach Lisp first, then Pascal, then C. THEN teach assembly language. THEN hardware. The fewer details you make students master, the better they'll do. So start with simple concepts, like functions, and build up to pointer manipulation and such. -- -Peter Schachte pds@quintus.uucp ...!sun!quintus!pds