Ask HN: Python or Scheme?
The introductory computer science course at Berkeley (CS61A) is going to be taught in Python in Fall 2011 instead of Scheme. I've heard many moaning about no more Brian Harvey and SICP; on the other hand, MIT has long switched over to teaching in Python.
I'm currently a freshman considering a CS major with limited experience in Python. I was just wondering what HN thought of this changeover- tbh, I feel like I'm missing something by not going through SICP like most Berkeley computer scientists, but then again it'll be interesting to be in a class taught for the first time.
12 comments
[ 3.2 ms ] story [ 35.7 ms ] threadA major part of the class was writing a Scheme interpreter in Scheme, which I imagine will not be possible in the new 61a (writing a Python interpreter in Python, that is). Considering how utterly jacked up Python's syntax is, compared to Scheme, I can't wait to see how they manage to pull this one off.
Really, if any Berkeley CS student can't learn Python on their own, their job prospects should be nil anyway.
Scheme and its relatives in the Lisp family is seriously different, genuinely attitude and mind changing, and having it no longer an essential part of the curriculum makes it much, much less likely to be learned or used.
Python is a superb language, but I for one can see the Lisp influence in my programming, and I'm a better programmer for it. I think it's a shame that universities are moving more towards "relevance" and further from "what's actually good for you, and you won't really get a chance to do elsewhere."
And that takes us back to the question of what universities are for, and what the value is they provide. People are saying "Why should I go to university - I can learn this stuff elsewhere!" And for many things that's true. But there are things you simply won't learn elsewhere.
Lisp is one of them. I think losing it is a shame.
Fortunately this isn't true. I'm living proof. People go to lisp for various reasons when they are ready, you don't need a university for that. In fact, teaching scheme badly to people who are not ready for it is probably a bad idea, and is the prime reason why some people actively avoid lisp later in their career.
I argue that it's likely that Lisps are mostly learned and used regardless of any curriculum. In order to "get" Lisp, you have to be both endlessly curious about computing and in need for something that offers the benefits of a language like Lisp.
You will not "get" Lisp merely by being taught Lisp; you're only likely to be left with the question "Why?" until you actually need something like Lisp and can answer the "Why?" yourself.
I think its worthwhile learning any language that is in a significantly different paradigm to what you already know, so I wouldn't stop at Lisp.
So instead there's a required programming languages course we spent half the semester learning/using scheme and the other half using it to understand other types of languages.
It's definitely worth taking the time to learn IMO.