We are engaged in a long-term effort to integrate, into the undergraduate computer science curriculum, component-based software engineering principles developed through RSRG research activities.
Almost since its inception, the software industry has languished in a perpetual state of "crisis". Academic computer science departments have contributed by largely failing in their responsibility to appropriately educate and prepare software professionals. We are addressing this failure with a comprehensive and integrated one-year sequence of "software spine" courses for undergraduate computer science majors at The Ohio State University -- the foundation courses for the full curriculum. The sequence begins with the first course for computer science majors (only high-school programming or equivalent is assumed as background). Fundamental to this curriculum is the guiding philosophy that software is properly conceptualized and constructed in terms of carefully engineered reusable software components. The curriculum is heavily influenced by the need for students to appreciate and become familiar with many of the concepts and skills that are likely to become increasingly important to prospective employers, e.g., design by contract, formal specifications of software components, and strict attention to principles of software system design that seek to achieve single-point control over change.
The goal of our activities is to create the core of an instructional system capable of producing software professionals with greater awareness and understanding of the technical issues faced by the software industry, and with measurably better software design and development skills.