E Unum Pluribus: Generating Alternative Designs
|I.||Introduction: Motivation and Goals|
|II.||How Variability is Currently Taught|
|III.||Variability in Novice Programmer Problem Solving|
This chapter identifies one critical aspect of teaching problem solving skills -- teaching students to explore alternative ways of solving the same problem. In the context of designing computer programs, we show how current attempts to teach students to consider alternatives is too tied to the product that is the result of a problem solving episode rather than to the process that leads to the product. Focusing on the process, rather than the product, we illustrate how students can be encouraged to explore variability in early phases of the program design process. We suggest several heuristics that can be taught to students so that they can productively control their problem solving processes and avoid becoming locked into a single approach.