Learning to design software ahead of directly constructing it is a significant hurdle in a Software Engineering education. Our University has run a course in software design for second-year undergraduate students since 1994. We describe the evaluation and improvement of the course as it evolved from 2000 to 2003, from a focus on reverse engineering to forward design, to add design patterns and associated programming tasks, then has redefined its objectives and re-aligned the assessment tasks with them. We evaluated the course in four ways: by the distribution of final grades, subjective evidence on the quality of answers in the final examination, student satisfaction surveys, and comparison of students' final grades with other computing courses taken at the same time. The attempt to improve the course by introducing homework tasks on design patterns did not improve the outcomes. But re-aligning the assessment with the objectives, and introducing a component on requirements specification, improved on most measures.
['Chris Johnson', 'Ian Barnes']
Redesigning the intermediate course in software design