Live data from Hacker News

SICP is Under Attack

vedantk.tumblr.com

191–200 of 207 posts

Re: SICP is Under Attack

#191
post #78

Whoa, stop. There's a lot of issues in this article. First of all, Berkeley is NOT getting rid of SICP and SICP ideas. This is flat out untrue. I'm a recent instructor for the course, and I've spoken to several TA's about this course. Below is a rough summary of what we've discussed. This should not be construed as the "official line", but take from it what you will. First, Berkeley are not getting rid of SICP. ‎For…

I do like the idea of having it as a capstone. It's what Brian said: "I wish we could teach SICP both to incoming freshmen and seniors before they leave." I definitely understand a lot more of everything the second time through as a TA!

Re: SICP is Under Attack

#192
post #191
post #78

Whoa, stop. There's a lot of issues in this article. First of all, Berkeley is NOT getting rid of SICP and SICP ideas. This is flat out untrue. I'm a recent instructor for the course, and I've spoken to several TA's about this course. Below is a rough summary of what we've discussed. This should not be construed as the "official line", but take from it what you will. First, Berkeley are not getting rid of SICP. ‎For…

I do like the idea of having it as a capstone. It's what Brian said: "I wish we could teach SICP both to incoming freshmen and seniors before they leave." I definitely understand a lot more of everything the second time through as a TA!

Ras Bodik's CS 264 ends fulfilling a similar purpose if you're still at Cal and interested in the programming language design side of things.

Re: SICP is Under Attack

#193
I am just curious on this as I don't know Scheme at all. Could a new SICP book be authored that used Python instead of Scheme? Thereby, teaching what SICP was meant to teach yet using Python a well used "field" language?

Re: SICP is Under Attack

#194

Earlier quoted context omitted.

You have to learn arithmetic before you can learn proofs.

Ehh.... I don't believe so. I'm reasonably sure Euclidean geometry and symbolic logic do not require arithmetic.

It'd be interesting to teach first graders that.

Re: SICP is Under Attack

#195
post #169

Earlier quoted context omitted.

A computer is an imperative device. It is a deterministic state machine. Teaching introductory programming with a functional language is teaching students wrong, i.e. it does them a disservice. One could as easily argue that a computer is a tool, and if it helps us making better (according to some criteria) programs, why not abstract away the underlying architecture?

why not abstract away the underlying architecture Because it would not be an abstraction of what is there. It would be the creation of an abstraction of something that isnt there: i.e. a simulation. And indeed, this is exactly the cause of my complaint. Its like you have a machine that deals with squares. You're suggestion is to "abstract" the system into shapes, but then build a system using circles. A shape is an a…

In my country, we have Computer Science and Computer Engineering. CompSci is done in Science or Math faculties, while CompEng is done in engineering faculties.

CompSci is about abstract theory. It's more related to math then to engineering. To CompSci, computer languages are the building blocks. The fact that those language happen to run on computers is implementation detail. The fact that those computers are imperative is also implementation detail.

I'd say most CompSci students here don't care much about the inner workings of computers.

CompEng students are different. They couldn't care less about functional programming and care a lot about the underlying implementation.

Different people, different interests. I'd keep SICP for CompSci but not for CompEng.

I'll end with a quote: Computer science is no more about computers than astronomy is about telescopes ~Edsger Dijkstra

Re: SICP is Under Attack

#196
Muy importante. :-)

Late to the party here, but over at the other SICP-related thread that's on the frontpage right now I've linked to an updated version of SICP where an enthusiast has created a pdf with greatly improved legibility, formulas set with tex and figures drawn with vector graphics.

http://news.ycombinator.com/item?id=2848154

Re: SICP is Under Attack

#197

> 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

Nice! Also your solution makes it easy to move on to a logarithmic time solution: going from (a,b,c) to (b,c,3a+2b+c) is a linear transformation which can be expressed as a 3x3 matrix, therefore iterating it n times is equivalent to raising that matrix to the nth power, which can be done in log(n) time using square and multiply [1]. Disregard programming, study math! In fact the exact same reasoning can be used to de…

[deleted]

Re: SICP is Under Attack

#198

I love SICP as much as the next person. I've spent vacations devouring it while despairing girlfriends try to get my attention. Seriously, it is awesome . But, being realistic, an incredible amount of value is currently being created by software engineering . Value to society, and (hence) value to those who can practice the craft. I'm not surprised that so many schools are teaching software engineering, instead of co…

But engineers of the physical world variety learn the fundamentals of physics while learning the pragmatics of building codes, loads, and laws. Shouldn't software engineering aspire to the same level of preparedness?

Nuclear Engineer here. I think you're looking at Physics I with rose-colored glasses.

Re: SICP is Under Attack

#199

Earlier quoted context omitted.

> If you come out of a curriculum where all you learn is how to string together APIs and libraries, it's pretty much guaranteed you will end up with a job doing that, because that's all you will be qualified for. If all you learn is how to string together APIs and libraries, then it probably wasn't a "curriculum" at all. But emphasizing certain technology domains other than programming and computer science does have…

> if your goal is to produce engineers that push the envelope of next generation technology beyond just computers Then computer science isn't where you belong. There is a solid argument for teaching everyone the basics of programming, and this is it. I can hammer a nail into a wall, too, but that doesn't make me a carpenter.

If computer science is all you want to study, then an engineering school might not be the best place for you. You're probably better off at a small liberal arts school. At Schools like MIT and Berkeley, computer science is an optional specialization in the EECS program. If you look at the MIT course maps for the three main degree paths (EE, EE+CS, and CS) you'll see that 6.01 and 6.02, the replacements for 6.001 (the SICP course) are foundational for all 3 specializations.

http://www.eecs.mit.edu/ug/ug_6-1.html

http://www.eecs.mit.edu/ug/ug_6-2.html

http://www.eecs.mit.edu/ug/ug_6-3.html

Re: SICP is Under Attack

#200
post #62

Earlier quoted context omitted.

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 pa…

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.
Post reply on HN