Software of high quality is a major concern in teaching programming: simply making any program that fulfills the requirements is not enough. Yet the way teachers often state exercises tends to make the students focus more on functionality requirements and deadlines than on keeping the program quality high. This chapter discusses some concrete teaching guidelines that help in keeping the learning focus on quality and reports on our experiences in applying them. It furthermore presents an important observation relating to the use of test-driven development as a process that focus on high quality, namely that it tend to improve also the flexibility and reusability of the production code. This issue is presented and argued by a concrete development example. Parts of the present chapter have been published in early form in a paper entitled Systematic Testing should not be a Topic in the Computer Science Curriculum!. In Proceedings of 8th Annual Conference on Innovation and Technology in Computer Science Education, Thessaloniki, Greece, 2003.
Lecture Notes in Computer Science, 2008, Vol 4821, p. 147-165