See above. Imo, Java is a terrible language to learn to program. Northing surpases Lisp imo in learning the correct abstractions. You learn to program in Lisp correctly and you will master all forms simultaneously (procedural, functional, OO, etc etc). Then you go pick up the syntax and style (idiom) of any language you want on your own. Assembler and C should be a mandatory as well. Remember, this is CS 101. There is way more to learn than just a language and data structures (CS 102). There is networking and networking protocols (CS 103), etc, which almost certainly requires knowledge of C. nitro
On CS and computer languages. Several things have been touched upon in this context: (1) Pascal is (or was) a great teaching language. Klaus Wirth, one of its two inventors declared way back in the 80s that Pascal had become obsolete. If you want to adhere to it, Borland's Delphi (and Kylix) are basically Pascal inspired languages; (2) AI: Lisp and the MIT Scheme are wondeful tools for teaching CS students wonderful tricks. Practically no good for not much else. However, the examples and problems encountered in these classes teach you ONE IMPORTANT thing in that there exist indeed problems that are almost solved trivially in Lisp or Scheme and that are VERY difficult to do in other languages. This kind of warns against believing that any language is good for anything. To the praise of Lisp, Lisp managed to remain a constant standard over time against which many discussions of program novelties are conducted. In fact Python is considered by some rather close in this aspect though it is not the equal of Lisp. Perhaps it is like with studying Greek and Latin in order to become an educated person. For computer programming, you need to have studied Lisp (Scheme), otherwise you're not educated. (You don't have to use it later on though - only when you truly need to ) nononsense
I have never once - in a production commercial or scientifc application - in 25 years used a native version of lisp/scheme for ANYTHING. I have used it to prototype some things. I have worked for top universities, nearly all the national laboratories, and major financial exchanges. I do use a variant of Lisp everyday - in mathematica - and a few of these language constructs appear elsewhere (as mentioned). However, using it to teach introductory programming or computer science ideas is foolish in my opinion. Even today, few computer science departments use it in this fashion, and for good reason. If you have extra time or as part of a language design course you can invest some time in Lisp, and even Prologue and its variants. They have more utility for research than they do in commerce and I exspect things to stay that way for the forseeable future. Be wary of anyone that makes blanket statement like "nothing surpasses..." The world of commerce apparently, disagrees.
It is worth quoting the rest of that introduction. In fact, it is worth reading the whole thing: " Computer Science Computer Science at MIT is a bit different from programs offered at most other universities. Many potential students really don't understand what it's all about here. It's NOT about "applications programming," or "data processing." "Systems analyst" is not the sort of job to which our students aspire after they graduate (by sophomore year it's easy to get on-campus jobs keeping systems running). At MIT one starts out by learning about dealing with complexity and abstraction, and goes on to study computer architecture (how to design computer systems), artificial intelligence, modeling, and theory. There is quite a bit of advanced mathematics. Computer Science studies how to make computers faster, more efficient, and more intelligent. Graduates of Computer Science have the ability to perform a wide range of jobs. The breadth of their studies allows them to learn quickly the variety of languages and machines used in industry. The depth of study gives a better understanding of the problem and how to solve it. The curriculum is as intensive as electrical engineering. You can't get a big jump on the major by studying programming in high school: C.S. faculty here don't teach or use BASIC, FORTRAN, PASCAL, COBOL, etc..." nitro
A professor I had in college once told me: Programming is not computer science. Everybody stared at him. I think it sunk in, though.
..From MIT's point of view that is a great marketing differentiator. However, there are programs that are the equal of MIT (or better IMHO) with respect to "abstract thinking" - do they actaually beleive that they have a monopoly on the optimal path towards obtaining these skills ? They dont. Most of what is called computer science I call just another specialization blend of pure and applied mathematics. Every university is competing for student dollars. At the end of the day the graduates need to have not only abstract theoretical skills but skills that allow them to actually build something for sale, be it a service or a product. Abstract theoretical skills are great if you are being trained to be a low wage graduate school worker for 5 or 7 years on a multimillion dollar grant where the professors make about ten times your salary and you do most of their work. Most schools these days believe in training both the theoretical and abstract skill sets AND more common marketable skills. I believe there is no problem with leaving things like specialized AI or narrowly focused computing languages for graduate school where they can be used for specialized project applications. If you want to work in near poverty for 5-7 years then its your choice but this is not being forced upon you as a requirement or prerequisite. As a footnote, I have not hired an MIT gradute student or undergrad for quite some time and it wasn't because the projects were not up to their standards. I favor the institutions I mentioned earlier (among others).
He was of course correct. If you want to build software systems that are actually used then a better statement would be "Computer science has little to do with building commercial software systems" .. except perhaps at the very cusp of innovative design and the number of people employed in such endeavors is very very small. Of course there is a lot more money in innovation if you have the stomach for such projects ....