A Capstone Design Course Based on Computing Curricula 1991
K. Akingbehin, B. Maxim, L. Tsui
Abstract
This paper describes the development and proposed implementation of a capstone design course which is based on the 1991 report issued by the ACM/IEEE joint task force on computing curricula. The capstone design course advocates incorporation of the three essential and recommended components of design, theory, and abstraction. Discussion of ethics and professional practice are also recommended, consistent with the task force report. The course benefits from faculty experience with similar courses in both computer science and computer engineering and also experiences with independent study courses. To improve the students' verbal and written communications skills and experience in teamwork and cooperative design projects, students are required to work in small groups and to present frequent written and verbal reports. A final cumulative written report and oral presentation/demonstration is additionally required.
Introduction
A common dictionary definition of the word capstone is "the crowning point". This implies that a capstone course in an undergraduate computer science curriculum should serve as the crowning point of a student's education.
The recent report (commonly referred to as Curricula 91) of the ACM/IEEE Joint Curriculum Task Force [1] lists several important goals for undergraduates in Computer Science and Engineering. A first goal for all computing programs is to provide for broad-based coverage of computing as a discipline. Undergraduate programs also have an obligation to provide students with exposure to the ethical and societal issues which confront the field of computing. Students of computing should be prepared to apply their knowledge to solve specific and constrained problems when completing their coursework.
The ACM/IEEE report describes three processes (theory, abstraction, and design) which need to be represented in a substantial way in each computing course taken by undergraduate majors. Figure 1 illustrates this two-dimensional characterization. The major elements of theory are: definitions, axioms, theorems, proof, and interpretation of results. The elements of abstraction include: data collection, hypothesis formation, modeling, prediction, experimental design, and analysis of results. Design elements include: requirements, specifications, implementation, testing, and analysis.
According to the ACM/IEEE report, several additional educational experiences (beyond traditional programming and class activities) should be included to help students develop their capacities for critical thinking and problem solving. These activities include: working as part of a team, improving written and oral communication skill, delivering effective presentations, and working with professional computing literature.

We believe a capstone course needs to be added to the traditional courses required of all computing majors in order to meet the challenges set forth by Curricula 1991. In particular we think that this capstone course should provide students with strong experiences in software engineering. Students should work in teams to investigate, design, implement, and present to their classmates a major software project which meets the demands of a real world application. The course activities should require students to consider the management concerns of their projects. We envision a course which would include seminar type discussions of professional responsibilities, risks, and liabilities. We believe the capstone design course described in this paper is consistent with the goals of ACM/IEEE Curricula 1991.
Present Situation
The idea of a capstone project course for undergraduate computing majors is not new. Capstone courses in computing have traditionally tried to provide senior students with experiences similar to that encountered in professional practice [1], [2], [3], [4], [5], [6]. In several cases, course developers make a case that the purpose of the course is to help the students integrate theoretical computing concepts with the demands of computing practice.
One approach in recent years has been to involve students in projects which satisfy the needs of real world clients. One difficulty with this approach has been the fact that real-world problems frequently require more that one semester to solve. Because of this, some schools have offered the course as a two semester sequence [1], [5] or have offered the course outside of the normal academic year [3], [4]. However, with careful project selection, some schools have been successful in offering the course as a one semester course [2], [6].
Some of the project courses described in earlier literature do not require students to work as part of a development team [4]. A majority of the courses described in recent years, however, require students to work as a group on a major course objective. Most courses seem to be organized around the notion of having students follow a computing project from its feasibility study through its design, implementation, documentation and testing phases.
There is consensus that professional practice invariably requires strong verbal and written communication skills [7]. Despite this, most computing curricula fail to provide graduates with adequate communication skills. To develop oral skills, students need to have opportunities to make presentations and to observe and critique other students' presentations [8]. We believe that the capstone course proposed in this paper will assist students in improving their written and oral communication skills.
It is difficult to motivate students to study ethical concerns of the computing profession, unless they can be convinced that real world problem solvers complement their technical skills with such knowledge [9]. Computing faculty may frequently feel uncomfortable about teaching ethics, despite the fact that such faculty are uniquely qualified to share their knowledge of ethics with computing majors. The capstone course described in this paper will help sensitize students to ethical issues [10]. Most capstone courses offered in the past have omitted discussions of ethical issues.
Selecting a Project
Project selection is a critical part of the capstone course that we propose in this paper. It is very important that projects meet the goals of a capstone course as described in the ACM/IEEE report [11], [12]: "students, working in teams, investigate, design, implement and present to their classmates a significant software project. The project should solve a significant, complex and hopefully generalizable problem, dealing with constraints and trade-offs in the solution".
Instructors have a responsibility to ensure that projects are carefully chosen and that they fall within the framework of Curricula 91 as depicted in Figure 1. The design, theory, and abstraction requirements are usually incorporated into the design phase of a well selected project. Covering all the nine subject areas in one project however is usually more difficult and, depending on the actual project selected, only some of the subject areas can be incorporated. Regardless of which subject areas can be incorporated, the project should be such that a student can bring together and interconnect the application of several subject areas. This is the primary function of a "capstone" course.
Curricula 91 also stipulates that students should be given "additional experience that will help them develop the capacity for critical thinking, problem solving, research methods, and professional development". The additional experiences fall into four categories:
Students are allowed to choose projects in which they have an interest. Only two requirements are imposed in the selection of a project by a student group:
1. The project selected is subject to approval by the instructor.In approving a project, the instructor should consider issues like size and complexity, requirements of Curricula 91, true design activity, availability of facilities, and adequate student preparation for the project. To help students in making a good selection, a list of possible project areas such as that shown in Figure 2 is provided to students at the beginning of the semester. Students are given time to think about the project areas and they are encouraged to have discussions with the instructor before a final project selection is made. The requirement that projects be testable ensures that students have a demonstrable project and also provides a means for assessing the success of the project at the end of the semester.
1. Database Management System
Figure 2. Some Possible Project Areas
The Course
The course is a three credit-hour course and is designed to be completed in one semester. It is important that projects be chosen accordingly. A two-semester version of the course can easily be developed.
Students are required to work in groups of three. In exceptional cases and with proper justification, smaller or larger groups may be allowed. Experience has shown that two people may not be enough for an effective team while four or more may be too many, usually resulting in some team members not being active participants. These numbers of course apply only to the type of projects that can completed in one semester.
Students are allowed to select their own teammates and determine their own group leader. If there is a wide range of student abilities in the class, it may be desirable for the instructor to choose the team leaders to ensure that each team has sufficient technical expertise to complete its project. We have observed that under each model, students tend to organize themselves so that one person is the hardware expert, one person is the software expert and the third team member takes charge of documentation and coordination of activities.
Classes meet for three hours each week for a total of 42 semester contact hours. Curricula '91 recommends that 11 lecture hours be devoted to social, ethical and professional issues. The recommended topics associated with these knowledge units are divided into four broad groups:
Historical and social context of computing includes: definition of computing subject matter, comparison with other disciplines and computing technology uses/limitations.
Topics associated with responsibilities of the computing professional include: professional societies, social responsibility, professional growth and ethical choices.
Risks and liabilities includes: risk types, loss types and liability.
Intellectual property includes: definition of intellectual property, protection of intellectual property and infringement penalties.
During the first two weeks of the semester, class time would be devoted to course introduction and project organizational issues. After project teams have been organized, class time would be divided between seminar-type class discussions on computing topics and team presentations of significant project milestones. These presentations might be brief progress reports, structured walk throughs or project demonstrations. To help select seminar topics to be discussed, a questionnaire such as that shown in Figure 3 is passed out to students at the beginning of the semester. Once the questionnaires are collected and the results tabulated, topics of high interest are identified and incorporated into class discussion along with the computing issues recommended in the Curricula '91.
Please indicate your interest in the following topics by checking the appropriate column. Feel free to add topics of interest to you at the bottom of the sheet. Return to instructor when finished.
High Moderate Low
1. Professional Practice and Ethics [ ] [ ] [ ]
2. Basic Computer Architecture [ ] [ ] [ ]
3. Software Engineering Principles [ ] [ ] [ ]
4. Operating System Concepts [ ] [ ] [ ]
5. Real-Time Computing [ ] [ ] [ ]
6. Serial and Parallel Communications [ ] [ ] [ ]
7. CASE Tools [ ] [ ] [ ]
8. Object-Oriented Languages [ ] [ ] [ ]
9. Interpreter Design [ ] [ ] [ ]
10. Extensible Languages [ ] [ ] [ ]
11. Fuzzy Computing [ ] [ ] [ ]
12. Neural Computing [ ] [ ] [ ]
13. [ ] [ ] [ ]
14. [ ] [ ] [ ]
Figure 3. Questionnaire for Class Discussion Topics
In addition to the three hours of class time, students are advised that they are expected to put in an additional out-of-class six hours per week on the project. The instructor may wish to reduce class time to two hours per week , half-way through the semester, in recognition of the additional six hours. Six hours of out-of-class work is typical for a three-credit hour course. The out-of-class time in the capstone course consists of team interaction, project planning/design/implementation, presentation preparation, report writing, and consultation with instructor. The six hours is very important as a vehicle for team work.
A final presentation/demonstration is required of all teams. The final presentation is very important as a vehicle for oral communications. The presentation is presented in a professional manner using audiovisual equipment such as overhead transparencies and slides. Students are required to be professionally dressed for the presentation. The entire department and other interested individuals are invited to the presentation. This is especially important if student projects are designed to meet the needs of real applications clients. The presentation is accompanied by a demonstration of the product, if the product works.
AN INTELLIGENT PERSONAL FINANCES MANAGEMENT SYSTEM
by
John Doe
Mary Jane
Mike Gunner
FINAL REPORT
Submitted in partial fulfillment of requirements for
Capstone Design Class (CIS 495)
Winter 1993
Approved:
___________________ ______ _________________ ______
Course Instructor Date Dept. Chairperson Date
Figure 4. Recommended Cover for Final Report
Brief oral progress reports are required of each team on a weekly basis. The final report is very important as a vehicle for written communications. A recommended cover and possible sections for this report is shown in Figures 4 and 5.
1. Cover Page
Figure 5. Possible Sections of Final Report
The students will have difficulty writing the report in one piece at the end of the semester. It is suggested that students submit the milestone documents associated with the classical software life cycle for evaluation as they are completed during the semester, as the project passes through each phase as shown in Figure 6.
Life Cycle Phase Documentation
Figure 6. Classical Software Life Cycle
Each team member is required to prepare and submit a professional resume which is included in the final report. Each team is also required to maintain a log book in which significant events/experiences and other information is recorded. This log book is turned in as part of the final report. A user manual that describes how to use the final product is required. This user guide can be separated from the final report and can be used independent of the report.
Grading for the course is based on class participation, final presentation, project demonstration, and final report. Student team members are expected to rate their own participation in the project and that of their teammates (0 = nothing to 5 = excellent) and to provide a list of activities completed by each team member. These ratings are used to help determine each person's overall project grade.
In addition to the documents listed in Figure 6, each team is expected to devise additional milestones of its own and to produce a complete project management plan during the first 3 or 4 weeks of the semester. The contents of this plan appear in Figure 7.
1. Proposed DeliverablesFigure 7. Project Management Plan
Producing the project management plan so early in the term will be difficult for students, because this will be their first experience in project management. The quality and completion criteria for each milestone must be stated in measurable terms. Milestones for student projects should be reachable within one or two weeks time. The tasks listed in the work breakdown must be assignable, feasible and possible to complete within a two week period. The project schedule should include: activity bar charts, a CPM/PERT activity chart and a staff allocation plan.
Implementation Alternatives
The original computer science curriculum at the University of Michigan-Dearborn, similar to several others, was based on the 1978 ACM Curricula Recommendation. A revised curricula, based on the 1991 ACM/IEEE recommendation, was introduced in Winter 1994. The capstone course described in this paper is part of this new curricula and is a required course for all computer science majors. Being a senior level course, the first offering of the course will be in Fall 1995. The techniques and concepts described have however been used for several years in various project-oriented courses offered in the school of engineering in which computer science is housed.
Several variations to the implementation scheme are possible. These variations allow the course to be incorporated into other computer science programs, including those which are not based on Curricula 1991. Some possibilities are:
1. The course may be offered as a senior level elective course.Other variations can be developed to accommodate special curricula and program requirements.
Conclusion
We have presented the details of a capstone design course which is based on Curricula 91. Computer Science majors at the Univeristy of Michigan-Dearborn will be required to elect a capstone design course modeled after the one described in this paper beginning Fall 1995. We plan to restrict access to this course so that computer science majors will elect it during their senior year. We believe that this is necessary to ensure that students have sufficient intellectual maturity to complete the capstone course in a single semester.
It is our hope that others would find the information useful in the never-ending quest to produce college graduates who are better equipped to function more effectively in an increasingly demanding technological world. Since the capstone design course described in this paper is based on Curricula '91 it would not be difficult to implement in computing programs at other colleges. Some instructors may prefer to have a separate course on computing ethics, if this is so then the weekly seminar activities may focus on specialized software engineering topics.
We would like to hear about the experiences of others in the design and implementation of similar courses. We also wish to express gratitude to the various professors and others who have shared their experiences and suggestions with us in the past.
References and General Bibliography
[1] Arras, Richard J. and Motter, Lewis, "The Senior Seminar in Computer Science", SIGCSE Bulletin , vol. 22, no. 4, pp. 29-36, 1990.
[2] Ballew, David, "A Senior Design Course for Computer Science", SIGCSE Bulletin , vol. 18, no. 1, pp. 131-133, 1986.
[3] Howerton, Charles P., "CACTUS Systems - A Computer Science Practicum That is More Than a Capstone", SIGCSE Bulletin , vol. 20, no. 1, pp. 176-180, 1988.
[4] Meinke, John G., "Augmenting a Software Engineering Projects Course With Oral and Written Communications", SIGCSE Bulletin , vol. 19, no. 1, pp. 238-243, 1987.
[5] Oman, Paul W., "Software Engineering Practicums: A Case Study of a Senior Capstone Sequence", SIGCSE Bulletin , vol. 18, no. 2, pp. 53-57, 1986.
[6] Poole, Bernard J. and Callihan, Hubert D., "Systems Analysis and Design: An Orphan Course About to Find a Home", SIGCSE Bulletin , vol. 20, no. 2, pp. 54-57,64, 1988.
[7] Fulda, Joseph S., "Verbal Skills in Computer Science Education", SIGCSE Bulletin, vol. 17, no. 3, pp. 30-31,41, 1985.
[8] Cote, Vianney, "Teaching Oral Communication in Computer Science", SIGCSE Bulletin , vol. 19, no. 2, pp. 58-60,64, 1987.
[9] Tabak, Leon, "Giving Engineers a Positive View of Social Responsibility", SIGCSE Bulletin, vol. 20, no. 4, pp. 29-31,37, 1988.
[10] Searls, Delmar E., "Teaching Computer Ethics", SIGCSE Bulletin , vol. 20, no. 3, pp. 45-48, 1988.
[11] Tucker, Allen B. (ed.) "Computing Curricula 1991, Report of the ACM/IEEE-CS Joint Curriculum Task Force, New York: IEEE Computer Society Press, 1991.
[12] Tucker, Allen B. and Barnes, Bruce H. "Flexible Design: A Summary of Computing Curricula 1991", Computer , vol. 24, no. 11, pp. 56-65, 1991.