Event Based Programming

UWP Logo Stuart Hansen
UW - Parkside
hansen at uwp dot edu
Timothy V Fossum
SUNY Potsdam
fossumtv at potsdam dot edu
potsdam logo



This website is dedicated to all aspects of event based programming.  Events are incredibly important in modern computing. They occur in graphical user interfaces (GUIs), operating systems, discrete event simulation, database management systems and many other computing-related fields. They are also integral to the operation of user interfaces in modern electronic devices such as cellular phones and television sets. Because events are so ubiquitous, it is reasonable to expect that you, as a student of computing, should understand them in detail.  Unfortunately, you are more likely to learn first about event based programming when you are asked to develop GUIs - and then you would typically be exposed only to what you need to make the GUI operate. As you will see, events have many more applications than implementing GUIs.

The authors of this site are computer science professors.  For the last ten years they have been teaching a course on event based programming. Much of the work on this site comes from compiling their course materials into a text and supporting materials.  There are dozens of computer science books that have 'event' or 'event based' in their titles. Almost all of these are about some particular language or system that uses events. This goal is different. We  to introduce you to event based programming - and, more generally, event based systems - as a computer science paradigm that focuses on the fundamental ideas relating to understanding, designing, implementing, and testing loosely coupled systems.

What you will learn from this site is applicable to any event based language or library. Since this is site is about programming, you will encounter many sample programs. We have chosen Java as our principal implementation language. Java is available almost universally for hardware platforms and operating systems, and Java has native support for events. However, we are not trying to make you an expert in Java. Instead, you will gain an understanding of how to develop event based software, with Java serving as the implementation language. In the end, you will be able to develop reasonably sized event based applications in Java, and you will be able to take the principles and ideas you learn and apply them to new and different event based languages as needed.

Text Downloads


Ancillary Materials

Preface
Chapter 1 - Introduction to Event Based Programming
Chapter 2 - Event Based Programming Fundamentals
Chapter 3 - Software Engineering Event Based Systems
Chapter 4 - Event Infrastructure
Chapter 5 - Threads and Events
Chapter 6 - Distributed Event Programming
Chapter 7 - Events and the Web

Other Materials

         (Coming Soon)  Annotated Bibliography

(Coming Soon) Other websites related to Event Based Programming

Support to organize this website, course and text was provided the National Science Foundation, DUE CCLI Grant, Award #0089406.