An alternative approach would be to teach students software design before teaching them a programming language. Teaching software design would result in a broader introduction to computer science as measured by the Task Force s recommendations. Students would still get an appreciation of how programming accomplishes its goals when they learn about the design of a program. 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. In analysis and design of software this process takes center stage and can not be circumvented. A Progress report. Computer Science Education, 4.