NOTE: The first page of text has been automatically extracted and included below in lieu of an abstract Main Menu Session 1526 Event-Driven Computing Projects for Software Engineering Education Marjorie Skubic and James Laffey Computer Engineering and Computer Science Department / School of Information Science and Learning Technologies University of Missouri-Columbia skubicm@missouri.edu / laffeyj@missouri.edu Abstract There is a growing need in the software industry for the development of systems with a dynamic, event-driven behavior, such as interactive human-computer interfaces, client-server architectures, and embedded systems. Developing successful, event-driven software requires a paradigm shift from traditional program development, and new curriculum approaches are needed to help computer science and engineering students develop competencies. In this paper, we describe an effort to address this problem through hands-on projects that provide experience in developing dynamic, event-driven systems and let the students physically see the results of their efforts. We describe our project testbed and exercises, based on the smart home theme, and report our experiences with using the testbed in an actual course setting. Although the proof of concept is being evaluated in a software engineering course, the project theme and testbed could be used in other computer-related courses, such as object-oriented programming, embedded systems, or even a first level computer science course. Introduction There is a growing need in the software industry for the development of systems with a dynamic, event-driven behavior, e.g., interactive human-computer interfaces, client-server architectures, and embedded systems1. Developing successful, event-driven software requires a paradigm shift from the traditional, sequential program development. Unlike sequential programs, event-driven software must work correctly in an environment with concurrent processes, uncertainties, and dynamic, external entities; indeed, the program may execute differently each time because of these outside effects. New curriculum approaches are needed to develop programming competencies for event- driven software 2. Students do not typically get significant experience in studying or developing event-driven software development. As a result, they have difficulties learning behavioral models for dynamic software systems and understanding the concepts necessary to design, program, and test such systems. To prepare students for their future careers as software engineers, they need experience in realistic projects that develop event-driven software 3. Proceedings of the 2002 American Society for Engineering Education Annual Conference & Exposition. Copyright © 2002, American Society for Engineering Education Main Menu
Read more