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.