HtDP is an book that teaches an introduction to structured programming to any reader. Focusing on the fundamentals of programming, it teaches both new programmers the fundamental programming techniques and rips out bad habits from experienced programmers.
I personally recommend it to any undergrad students looking to get a good handle on good design techniques.
Over the past few years, we have developed an alternative approach to teaching the first course. We have translated the approach into a new text book, and we believe that it addresses SICP’s failings along four dimensions. First, the book discusses explicitly how programs should be constructed. Second, to tame the complexity of programming, it defines a series of teaching languages based on Scheme that represent five distinct knowledge levels through which students pass during their first course. The levels correspond to the complexity of data definitions that the program design guidelines use. Third, the book uses exercises to reinforce the explicit guidelines on program design; few, if any, exercises are designed for the sake of domain knowledge. Finally, the book uses more accessible forms of domain knowledge than SICP.
Link to the full paper (13 pages)
This repository contains solutions to most exercises, from my own reading of the book. Some trivial exercises, like questions on the fly, or making diagrams which I did by hand are not included. Each file contains a solution for the particular exercices. For multi-part exercises, such as Exercise 42 and up, each 'part' of the exercise is included, and each file contains a fully runnable program.