We present a preventive model of tutoring for novice programming derived from a human corpus and describe our intelligent tutoring system PROPL embodying that model. The system conducts natural language dialogue aimed at eliciting program design ideas from the student prior to their initial solution attempt. Students are asked to identify programming goals and how best to achieve them. Various tutoring tactics are employed to correct flawed responses and refine vague or incomplete answers. PROPL is an application of Atlas, a dialogue management system providing robust sentence-level understanding and a reactive planner to control dialogue. A controlled evaluation is currently underway to assess PROPL's impact on students' programming and problem decomposition skills as well as their general behaviors, beliefs, and attitudes surrounding the tasks of programming.