Senior Software Engineering Project
CSCI 4308 - CSCI 4318
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 and research organizations.
These projects are developed under the direction of the course instructor
and members of the sponsoring organization.
The course has been offered yearly since its inception in 1987. During this
time 343 projects involving
1446 students have been completed.
Project proposals are solicited by the instructor each year during the summer
before classes begin the following fall. Proposals are very brief descriptions
of ideas for projects provided by industry. Once classes begin, these proposals
are given to the students, who then form teams, select projects, and begin
The are a number of outcomes that the department has defined for the course.
Upon completion of this class, students should possess
an understanding of a wide variety of software lifecycle paradigms
an ability to perform software requirements analysis, along with the ability to create an associated written requirements specification
an ability to complete both high-level and detailed software design, along with the ability to create an associated written design specification
an ability to correctly implement and integrate components of a larger software system, following practices appropriate for the development environment
an ability to perform testing -- including unit testing, integration testing and system validation -- along with the ability to create an associated written test plan
an ability to produce user documentation for the targeted end users of the software
an ability to create a software product release, along with the ability to create associated written release notes
an ability to communicate (both written and oral) effectively with a wide variety of audiences, including other developers, management, customers and end users
The projects typically use an agile approach structured around a series of
short, two-week software development iterations beginning immediately after
project selection and continuing through completion of the project at the end
of the spring semester.
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 papers 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.
Several presentations are also given by the student teams over the course of
the project: an overview presentation in class early in the project, a
"state of the project" presentation at the sponsor site at the end of the fall
and a final demo (again at the sponsor site) at the completion of the project
in the spring.
Browse these pages to find information on the prerequisites for taking the
class, as well as information for organizations who would like to sponsor a
project. You will also find information on each project that has been
completed, including a description of the project, the sponsor, the team of
students who did the project, and current contact information for those