The event driven paradigm is ubiquitous in modern software. Many texts introduce events when discussing graphical user interfaces, but the event paradigm extends well beyond that domain. Events also play important roles in operating systems, component based systems, reactive systems, middleware, web services and other fields. Computer science educators have an obligation to see that our students thoroughly understand the event paradigm and have some grounding in tools to develop event driven systems. This paper describes an upper division, computer science elective course in event driven programming. The course gives a comprehensive treatment of event driven systems. It appropriately captures the importance of the event paradigm and serves to integrate concepts from several different computing fields, including Programming Languages, Operating Systems, and Software Engineering. It also introduces students to advanced tools and packages designed for developing event driven systems. T...
Stuart A. Hansen, Timothy V. Fossum