Evolving An Undergraduate Software Engineering Course
Mark J. Sebern · 2020
Abstract NOTE: The first page of text has been automatically extracted and included below in lieu of an abstract Session 1532 Evolving an Undergraduate Software Engineering Course Mark J. Sebern Milwaukee School of Engineering Abstract Many undergraduate software engineering courses combine team projects with discussion of development cycle concepts. It can be difficult to connect these elements in a coherent way, especially when the lecture is a broad survey and the project is sharply focused on meeting the needs of a client. This paper describes the evolution of a senior software engineering project course that incorporates iterative development of a classroom example and an object-oriented process based on commercial software tools. Although the course time frame (an academic quarter) is too short for significant iteration on the team project, students can participate in an accelerated version of the process by making a small increment to the in-class example. This approach retains the benefits of a realistic, client-centered team development project, while providing experience in a contemporary software development process based on commercial CASE tools. Introduction For a number of years, the computer engineering curriculum at the Milwaukee School of Engineering (MSOE) has incorporated a senior course in software engineering (CS-489). Traditionally, this course has combined project work done in large teams for “real” clients (typically MSOE departments) with lecture material covering the software engineering process. The Good News The CS-489 software engineering course has been well received by students, and has produced a number of valuable software products. Some recent projects include: • A program that identifies unoccupied workstations in computer labs across the MSOE campus. • A three-dimensional visualization program for time- and frequency-domain data from an artificial heart. • A Web-based system for exploring possible student class schedules. In some cases, the quality of the software product has been remarkable, especially since we operate on the quarter system and have only ten weeks for each project. In working on the projects, students also learn much about team building and cooperative effort, and often apply these lessons in the two-quarter “capstone” senior design sequence (CS-400 and CS-401). Even when a team fails, valuable lessons can be learned. One student, reflecting on such an experience during a job interview, was told by the recruiter that his company “normally expects a new hire to take two years to learn that.”