Teaching programming by teaching principles of reusability1
Teaching how to program is difficult, but we believe it can be made easier by concentrating on principles of software reusability. Our teaching strategy is based on a conceptual model of reusability that explains how features of programming languages support the creation of reusable software. The strategy has several advantages because it promotes a deep but practical understanding, and allows objective comparison and assessment. This paper outlines our approach in detail, and discusses our experience.
teaching programming models reusable software