Live data from Hacker News

If not SICP, then what? Maybe HTDP?

stevenrosenberg.net

11–20 of 227 posts

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

#11
post #4

People who worked through HtDP: what are your impressions?

Only worked through a part of it, but left a pretty good impression. Writing style was pleasant to read, sometimes imagined it read in Bob Ross' voice. Only Scratch has a shorter "zero to moving pictures" time. The language manual is so tightly integrated with the book it doesn't leave a single character of code unexplained (I've read beginner's books that never explained "+=" while using it in code samples). My only nitpick is that the design recipe wasn't sufficiently explained and it finally clicked when I tried the edx course based on the first part of HtDP, which has its own problems like a plodding pace and unchallenging excercises. All in all a great beginner's book.

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

#12

It's always interesting seeing the textbooks that are renowned by professors/people with prior knowledge, yet disliked by actual students. The Feynman Lectures on Physics is a pretty famous example (iirc, the actual course was received pretty negatively by students). I wonder how many people have actually sat down with a bunch of students and done a real experiment with textbooks. It's quite easy to think that a text…

> MIT students are far stronger than average and can generally skip certain elided steps that other students cannot.

They are stronger at what?

Either they know things already or they don't. If they know things already then they can skip steps and if not then they can't or can use guesswork. And that's what any other human being will do.

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

#13
I recommend "Concepts, Techniques and Models of Computer Programming" Van Roy and Haridi. While SICP is an enlightening read, much of what it discussed, looked to be methods that do not all mesh together into one overarching discipline or "science" of programming, which is what CTM aims to do(But admittedly it is a much harder book, and I am still only in the very early chapters). Important questions like how programming in the large is different from programming in the small, how some methods scale and how some do not, topics like these aren't perhaps handled by either of the books, if my memory serves right.

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

#14

It's always interesting seeing the textbooks that are renowned by professors/people with prior knowledge, yet disliked by actual students. The Feynman Lectures on Physics is a pretty famous example (iirc, the actual course was received pretty negatively by students). I wonder how many people have actually sat down with a bunch of students and done a real experiment with textbooks. It's quite easy to think that a text…

You are absolutely right that there is a tendency for people to respond to a recommendation request with a book that is too much for the requester, and I've sometimes thought may have been too hard for the answerer on their first time through the material. I see that on /r/math, for instance, it seems to me. (That phenomenon needs a name.)

That said though, let me say that for me personally SICP was mind-opening. I think about it a lot; it has had a major influence on me. An example is that I am working on a Theory of Computation book and I am trying to emulate some aspects of it (while keeping the presentation accessible). I certainly will admit, though, that when I read it I expect that I was in a different place than the post's author or than the typical student.

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

#15
post #9

I can fully recommend HtDP for beginning programming - tried various options for my 11 year old. I needed it to involve very little help from me - tried some scratch, mit50x, both which helped but did not spark and sustain interest. Then we came across https://www.edx.org/course/how-code-simple-data-ubcx-htc1x - love it and does not need any help from me :) planning to move on to https://www.edx.org/course/how-code-c…

> we came across

There are YouTube videos (I don't know how well they fit with the current course) and they are excellent.

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

#16
"that make me jump through intellectual hoops made of mathematics"

There is actually surprisingly little mathematics in SICP. What is does have are mechanisms that are then analysed and modelled, after which the mental model is adapted so it can be turned into computational model that is a faithful representation.

Some of the presented mechanisms are mathematical in nature, but you don't need a mathematical background any more than you need an economics background to write, say, a banking application.

"make it hard for me to learn the actual programming."

Depends on if you see "actual programming" as the mental discipline of correctly representing a part of the real world into a computational model.

If you see "actual programming" as typing in characters on a screen until they compile, then ship them and get absurd amounts of money for it, then sure, SICP might not be for you.

"without going too deep into the quirks of a single programming language"

SICP is not about scheme, has never been about scheme, will never be about scheme.

You will not emerge a "God of the Lisps" from SICP. It might, however, clue you in about what's actually happening when programming, in any language of choice.

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

#18

"that make me jump through intellectual hoops made of mathematics" There is actually surprisingly little mathematics in SICP. What is does have are mechanisms that are then analysed and modelled, after which the mental model is adapted so it can be turned into computational model that is a faithful representation. Some of the presented mechanisms are mathematical in nature, but you don't need a mathematical backgroun…

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 useful to learn designing anything. It's still system design, state changes, but in a different substrate, and personally I found it very helpful (gives you a new appreciation for crude language like C).

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

#19

It's always interesting seeing the textbooks that are renowned by professors/people with prior knowledge, yet disliked by actual students. The Feynman Lectures on Physics is a pretty famous example (iirc, the actual course was received pretty negatively by students). I wonder how many people have actually sat down with a bunch of students and done a real experiment with textbooks. It's quite easy to think that a text…

I watched the SICP lectures after a few years as a java developer and absolutely loved them.

I also remember doing a course on functional programming (SML) when studying that did absolutely nothing for me.

You’re probably correct, you need to have mastered the mechanics of programming before having the brain capacity and experience to appreciate the finer details and subtleties of the craft.

I had a similar experience with karate training. When siting on the bench and watching my son train it looks rather straight forward, just remember to focus. Then after a term I decided to join the training and suddenly it feels like you have five arms to coordinate, and processing any verbal input from the sensei is just out of the question.

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

#20

It's always interesting seeing the textbooks that are renowned by professors/people with prior knowledge, yet disliked by actual students. The Feynman Lectures on Physics is a pretty famous example (iirc, the actual course was received pretty negatively by students). I wonder how many people have actually sat down with a bunch of students and done a real experiment with textbooks. It's quite easy to think that a text…

I watched the SICP lectures after a few years as a java developer and absolutely loved them. I also remember doing a course on functional programming (SML) when studying that did absolutely nothing for me. You’re probably correct, you need to have mastered the mechanics of programming before having the brain capacity and experience to appreciate the finer details and subtleties of the craft. I had a similar experienc…

>a course on functional programming (SML)

Grossman's course on Coursera? If so, yes, that was pretty useless.

Post reply on HN