We actually went through tons of different programming paradigms that scheme and lisp probably weren't really designed for, like OO (closures upon closures, all the way down). Throughout the class harvey and the TA's emphasized that everything we were learning could be done in any language, and didn't actually require scheme or lisp (yes, we never got to macros).
I can understand why you it might seem strange to port SICP over to scheme if you read SICP with the intention of learning lisp, but at berkeley the point of using SICP was to iterate through many different programming paradigms and cover basic computer science. unless they've found a better manual for this, it makes a lot of sense to just translate SICP instead of starting from scratch.
I think the language was only irrelevant because Scheme is so simple. We covered it in a couple of lectures and then it stayed in the background.
I really don't see the case for switching to Python at all--why "fix" something that isn't broken? Everybody seems to just assume that Python is a better choice.
That said, I think scheme is one of, if not, the best language to begin programming in, and agree with you that none of the reasons given for switching were very compelling.
Those scheme handles OO paradigms, the way it does is kind of annoying below the abstraction. however, scheme wasn't designed to handle OO, it was designed for functional programming. if i remember correctly, mutability is a hacked on addition (one of the reasons you use set! instead of def).
That said, the self-paced class seems really good. Some of my friends are TAing for that class and it seems to be going well.
It was a little easier back in the 80s when the new students would only have known BASIC or 6502 assembler
i think scheme is still great if you already know some programming because you can appreciate it even more.
My understanding was that MIT switched to python because in later courses they could actually use it to get things done (robotics, image proc, etc). While if they taught scheme they had to at the end of the course pretty much say: well that was fun, now we have to teach you something useful to get the rest of the course done.
mit and berkeley had/have the exact same "problem" with scheme (ie they don't/can't use it in any other class except the intro-to-into-cs class). This usually resulted in upped div classes spending a a class or two (basically a week of instruction, or a week of lab) on teaching the basics of the language the course is in. Though when i took the compilers course a few semesters later, the second slide of the entire course was "RTFM", and the professor dryly noted that we would be compiling a subset of python down to x86 assembler using c++, and despite the fact that he didn't expect any of us to know those languages at all, we didn't have the time to spend a lecture or discussion/lab on learning them, so we would have to learn them, on our own time.
I suppose that switching to a language that can be used in many classes is nice, but i don't think the students should have that much trouble switching if the professors supply supplementary material and they (students) understand the intro courses well enough. Plus, I think it's a good idea to get exposed to as many languages as possible, so you learn to think in a way that you can code well in any language.
The way the Berkeley intro course series is structured, it actually makes sense to not teach the fifth chapter in the first class: the idea is that you go from the top down, starting with really high abstractions and working your way down to building a computer out of logic gates. The fifth chapter fits in with the latter portion more than with the rest of SICP.
Also, MIT doesn't teach SICP at all in its intro course any more, as far as I know. They've also switched to Python, but I don't think they've kept the book, structure or material from the Scheme course (unlike what Berkeley is doing here).
In comparison, Python has way too much cruft.