The Software Factory: An Undergraduate Computer Science Curriculum

Industry often complains that current academic curricula fail to address the practical issues of real software development. This paper outlines a proposal for an innovative core curriculum for a Bachelor of Science in Computer Science. The proposed core curriculum contains elements of traditional computer science programs combined with software engineering via a team-oriented, hands-on approach to large-scale software development. In addition to traditional lecture/ project/exam courses, students are required to take an eight-semester sequence of ‘Software Factory’ courses. Software Factory courses put the students' newly acquired skills to work in a real software organization staffed and managed by all students in the program. Students from all courses in the Software Factory sequence meet simultaneously to fulfill their roles in the software organization. We expect that the students will be better prepared software engineering practitioners after completing a curriculum that combines traditional courses with practical Software Factory experience.

[1]  James J. Horning,et al.  Software Hut: A Computer Program Engineering Project in the Form of a Game , 1977, IEEE Transactions on Software Engineering.

[2]  Gerald M. Powell,et al.  Achieving Synergy in Collaborative Education , 1997, IEEE Softw..

[3]  Michael J. Lutz,et al.  Guidelines for Software Engineering Education Version 1.0 , 1999 .

[4]  ShawMary Prospects for an Engineering Discipline of Software , 1990 .

[5]  Neal S. Coulter,et al.  Current Practices, Culture Changes, and Software Engineering Education , 1994, Comput. Sci. Educ..

[6]  Theodoros N. Arvanitis,et al.  Preparing Students for Software Engineering , 1996 .

[7]  Colin Potts,et al.  Learning by Doing: Goals & Experience of Two Software Engineering Project Courses , 1994, CSEE.

[8]  Ron W. Newsham,et al.  Introducing Software Engineers to the Real World , 1997, IEEE Softw..

[9]  T. B. Hilburn,et al.  Software engineering education: a modest proposal , 1997 .

[10]  Ray J. Dawson,et al.  Introducing new software engineering graduates to the 'real world' at the GPT company , 1992, Softw. Eng. J..

[11]  James E. Tomayko,et al.  Agents of Change: Educating Software Engineering Leaders , 1997, Computer.

[12]  Norman E. Gibbs,et al.  The SEI education program: the challenge of teaching future software engineers , 1989, CACM.

[13]  Donald J. Bagert A model for the software engineering component of a computer science curriculum , 1998, Inf. Softw. Technol..

[14]  Anthony I. Wasserman Toward a Discipline of Software Engineering , 1996, IEEE Softw..

[15]  I WassermanAnthony Toward a Discipline of Software Engineering , 1996 .