The book introduces the concept of a design recipe, a six-step process for creating programs from a problem statement.
According to HtDP, the design process starts with a careful analysis of a problem statement with the goal of extracting a rigorous description of the kinds of data that the desired program consumes and produces.
It then continues on to describe the role of Scheme and the importance of an ideal programming environment, and concludes with an extensive evaluation of content and student/faculty reaction to experience with SICP vs. HtDP.
One of the major focuses of the paper is the emphasis on the difference in required domain knowledge between SICP and HtDP.
The paper claims the following four major efforts that the authors of HtDP have made to address perceived issues with SICP: The paper then distinguishes between structural recursion, where the related data definition happens to be self-referential, requiring usually a straightforward design process, and generative recursion, where new problem data is generated in the middle of the problem-solving process and the problem solving method is re-used, often requiring ad hoc mathematical insight, and stresses how this distinction makes their approach scalable to the object-oriented (OO) world.