An immersion model for software engineering projects

Software development projects are an essential component of software engineering courses. They provide the opportunity for students to apply theoretical material and to gain valuable experience in an environment typical of the workplace. These bene ts, however, are di cult to realise. We discuss strategies for managing nal-year software engineering projects in order to optimise the balance between pedagogy, course administration, and time constraints. In particular, we advocate an \immersion" model for software engineering projects. The immersion model emphasises the commercial realities of software development including activities such as reverse-engineering of existing systems, extensive code re-use, team work, user-interface development, meetings with management, and oral presentations. Our experiences with the immersion model have been extremely encouraging with signi cant improvements in the quality of student projects.