Hacker Newsnew | past | comments | ask | show | jobs | submitlogin
How to Design Programs, Second Edition (neu.edu)
101 points by byproxy on Sept 3, 2011 | hide | past | favorite | 18 comments


The unsung engineering school in Boston. Tough to get any love when MIT is a few T stops away. Right on.


Did Scheme/Lisp make new home at Northeastern? Olin Shivers is also there. Some of his prose may not appeal to all but I find these legendary: http://www.scsh.net/docu/html/man.html http://www.ccs.neu.edu/home/shivers/autoweapons.html


I went to NEU for comp sci undergrad. While I was there it converted from a Java school to a Scheme school. It happened almost overnight when they hired Matthias Felleisen and told him to bring some of his friends.

I am so grateful to have had my education become heavily functional for my last two years. Changed my life permanently for the better.



This is probably a bad comparison to make but I am curious, apropos SICP, how does this book stack up? I notice right off the bat they're using Lisp.

Anyone who's read through this, do you think it's still valuable if you're already working through SICP?


As the link in samth's comment describes, they are really different books that had different goals. If I remember correctly, HtDP was partly inspired by the big chunk of SICP that requires somewhat external domain knowledge (mostly calculus and some electrical engineering), and the authors wanted to write an intro CS book that didn't require any special prerequisites. They were also written in different times, for different audiences. Didn't MIT combine their CS and EE curriculums as "course 6" (and still do?) requiring someone who was ostensibly majoring in CS to do a lot of EE, physics, and calc? I imagine CS was a different kind of major in the 80s when SICP was first written than it was when HtDP was first conceived.

I tried to read it, after having read SICP, but I couldn't get past two or three chapters. It's very much geared toward a complete beginner to programming and goes quite slowly, with tons of hand holding examples. This isn't really a fault, they obviously cannot satisfy a complete beginner and a working programmer with a CS degree who wants to fill in holes in their knowledge. I'd like to try to go at it again, maybe after they finish updating it, perhaps doing what Norman Ramsey has said on Stack Overflow in recommendations of the book: "If it's too easy, go faster!". There's a review on Amazon from someone who claims to have a PhD in CS, who said it was very valuable. (maybe that says something about their PhD program? zing! I jest.) So take my review with a dose of salt.


SICP is more for college level students with some high level mathematics background (basic calculus) and tackles computer science ideas directly. HTDP (at least the first edition http://www.htdp.org/ ) was intended for beginners without as much math background except for algebra. I actually prefer HTDP over SICP as an introductory text in computer programming and the Scheme language in particular. It's a great read in how to approach programming problems. I was actually exposed to designing with contracts through this text before I was ever exposed to Eiffel. And it's approach to teaching recursion was very gentle and practical. While SICP is great in ideas and prose, it is in some ways too abstract. HTDP is more grounded and covers those details that SICP assumed you'd have. No harm in reading both though.


I think this book is better for learning programming than SICP. Background on the differences is available from the paper the HtDP authors wrote about the difference: http://www.ccs.neu.edu/racket/pubs/jfp2004-fffk.pdf


I don't think anyone has read through this, in the second edition at least — 5 of the 13 chapters are blank.

I'm currently reading through SICP, and I think I'm going to stick with it instead of reading [the existent parts of] HtDP. I like the style of writing in SICP better. That said, if you're turned off by the writing in the first chapter of HtDP, this note appears at the end of the chapter:

"Oh, and by the way, the rest of the book uses a tone that is appropriate for a serious text."


> 5 of the 13 chapters are blank.

It's an update of HtDP (http://www.htdp.org/) and it's still in progress. I taught an intro (CS1) course using last year's draft (when chapters 1, 2, and 4 were all there was) and had no problems.


Roughly, SICP:Computer Science::HTDP:Software Craftsmanship/Engineering


Has this book received major updates lately? It has been available in draft form for a while. Many chapters are still empty.


Yes, the book has received significant updates lately. More updates are available from the draft version: http://www.ccs.neu.edu/home/matthias/HtDP2e/Draft/ . But, of course, it's not done yet, so there are still parts missing.


Is it out in book form yet or are they still growing it?


Still growing---it's a lot more than last year but chapters 8--12 are still blank. I imagine that by next fall it will be in near-final draft form and they'll aim for a dead-tree publication date in time for Fall 2013, but that's just a guess.


the first 7 chapters of the 2nd edition cover chapters 1-4 of the 1st edition minus the parts that discuss imperative code


I'm a tl;dr guy and really hate lisp books.


tl;dr:

1. You can't learn how to program quickly, but you can learn how to program.

2. Remember the design recipe.

3. The structure of your programs should follow the structure of your data.




Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: