Hacker News new | ask | show | jobs
by pavpanchekha 5433 days ago
Your points.

1) MIT did not abandon SICP: it decided that it no longer wanted to teach core CS concepts. There was an interview with Abelson on HN a while back, look that up for more. SICP is not featured in the courses at all, unless you count 6.945, an advanced class with Sussman, that goes far beyond.

2) The fact that iteration is a special case of recursion is a fact that does not depend on a language. For its part, SICP distinguishes between the two specifically because most languages don't make this theoretical unity a practical one.

3) Code-as-data is not used much in SICP until the final chapters, where you implement a metacircular interpreter. It is impossible to implement a metacircular interpreter without making use of code-as-data, because that is its point. And in Python, a Scheme interpreter is just as approachable as in Scheme (a Python interpreter is not, simply due to how huge the Python langauge is).

4) There is not, AFAIK, and equivalent to SICP, because we already have SICP.

1 comments

MIT did not abandon SICP: it decided that it no longer wanted to teach core CS concepts.

Wait, what? Are you claiming that the MIT undergraduate CS program does not "teach core CS concepts"? Or are you only talking about a single introductory course?

Haha, just 6.01, the world hasn't ended yet.
Yeah, but how well is the rest of SICP transmitted in a course using Java (6.005, at least according to the original plan)? Based on what I've seen (at a distance nowadays), MIT decided fundamentally change what it means to get an EECS education and degree in a panic move when enrollment dropped by half after being steady for decades.