CS@NAU: Senior Capstone Design

The Senior Capstone Design program in Computer Science at NAU focuses on the application of software architecture and software engineering principles to "real-life" projects submitted by outside "client" sponsors. Students spend a two full semesters working in teams to analyze, structure, design, implement, test, and deliver robust solutions to practical software projects.

The following description of the program provides some basic information on the scope and magnitude of the types of projects appropriate to this program.

Course Description:

The projects are executed within the context of the senior level Software Engineering and Senior Capstone Design courses. These courses together are an introduction to large program specification, analysis, architecture, structure, design, development, testing, documentation, and management. The students must apply to all aspects of software architecture and software engineering including: architecture modeling and the business relationship, product lifecycle models, project management and estimation, quality assurance, software engineering process methodologies, team structure and development, communications, and technical writing skills.

Course Structure:

The CS Capstone Program consists of a two-semester sequence: CS476 (2-credits) in the fall, followed by CS486c (4-credits) in spring. Projects are soliticted from our mailing list of "potential Capstone Sponsors" and then selected for execution based on preferences expressed by the upcoming cohort of students.

Work on all projects begins immediately after project/team selection and continues through early May, spanning the semester break in December.   In the early phases of the process, teams work with the sponsor to determine requirements and specifications and design a suitable software architecture.  The second phase of the course semester focuses on the detailed design and development of the project software, including testing and documentation. The project cycle ends with the Capstone Design Conference in late April, at which the teams formally present its work and demonstrate results to fellow students, the public, and the team's sponsors. All project sponsors are expected to attend this conference.

Although student teams are nominally in charge of project management within the team, the teams themselves are managed and directed by a CS faculty member. They are guided through the complete product engineering cycle from requirements analysis and architecture modeling, to software design and development, testing and software release.

The Capstone Design experience implies a time commitment of 4-6 hours a week in the fall (2-credits), and 8-12 hours per week (4-credits) in spring per student. In reality, many students put in more time than this, especially during the intensive spring semester development and testing crunch.

Student Characteristics:

All of the students in the Capstone Design course (approximately 15-25 per offering) are Computer Science seniors. Over their prior 3 years, they have developed and applied susbtantial coding and software development skills. This project is a practical synthesis of the concepts that the students have learned during their prior coursework and experiences. In short, Capstone students have a solid computer science background as well as a wide set of software experiences and are generally enthusiastic about this course and the project. Thus, we are able to accommodate project with great diversity, including those with a strong business orientation, product focus, real-time control, graphical user interfaces, and integration with other applications within the sponsoring organization.

Project Characteristics:

The ideal software project is something that an organization currently needs or has wanted done for some time but other priorities have prevented its execution i.e., a "back-burner" project. It is imperative that the project sponsors have enough of a vested interest in the project's success to support and be available to the project team as required. Sponsor interaction usually requires approximately 8-12 hrs. during the requirements acquisition phase; and then smaller chunks of time in the second term to provide fast, concise feedback on the evolving product.

Senior design projects should have the following attributes: