4 ms·
Oh, I definitely agree. SICP was the beginning of the rabbit hole for me. But I had spent a lot of time programming before I started it, so I'm not sure if it r
by spacemanaki 15y ago
Oh, I definitely agree. SICP was the beginning of the rabbit hole for me. But I had spent a lot of time programming before I started it, so I'm not sure if it really is the best text for CS 101, where some students maybe have never written a line of code. Peter Norvig's review sort of sums up this regarding SICP: http://www.amazon.com/review/R403HR4VL71K8 http://www.amazon.com/review/R403HR4VL71K8
I've never been involved in teaching CS or programming, and while I really do think SICP should be required reading for all CS students (and for all programmers) just because it's so good, I respect that teaching is very challenging, and fitting it all into a single semester might be tough. There are some very smart and experienced people who have spent a lot of time thinking about this (see "The Structure and Interpretation of the Computer Science Curriculum"), and I hesitate to put SICP on a pedestal where it can't be touched.
As I said, hopefully some (or many!) of the students taking this class at Berkley will be curious about the original book and will seek it out on their own.
- tikhonj 15y agoOne thing to note is that this class is really more like CS101.5--if you have never programmed, you're highly encouraged to take a very introductory class for a semester before this one. Apparently about 90% (or something) of the people taking it have had at least some programming experience. I also don't think SICP is perfect; however, I think it inherently much better than anything--even itself--done in Python simply because Python basically forces less breadth. I recently read an interesting paper[1] that I think could lead to an even better class; if you're interested in this sort of thing, it's worth checking out. [1]: http://www.sics.se/~seif/Publications/fdp.pdf http://www.sics.se/~seif/Publications/fdp.pdf It's also not really designed for a completely introductory class, but I hope that most of the people coming into Berkeley CS aren't completely unprepared. On a slightly unrelated note, a completely different approach to an intro class could be cool too: instead of focusing on learning, maybe the first semester should be dedicated to just building something cool on a computer and letting the learning happen naturally. The more formal classes can always come later. For something like that, I could see using Python--although it wouldn't be my first choice by far--but that's a completely different story.