The Senior Software Engineering Project at the University of Colorado Boulder is taught as a two semester sequence in which student teams complete a substantial "real world" project provided by sponsors drawn from both industry, research organizations, and university faculty.
These projects are developed under the direction of the course instructors and members of the sponsoring organization. The course has been offered yearly since its inception in 1987.
Each year during the summer, the instructor solicits project proposals during the spring and creates a list of available projects before classes begin the following fall. Proposals are very brief descriptions of ideas for projects that are optionally accompanies by a short video description. Once classes begin, students are given access to these proposals, a "Project Fair" is held, and students submit their project preferences, which are then used by the instructors to select projects and form teams.
There are a number of outcomes defined for the course. Upon completion of this class, students should possess:
Beginning immediately after project selection, teams weigh pros and cons of applying the various lifecycle options to their particular project. Many project teams will use an agile approach structured around a series of short, two-week software development iterations after a short initial planning stage while others might spend more up front time evaluating project requirements and planning their approach to developement.
Each development iteration includes planning, development, and release. Throughout the project, the students themselves are responsible for organizing, scheduling, and completing their tasks; however, a very important aspect of each iteration is that the sponsor is closely involved in reviewing the project and providing feedback and direction.
Several documentation artifacts are developed as part of these iterations over the course of the year, including requirements, design, a test plan and documentation for both end users and future developers. The nature of documentation for a specific project is detailed by the project sponsor.
Several presentations are also given by the student teams over the course of the project, which culminates in a poster/demo presentation during the Computer Science Expo during the last week of classes, and a final demo (again at the sponsor site) at the completion of the project in the spring.
Requests for project proposals are sent to potential sponsors during March each year. For more information, click here. Contact Judith Stafford to be placed on the distribution list for the annual request for proposals.