SICP is Under Attack
11–20 of 207 posts
Re: SICP is Under Attack
#12Re: SICP is Under Attack
#13Fortunately the text and lectures are available for free online, so there is nothing to prevent the curious student from digging in.
edit: now that I've more time to reflect, I want to revise my thoughts...
I would be pretty pissed I was handed dive into python or something similar as my freshman programming text at a college like MIT or Berkley. I would hope that most CS majors wouldn't be going to into one of the top CS programs in the country cold, having never written a line of code. This is in no way meant to disparage Dive into Python or similar books, but it is something you can read on your own over the course of a week or two. If you aren't going into CS at a top uni to study the hard shit like SCIP, I don't really see the point.
Re: SICP is Under Attack
#14Even MIT abandoned SICP for its introductory course in favor of Python. But I believe it's featured in its second course, no? I don't consider that a mistake. If you're getting rid of it from the curriculum altogether, though, that's a mistake. This article didn't say if that was the case or not. (Also the point of SICP being language agnostic is fairly false. I mean sure you can implement iteration as recursion in o…
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.
Re: SICP is Under Attack
#15Even MIT abandoned SICP for its introductory course in favor of Python. But I believe it's featured in its second course, no? I don't consider that a mistake. If you're getting rid of it from the curriculum altogether, though, that's a mistake. This article didn't say if that was the case or not. (Also the point of SICP being language agnostic is fairly false. I mean sure you can implement iteration as recursion in o…
Still, SICP is one of the greatest computer science texts ever written, precisely because the learning curve is about as steep as it gets. Each chapter builds on the last, and by chapter three you're learning concepts that clarify some of the thorniest issues you will ever face in an average programming career. Even if you don't get to use a language like Scheme, it's sad if you don't know what SICP has to say about these problems.
Re: SICP is Under Attack
#16The obvious solution: rewrite SICP to use Python rather than Scheme. It is CC attribution and non-commercial, so I don't see any legal barrier to outsider revision.
That is not possible or desirable. Scheme-specific constructions are woven throughout the text -- tail calls, closures, and more. And the main value of SICP, at least for its fans, is the pedagogic value of the language. It starts off with pure functional programming and then introduces assignment much later, and discusses its tradeoffs.
The "main value" cited also assumes "pure functional programming" is worthwhile. That is not an uncontroversial opinion, and does little to make the case for SICP to people not already convinced.
Re: SICP is Under Attack
#17So did anyone else look at the challenge problem, see f(n-3), f(n-2), and f(n-1), then immediately think "oh. A three element array would solve that"? Took me less than 60 seconds... I'm a little worried that I'm so good at imperative programming, though, since it might indicate that I'm "crippled" when it comes to functional programming. I bet one of you could code circles around me when it comes to e.g. implementin…
Re: SICP is Under Attack
#18So did anyone else look at the challenge problem, see f(n-3), f(n-2), and f(n-1), then immediately think "oh. A three element array would solve that"? Took me less than 60 seconds... I'm a little worried that I'm so good at imperative programming, though, since it might indicate that I'm "crippled" when it comes to functional programming. I bet one of you could code circles around me when it comes to e.g. implementin…
Re: SICP is Under Attack
#19Re: SICP is Under Attack
#20The obvious solution: rewrite SICP to use Python rather than Scheme. It is CC attribution and non-commercial, so I don't see any legal barrier to outsider revision.