We used plai in the Programming Languages course I took last semester (which happened to be taught by Matthew Flatt, one of the authors of htdp). plai is a great book too.
Really good book. GA Tech used this as their "Intro to CS" text until they decided that learning scheme was too much for business and inta majors (everyone in the school had to take the class). I'd recommend this as a potential alternative for those thinking about learning to program using SICP. The latter dives into some more advanced topics, but this is much more accessible to newbies imo.
This was used at Waterloo in CS 135 back when I took it (maybe it still is the text?). An introduction to programming that really is an introduction to programming. On an unrelated note, this suddenly reminds me of "Assembly Language Step By Step" (http://www.duntemann.com/assembly.html). Another introductory book I thought was absolutely wonderful back when I read it, but goes about things entirely the opposite way from this book - teaching programming (from scratch!) at the lowest possible level. Maybe the desire to memorize the names and functions of the x86 instruction set isn't so different from an obsession with pokemon or whatever the latest childrens fad is. Both approaches appeal to me, but maybe that isn't true for people in general.
Could be that programs that write programs are really powerful/exciting and that it is really possible only in both ends of the expressiveness spectrum.
That's a very nice way of putting it. I too feel a lot more confident about an entire class of problems thanks to HTDP. The only problem I have with the book is that the generative recursion stuff is not as well done as the structural recursion portions, but I guess that could be because generative recursion portions are inherently more creativity requiring/difficult than the structural portions. Anyway, that portion is being revamped for 2e so I'm looking forward to relearning it.
I didn't realize it was being revamped. I had to skip some of the algorithm parts for lack of math (which I'm also studying). IME Part V was by far the hardest part of the book. I often found the language confusing and had to puzzle things out slowly that once I understood them, it seemed they could be more simply put. (Of course in order for that criticism to be useful I would have to develop it and provide details.) There seems to be a lot of value placed on abstraction, to the point that it's sometimes hard to follow. I don't know if it's just me or if it's just a result of the authors being so darn smart.
http://www.ccs.neu.edu/home/matthias/HtDP2e/