open source contribution as an effective software engineering class project
Software engineering courses often include a semester project designed to give students experience with real-world programming challenges and to expose them to phases of the software development cycle not covered in other classes. One means of engaging students in realistic programming challenges is to make participation in open source development a part of the semester project. This paper describes an assignment in which students contribute to an open source project. The project is designed to immerse students in the open source community and expose them to the work flow and design strategies of a large project. Students work in small groups and decide both which open source community to contribute to and which specific contributions they will make. They can choose to focus on implementation of new features over software maintenance or can focus on documentation and design over both. The assignment contains a proposal phase that allows the instructor to ensure that students are exposed to a healthy cross section of the development cycle.
open source software engineering software maintenance real-world projects team programming