Path: utzoo!utgpu!jarvis.csri.toronto.edu!mailrus!iuvax!uxc.cso.uiuc.edu!uxc.cso.uiuc.edu!m.cs.uiuc.edu!p.cs.uiuc.edu!gillies From: gillies@p.cs.uiuc.edu Newsgroups: comp.edu Subject: Re: Which language to teach first? Message-ID: <82400040@p.cs.uiuc.edu> Date: 5 Aug 89 22:38:00 GMT References: <8514@batcomputer.tn.cornell.edu> Lines: 35 Nf-ID: #R:batcomputer.tn.cornell.edu:8514:p.cs.uiuc.edu:82400040:000:1635 Nf-From: p.cs.uiuc.edu!gillies Aug 5 17:38:00 1989 I learned languages in this order: ----- High School ---- TUTOR (PLATO system ~ FORTRAN, later taught it to younger kids) BASIC (later taught it to younger kids) PASCAL (informal summer course) C (helping college student test a compiler) ------ College ------- PL/C (UI intro -- first programming course) CLISP+ALGOL (MIT intro - "Structure & Interp. of computer programs") FORTRAN (summer job) CLU (MIT software engineering language), MODULA-II (in my compiler implementation course) ------- Real World ----- MESA (at Xerox) I believe I am a well-educated programmer .. So my conclusion is: Frankly, it doesn't matter much. Pick something reasonable (like C or Pascal) that is used in the real world. Pascal is ideal because it is pampers the beginners, but you can also write an OS or compiler in Pascal. Pascal is a true multi-purpose language. C is a failure for beginners, even if they are forced to use LINT, because the error diagnostics are lousy (the compiler frequently cannot pinpoint the location of an error) and I am under the impression that this is a fundamental limitation in the syntax design of the C language. Don't confuse the success of "Structure & Interpretation of Computer Programs" with the language SCHEME. The authors might well have chosen Smalltalk, or even C++ as their implementation language. Some of the neat things in that book (at least the draft copy on my bookshelf) SIMPLY DON'T WORK in other languages. Also, realize that MIT is biased towards producing AI researchers. Does your school have this mission? Perhaps not. Perhaps another language would serve your students better.