On Jan 11, 2008 4:40 PM, Michael L Torrie <[EMAIL PROTECTED]> wrote: > So I strongly recommend Python as a good foundational CS class. Python > is obviously a very high level language, and is not that capable of > low-level programming as in hardware-level. But it's low-level in terms > of CS abstractions, things that do really matter in teaching CS. It's a > great platform for teaching functional programming, lambda calculus, and > data structures, all of which are more or less foundational to good > programmers and computer scientists.
I also think python would be an ideal language to start students with, however, the complaints raised in this "Java Slam" article are equally applicable to python and any other non-low-level language. > >From what I've seen in CS 142 at BYU, for example, data structures in > Java is more of just an exercise in how to use Java data structure > libraries, something you should do as a professional programmer. But at If that's the goal of the course, then great. If not, then they have a poor set of instructors that are allowing students to use off-the-self data structures instead of implementing their own. Just because Java has a comprehensive set of data structures to use, doesn't mean you allow their use in a data structures course. And if you're trying to make a case that Java is high-level compared to python, then I'll need you to fill this cup up in the bathroom. > this stage they really don't learn how the data structures actually > work, how to traverse them, etc. I'm sure the same would be for C++ if > they actually taught the language. Using Lisp or Python to explore > data structures is more ideal, since they provide some very flexible, > base structures upon which all other things can be formed. Lists and > dictionaries. While this won't teach them how memory is actually These are the same primary structures provided in Java. Lists, Maps/Dictionaries/Associative Lists, and Sets. Just like Python and Lisp. > allocated, it does teach them in an abstract way, what the data > structures look like, how they are used, and how to build them. This is just as true when using Java as it would be using Python. Just restrict the use of certain pre-existing data structures. No big deal. I'm not saying that Java is a better language for teaching students compared to Python. But Python is every bit as abstracted, and even more high-level, and would be equally criticized by the authors of the article. C++ would probably be seen as an improvement by the article authors. -Bryan /* PLUG: http://plug.org, #utah on irc.freenode.net Unsubscribe: http://plug.org/mailman/options/plug Don't fear the penguin. */
