Skip to content

Comment on SICP in Pythonparent

Comments

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

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.

One 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

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.

AboutSource Built by g1lg1l

Hackerly is an independent reader for Hacker News, built on the public HN API. Not affiliated with Y Combinator.