New approaches to teaching introductory computer science are sorely needed. An alternative approach would be to teach students software design before teaching them a programming language. Teaching object-oriented design promises to provide a learning experience with three features that do not often coexist. The design process requires analytic, logical, and integrative reasoning.
Designers start with an ill-structured problem.
They have to make explicit the implicit requirements of that problem and then generate a pathway from goal to solution. In addition, they must do so with a number of goals at the same time, which means they must integrate these disparate threads into a common structure. Select this for abstracts and access to our papers in this area.