I just finished watching MIT 6.00SC for the hell of it. It was really sad experience.
Of course, prof. Guttag is really a big-shot and seems like no one could say anything, but I cannot even properly describe how much worse it was than CS61A by Brian Harvey.
It is not just Python, it is ugly Python, boring Python, without any hint of elegance it could be. No list-set-dict comprehensions, which is what makes Python interesting, very few slicing examples and one or two use of yield.
I must say that usage of classes was reasonable - only when there were even a small advantage to structure the code this way, but it is just boring stuff.
Each lecture of CS61 keeps you alert and awake, and curious, time passes unnoticed, and you almost feel how a new connections growing in your brain,) while in 6.00CS you're forcing yourself to to stay alert, almost yawning.
So, if one is engaged in self-education just do CS61A and old 6.001 classic videos. After you can skim trough all those mainstream Python-based courses very quickly with great ease. I can do 4-5 lectures per day.)
6.01 (6.001) is where SICP was previously taught, not 6.00. 6.00 is an introductory course to be taken for those with no/limited programming exposure before 6.01.
On a tangent, it's not only list-set-dict comps what makes Python interesting. The very simple and powerful approach to metaprogramming is very interesting as well (all the magic __whatever__ methods, for example)
Scheme is also known for its simple and powerful meta-programming system: macros.
Macros might be hard to fully understand at first, but the core idea is really simple. They're also extremely powerful: they let you change the actual syntax of a program and give you extremely fine-grained control over virtually everything.
Of course, prof. Guttag is really a big-shot and seems like no one could say anything, but I cannot even properly describe how much worse it was than CS61A by Brian Harvey.
It is not just Python, it is ugly Python, boring Python, without any hint of elegance it could be. No list-set-dict comprehensions, which is what makes Python interesting, very few slicing examples and one or two use of yield.
I must say that usage of classes was reasonable - only when there were even a small advantage to structure the code this way, but it is just boring stuff.
Each lecture of CS61 keeps you alert and awake, and curious, time passes unnoticed, and you almost feel how a new connections growing in your brain,) while in 6.00CS you're forcing yourself to to stay alert, almost yawning.
So, if one is engaged in self-education just do CS61A and old 6.001 classic videos. After you can skim trough all those mainstream Python-based courses very quickly with great ease. I can do 4-5 lectures per day.)