Search Google Appliance

CS 469 Software Engineering Capstone I

Credit Hours: 3
Course Coordinator: Warren Harrison
Course Description: Emphasizes teamwork in small groups on a substantial project that will be performed for a real customer. Projects are chosen so as to provide interdisciplinary content with project proposals being solicited from the community at large. Projects that involve students as well as customers from other disciplines are encouraged. Lectures will be directed toward the management of software development projects such as those being carried out by the teams. It is the intent of the course to provide a capstone experience that integrates the materials contained in the remainder of the CS curriculum through work on a project that applies this material in another discipline. Each team member will contribute to the design, documentation, and testing phases of the project. This course creates an obligtaion for participation for two consecutive quarters. Prerequisites: senior standing. For CS majors: CS 201, 202, 250, 251, 300, 311, 321, 333, 350. Non-CS majors: permission of the instructor.
Prerequisites: Senior standing. For CS majors: CS 201, 202, 250, 251, 300, 311, 320, 333, 350. Non-CS majors: permission of the instructor.
Goals: The primary purpose of this course is to give students a team experience that comes as close as possible to the environments in which they will find themselves after graduation. The course is intended to integrate the knowledge that students have acquired in their other CS courses.

Upon the successful completion of this course students will demonstrate the ability to:

  1. Work in groups to specify a software product desired by a real outside stakeholder.
  2. Work in groups to design a software product desired by a real outside stakeholder.
  3. Work in groups to implement a software product desired by a real outside stakeholder.
  4. Work in groups to test a software product desired by a real outside stakeholder.
Textbooks: None.
References: None.
Major Topics: Software design, programming, testing, group dynamics, project planning, user interface design, dealing with customers.
Laboratory Exercises: None.


CAC Category Credits Core Advanced
Data Structures 1.0
Algorithms 1.0
Software Design 2.0
Computer Architecture
Programming Languages


Oral and Written Communications: Every student is required to participate in a weekly status between their group and the instructor during the last 12 weeks of the sequence. This entails making oral presentations ranging from 10 to 20 minutes per person describing their progress in meeting goals and objectives laid out in the project plans. At the end of the term, each group member participates in a 20 minute public presentation of their project. Teams also participate in a project post mortem at the end of the project with the instructor to discuss lessons learned. Projects involve developing documentation for the sponsor, either written or on-line. A project plan is a major deliverable. See for a project plan template. Individual students are supposed to maintain an engineering workbook during the 20 weeks the sequence is taught. See for a discussion of engineering notebooks.
Social and Ethical Issues: Discussion involving intellectual property rights at the beginning of the sequence since they are producing a large amount of intellectual property for someone not affiliated with the university. Because project sponsors represent real off-campus computing needs, students get an opportunity to see what their software will be used for, and better understand ramifications on the user of choices they make during design and development.
Theoretical Content: None.
Problem Analysis: Off-campus project sponsors make 20-30 minute presentations at the beginning of the sequence to provide a vision for the teams to think about. However, once a student group selects a project, they must determine the requirements of the application to be developed from interviews with the sponsor and others. This includes, scoping, functionality and constraints.
Solution Design: Once students have developed requirements from the sponsor, they must design a software solution to meet those requirements. This may either be a sequential activity, or it may iterate with the problem analysis, depending on the circumstances of the project.