| Daimi contact info: http://www.daimi.au.dk/general/contact-information |
Title
Stepwise Refinement Considered Harmful
Abstract
Programming is recognised as one of seven grand challenges in computing education. Decades of research has shown that the major problems novices experience are composition-based ⎯ they do not know what the pieces are and do not know how to put them together. Despite this fact, current textbooks, educational practice, and programming education research hardly address the issue of teaching the skills needed for systematic development of programs.
We provide a conceptual framework for incremental program development, called stepwise improvement, which unifies best practice in modern software development such as test-driven development and refactoring with the prevailing but insufficient perspective of programming methodology, stepwise refinement. The conceptual framework enables well-defined characterizations of incremental program development; in particular, it enables a notion of degree of correctness, which plays a key role in stepwise improvement.
We utilize the conceptual framework to provide a derived programming method, STREAM, designed specifically for novices. The method is a carefully down-scaled version of a full and rich software development process particularly suited for novices learning object-oriented programming. In using it, we hope to achieve two things: to help novice programmers learn faster and better while at the same time laying the foundation for a more thorough treatment of more advanced aspects of software development.
|
Responsible: Marianne Dammand Iversen
Last Modified: 30 January 2009 |
URL:
|
|
Date of printing:
|