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 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 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 solicited 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 the end of two semesters, spanning the semester break in summer or winter. 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. At the end of the two-semester project cycle the teams formally present their work and demonstrate results to fellow students, the public, and the team's sponsors. Everyone is invited to these presentations.

Although student teams are nominally in charge of project management within the team, the teams themselves are managed and directed by a specially-trained CS Graduate Student Mentor. The teams 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 per-student time commitment of 4-6 hours a week in the first semester(2-credits), and 8-12 hours per week (4-credits) in the second semester. In reality, many students put in more time than this, especially during the intensive final semester development and testing crunch.

Student Characteristics:

All of the students in the Capstone Design course 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 a variety of projects, 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: