On Teaching How to Design Programs
This paper presents a personal, qualitative case study of a first course
using How to Design Programs and its functional teaching languages.
The paper reconceptualizes the book's six-step design process as
an eight-step design process ending in a new ``review and refactor''
It recommends specific approaches to
students' difficulties with function descriptions,
function templates, data examples, and other parts of the design process.
It connects the process to interactive ``world programs.''
It recounts significant, informative missteps in course design and delivery.
it identifies some unsolved teaching problems and some
The paper is available as
US Letter PDF (272K) and
PDF formatted for tablets (272K).