Live data from Hacker News

SICP is Under Attack

vedantk.tumblr.com

171–180 of 207 posts

Re: SICP is Under Attack

#171

I basically agree with the OP that Dive into python is a pale replacement, but at the same time there is something to SICP's critics. Peter Norvig seemed to think most people would get the most out of it after getting some experience, and the HtDP authors definitely have a point about how much heavy math is involved. It's still a wonderful book, and won't be lost, I'm sure. http://www.amazon.com/review/R403HR4VL71K8…

> ...and the HtDP authors definitely have a point about how much heavy math is involved. I get why people object to heavy math in programming -- it makes the entire field less accessible -- but programming is heavily based on mathematics, if not entirely a subset of mathematics. Saying, "it requires too much math to learn this" strikes me as a lot like saying "there's too much biology in learning to be a doctor".

Ugh. I don't really understand the criticism of too much "heavy math" in SICP. The calculus involved is very basic. The rest involves infinite sequences and series, which are pretty fundamental to Computer Science. Really, students only have to have brushed up against derivatives and have a basic notion of what integrals are to complete SICP.The amount of "calculus" that SICP requires can be learned in a fun-filled afternoon.

Re: SICP is Under Attack

#172

> Beautiful. I guess beauty is in the eye of the beholder. A simpler way to analyze this problem is noticing the f(n-3) term implies your function has to memorize up to 3 previous results. Then just use the coefficients from the formula to cycle the next result into memory. Using algebra and generating new coefficients as per the OP's solution is unnecessary. function f(n) if n

Just for fun, this is what LuaJIT generated as code:

->LOOP:

7fff3dcfffd0 movaps xmm4, xmm5

7fff3dcfffd3 movaps xmm5, xmm6

7fff3dcfffd6 movaps xmm6, xmm7

7fff3dcfffd9 movaps xmm7, xmm4

7fff3dcfffdc movaps xmm4, xmm7

7fff3dcfffdf addsd xmm4, xmm4

7fff3dcfffe3 addsd xmm4, xmm5

7fff3dcfffe7 mulsd xmm6, xmm0

7fff3dcfffeb addsd xmm6, xmm4

7fff3dcfffef add ebp, +0x01

7fff3dcffff2 cmp ebp, eax

7fff3dcffff4 jle 0x7fff3dcfffd0 ->LOOP

Re: SICP is Under Attack

#174
### An Update

SICP will not be abandoned at Berkeley.

Although Python will be used to convey the material, I have been assured that much of the content from SICP will be preserved.

I recognize now that CS61A is a fusion of sorts: an exciting modern treatment of traditionally intellectual material. This change reflects concerns about the difficulty of SICP, the popularity of Python, and a general lack of interest on the part of students and teachers in Scheme. Fair enough. I think this is the best possible solution for an introductory course, but that's just my opinion.

I want to reiterate that I mean Berkeley or its professors no disrespect, and that I only raised this issue because I was concerned about a potentially drastic shift in the curriculum.

I can't begin to thank you all for your comments, criticism, emails, and interest. It's made a world of difference.

Re: SICP is Under Attack

#175

Earlier quoted context omitted.

Can you prove it?

Why, doesn't this add up?

Frankly, not that much.

Proof writing depends more on abstract reasoning than knowledge of arithmetics.

Of course, traditionally, it works that way. I would say, though, it's harmful a bit for the reason that the basic math curriculum is so boring, it puts off many brilliant minds.

Mandatory reference: TED Talk, Wolfram on Math Education. ;-)

Re: SICP is Under Attack

#176
post #127

Earlier quoted context omitted.

Who offers a vocational education at an university level? Not everybody who is smart wants to be an academic.

What does your comment have to do with what I wrote? No one is denying that many people really want a vocational education. No one is claiming that smart people should want to be academics. The point is that what people want is not computer science. Civil engineers do not enroll in physics programs and then complain that their physics professors are not teaching them anything about practical bridge construction.

Then the problem is with college departments and administration who fail to create separate programs distinguishing between CS and SE.

Re: SICP is Under Attack

#177
post #69

I think that starting with Python is a fine choice. Please keep in mind that it's just the introductory course-- these students are going to be battered with CS theory later on. We are graduating around 20% fewer students in CS than we were in 2004. We need to find a way to make CS more accessible. I'm not saying that we should make the whole degree easier, but I think that having an easier & more practical first cou…

Those percentages don't mean much out of context. Was the curriculum less stringent back then (I.e. graduating people that shouldn't have been able to)?

Unfortunately, that context (a survey of the difficulty of curriculums for CS programs across the country, per graduation class) would be very hard to collect.

However, we could try to look at CS school drop-out rates, and how many students picked-up or dropped the CS major. Nevertheless, it would be hard to separate "difficult courses" from "students who don't really love CS" as boit and pnathan suggested.

Re: SICP is Under Attack

#178

Earlier quoted context omitted.

Why, doesn't this add up?

Frankly, not that much. Proof writing depends more on abstract reasoning than knowledge of arithmetics. Of course, traditionally, it works that way. I would say, though, it's harmful a bit for the reason that the basic math curriculum is so boring, it puts off many brilliant minds. Mandatory reference: TED Talk, Wolfram on Math Education. ;-)

I actually think that students could be exposed to proofs at an earlier level. At least, the ability to conceptualize a reasoned argument.

But I think to be able to do actual mathematical proofs, elementary school students may lack many of the tools and mechanisms that are necessary. Those tools being arithmetic and basic operations. By the same token, I think understanding basic CS principles and programming are necessary prior to understanding the theory.

Though it would be interesting for an Intro to CS course that used no actual language but was taught with only psuedocode. Teach basic concepts, hell even data structures, prior to tying the concepts to any one programming language.

Re: SICP is Under Attack

#179

Earlier quoted context omitted.

I am horrified by the idea of a body moving at government-speed dictating the norms I have to follow when my competitors move at internet-speed. Disclaimer: I am a professional engineer trained to design and build computers rather than program them.

Wouldn't your competitors have to follow the same norms?

Only if they were under the same government.

Re: SICP is Under Attack

#180
post #113

Earlier quoted context omitted.

When I started the project, I preferred CL over Scheme. Later, however, I had some experience with PLT Scheme and really liked the programming environment, so I decided to give it a try. I figured that using both languages will help me understand the differences between them better. It was not some serious limitation of CL, in any case.

Thanks for clarifying, Eli. As I said in my update, I was apparently badly misremembering a comment on your blog regarding the use of CL. You've actually inspired me to take up a similar SICP reading/blogging project, though I'm hesitant for two reasons. First is the concern over the depth of the material. I don't have a CS degree and I'm mathematically out of shape (and I never even did a calculus class), so I'm con…

You should by all means do it, because you don't have a CS degree. Don't worry about the math too much - it is all explained there, and whatever isn't you can easily find out. Don't forget that the most important thing here is the learning experience. It may take you longer to complete, but you will learn more in the process.
Post reply on HN