Live data from Hacker News

If not SICP, then what? Maybe HTDP?

stevenrosenberg.net

141–150 of 227 posts

Re: If not SICP, then what? Maybe HTDP?

#141

Earlier quoted context omitted.

Honestly, there's just a tiny bit too much of real number knowledge required in SICP. I wasn't good enough to really derive newtonian method on my own. For someone looking to develop applications I believe it's completely off the map. HtDP requires no arithmetic from what I recall. Which makes it more focused. Now SICP was for EE doing software. I suggest to everyone to learn EE, even partially, it's surprisingly use…

> I wasn't good enough to really derive newtonian method on my own. There is an old SMBC comic highlighting this general issue in STEM where for some mysterious reason, mathematical theories that took at least a few scientific generations to figure out, with lots of bitter fighting among the giants of science about which conclusion we should accept as correct, are now being taught as if they are trivial to reproduce…

Is this[0] what you were thinking of?

[0] https://www.smbc-comics.com/comic/how-math-works

Re: If not SICP, then what? Maybe HTDP?

#142

Earlier quoted context omitted.

Honestly, there's just a tiny bit too much of real number knowledge required in SICP. I wasn't good enough to really derive newtonian method on my own. For someone looking to develop applications I believe it's completely off the map. HtDP requires no arithmetic from what I recall. Which makes it more focused. Now SICP was for EE doing software. I suggest to everyone to learn EE, even partially, it's surprisingly use…

> I wasn't good enough to really derive newtonian method on my own. There is an old SMBC comic highlighting this general issue in STEM where for some mysterious reason, mathematical theories that took at least a few scientific generations to figure out, with lots of bitter fighting among the giants of science about which conclusion we should accept as correct, are now being taught as if they are trivial to reproduce…

Invention and comprehension through Socratic guidance are different tasks, with wildly different levels of difficulty. It's just not accurate to pretend that students are expected to "come up with" these theories in anywhere close to the way that (eg) Newton did.

Re: If not SICP, then what? Maybe HTDP?

#143
post #36

Hm. Not entirely sure what to think. I find SICP to be a mind-blowing book - a truly enlightening experience. But not, perhaps, entirely suited for beginners. I first started reading it four years ago, just over two years after I had started to teach myself programming in high school. Although I already found it interesting and its functional programming approach did have a lasting impact on my programming style, I r…

It is useful to consider the audience the book was written for: first-year students at MIT in the 1980s. That was a formidably bright and meticulously prepared group. Many of them already had some programming experience from high school. It's not too surprising that a book tailored to such a crowd's particular needs is not particularly suited to other students, whether less bright, less prepared, or simply true begin…

Agreed. Fashion and perspective change with time, and the approach taken in SICP doesn't match up well with the cognitive impedence of 18 year olds today, some 40 years after the book was written.

Then, PCs were not yet integrated in university teaching. It was still common for students to sketch out new software in pseudocode on paper before sitting down at a terminal they'd waited hours to get access to. And of course, editors were crude, IDEs nonexistent, and the compile-run-edit cycle often took 15 minutes or longer.

Programming was more deliberate, involving absolutely no cutting and pasteing. Coding then was much closer to writing a proof, which goes a long way to explaining why SICP put more emphasis in principles, formality, and derivation than we do today.

Re: If not SICP, then what? Maybe HTDP?

#144
I think programmers reaction to the mathematics in SICP is completely hysterical - in the sense of hysteria, not comedy. For example, the author-professors who wrote HTDP, quoted at length in this article complain about using 'complex domain knowledge' and the author of the blog post does as well, but the running example used is literally arithmetic. In particular:

Section 2.1 starts by building a data type of rational numbers, then extends it to interval arithmetic In section 2.4 this is extended to Complex numbers, which also adds the complication of multiple representations of a data type (rectangular vs polar). In section 2.5 these are unified with a generic arithmetic package. Which is finally extended to operate on symbolic polynomials, creating a symbolic algebra system.

So you can see, the authors complain about 'domain knowledge', but the example was surely chosen precisely because everyone already understands these relationships so well! It's a relatively nontrivial example, technically simple but structurally complex, that everyone already understands intuitively, so that you can get right to work thinking about data abstraction techniques - and in this example we go all the way from introducing the notion of an 'abstraction barrier' for the first time, to data-directed programming & message passing!

-----

The other mathematical section is 2.3, which is the infamous calculus section. Again the reaction is completely over the top - there's no 'deep dive', you don't need a 'solid foundation' in calculus, etc. The appearance of calculus is no more than implementing a couple of symbolic transformations of data, and all 4 of the rules are provided for you. You don't actually use calculus to do anything, so that if you don't know calculus, you can still write the program, it'll just be a bit more boring not knowing what it means. This section of the book is like 5 pages long, out of a 500 page book, but it's all we hear about...

Re: If not SICP, then what? Maybe HTDP?

#145

I think programmers reaction to the mathematics in SICP is completely hysterical - in the sense of hysteria, not comedy. For example, the author-professors who wrote HTDP, quoted at length in this article complain about using 'complex domain knowledge' and the author of the blog post does as well, but the running example used is literally arithmetic . In particular: Section 2.1 starts by building a data type of ratio…

"already understands these relationships so well"

Is that true for complex numbers?

Re: If not SICP, then what? Maybe HTDP?

#146
post #121
post #52

They may even come to the conclusion that programming is a shallow activity and that what truly matters is an understanding of domain knowledge THE HORROR ;) In all seriousness, IMO we'd have much better programs if developers spent more time thinking about domain knowledge and less time believing that "programming" in isolation is the important part.

I find that, as a rule, general programming proficiency and (worse still) language proficiency are given too much weight compared to domain knowledge, but it’s most definitely possible to overshoot and end up thinking those core skills are unimportant.

Yes, but I think that extends well beyond coding to include half or more of the UG CS curriculum. The rose of object-oriented groupthink is most pronounced among CS graduates, to the general detriment of the software dev world.

I learned the downside to domain ignorance early in my career when a engineering manager confided to me, “It's eadier to teach an engineer to code, than teach a computer scientist engineering.” The same applies to biology, medicine, chemistry, culture, and many other domains where mastery of context is difficult yet essential.

And I've found those turn out to be the most interesting software jobs.

Re: If not SICP, then what? Maybe HTDP?

#147
post #141

Earlier quoted context omitted.

> I wasn't good enough to really derive newtonian method on my own. There is an old SMBC comic highlighting this general issue in STEM where for some mysterious reason, mathematical theories that took at least a few scientific generations to figure out, with lots of bitter fighting among the giants of science about which conclusion we should accept as correct, are now being taught as if they are trivial to reproduce…

Is this[0] what you were thinking of? [0] https://www.smbc-comics.com/comic/how-math-works

Yes, thank you!

Re: If not SICP, then what? Maybe HTDP?

#148

Earlier quoted context omitted.

Source citing any or all of above properties?

Wow! You really need sources to prove to yourself that MIT students are smarter on average than a typical first-year student chosen at random from any University or Community College in the US?

Not in my experience. I've met numerous MIT grads, and invariably they're smarter than the average grad from a less demanding school. Obviously that also applies to Caltech, Chicago, most Ivies, etc. But part of that equation is that the MIT alum learned not only how to survive that greater workload, but they learned more because of it. So they have a head start on several counts.

Re: If not SICP, then what? Maybe HTDP?

#149

Earlier quoted context omitted.

> I wasn't good enough to really derive newtonian method on my own. There is an old SMBC comic highlighting this general issue in STEM where for some mysterious reason, mathematical theories that took at least a few scientific generations to figure out, with lots of bitter fighting among the giants of science about which conclusion we should accept as correct, are now being taught as if they are trivial to reproduce…

Invention and comprehension through Socratic guidance are different tasks, with wildly different levels of difficulty. It's just not accurate to pretend that students are expected to "come up with" these theories in anywhere close to the way that (eg) Newton did.

Correct, but perhaps not in the way you are thinking.

Newton was something else, but still: he had acquired a vast amount of knowledge and insight upon which he built his new theorems.

Meanwhile, experts are notoriously good at forgetting what it is like to not understand something yet, so when explaining things they subconsciously presume more a priori knowledge than is appropriate.

Re: If not SICP, then what? Maybe HTDP?

#150
post #36

Hm. Not entirely sure what to think. I find SICP to be a mind-blowing book - a truly enlightening experience. But not, perhaps, entirely suited for beginners. I first started reading it four years ago, just over two years after I had started to teach myself programming in high school. Although I already found it interesting and its functional programming approach did have a lasting impact on my programming style, I r…

I agree. I think the quoted professor-authors' point in the quoted passages is to make a book like SICP, designed to teach deeply rooted computer science concepts more approachable to beginners without going to the extreme of "How to build a webapp in 12 days". I support the effort, as I think it's a bummer that the choice as a beginner is often between a too-difficult SICP and overly abstract and non-theory-based tutorials.
Post reply on HN