The integration of software engineering into a computer science curriculum
This paper discusses ideas and techniques for integrating software engineering concepts and practices into an undergraduate computer science curriculum. Discussion is focused on concepts that are related to the following aspects of software engineering: the need for software engineering, characteristics of good software, the software development process, estimation and planning, working in teams, specification of requirements, software design, and software quality issues.
The computer science curriculum at Embry-Riddle Aeronautical University is used as an illustrative example of how these concepts can be integrated into an undergraduate computer science program, from introductory computer science courses to a senior project course. The paper starts with a description of the current state of software engineering education. After a discussion of Emory-Riddle's computer science curriculum structure, the authors propose a set of software engineering concepts that should be included in an undergraduate program. Finally, guidelines for incorporating these concepts into a computer science curriculum are presented, and there is a discussion of the benefits of the integrated approach: the relevance of the curriculum to software engineering practices, the experience that students gain through collaboration and teamwork, and the satisfaction that employers show with graduates of such a program.
KeywordsSoftware Engineering Team Project Software Requirement Specification Software Engineering Practice Senior Project
Unable to display preview. Download preview PDF.
- 1.ACM Curriculum Committee on Computer Science, Curriculum 78, “Recommendations for the Undergraduate Program in Computer Science”, Communications of the ACM, 22(3), March 1979, pp. 147–166.Google Scholar
- 2.Criteria for Accrediting Programs in Computer Science in the United States, Computing Sciences Accreditation Board, January 1987.Google Scholar
- 3.P.J. Denning: “Educating a New Engineer”, Communications of the ACM, 35(12), December 1992, pp. 82–97.Google Scholar
- 4.G. Ford: 1990 SEI Report on Undergraduate Software Engineering Education, Technical Report CMU/SEI-90-TR-3, Software Engineering Institute, March 1990.Google Scholar
- 5.G. Ford, N. Gibbs: “A Master of Software Engineering Curriculum”, IEEE Computer, September 22, 1989.Google Scholar
- 6.P. Freeman, A. Wasserman: “Software Engineering Concepts and Computer Science Curricula”, IEEE Computer, 10 June 1977, 85–91.Google Scholar
- 7.P. Freeman, A. Wasserman: “A proposed Curriculum for Software Engineering Education”, Proceedings of the 3rd International Conference on Software Engineering, IEEE Computer Society, May 1978, 56–62.Google Scholar
- 8.T. Hilburn, I. Hirmanpour: “A Top-Down Toolbox Approach to Teaching the Ada Programming Language”, Proceedings of the Ada Software Engineering Education and Training Symposium, September 1991.Google Scholar
- 9.A. Kornecki: “Global Positioning System as a Real-Time Software Engineering Project in an Undergraduate CS Curriculum”, Proceedings of Software Engineering Research Forum, SERP92, Melbourne, FL, October 1992.Google Scholar
- 10.A. Kornecki: “Object-Oriented Methodology in Simulation Education”, Proceedings of the IASTED International Conference on Modeling and Simulation, Lugano, Switzerland, June 1994Google Scholar
- 11.P. Naur, B. Randall (editors): Software Engineering: A Report on a Conference sponsored by the NATO Science Committee, NATO, 1969.Google Scholar
- 12.A. M. Tucker: “Computing Curricula 1991”. Communications of the ACM, 34(6), June 1991, pp. 68–84.Google Scholar