The CODES Laboratory involves faculty and graduate students from the Division of Systems Engineering and the Center for Information and Systems Engineering (CISE). Members of CODES conduct research on modeling, design, analysis, performance evaluation, control, and optimization of a variety of discrete event and hybrid systems – Communication and Sensor Networks, Manufacturing and Supply Chain, Transportation Networks, and a variety of Multi-Agent Systems. Detailed descriptions of research projects in the CODES Lab, interactive demos, simulations, and movies may be found at the CODES home page

“Though this be madness, yet there is method in’t”, William Shakespeare…Hamlet

The rapid evolution of computer technology has brought about the proliferation of new dynamic systems, mostly “man-made” and highly complex. Examples abound: computer networks, sensor networks and cyber-physical systems, automated manufacturing systems, traffic control systems, integrated command-control-information systems, etc. Their complexity can be overwhelming. One can only hope that there truly is some method to the technological madness around us…


Historically, scientists and engineers have concentrated on studying and harnessing natural phenomena which are well modeled by the laws of gravity, classical and nonclassical mechanics, electromagnetics, physical chemistry, etc. In so doing, we typically deal with quantities such as the displacement, velocity, and acceleration of particles and rigid bodies, or the pressure, temperature, and flow rates of fluids and gases. These are continuous variables in the sense that they can take on any real value as time itself continuously evolves. Based on this fact, a vast body of mathematical tools and techniques has been developed to model, analyze, and control the systems around us. It is fair to say that the study of ordinary and partial differential equations currently provides the main infrastructure for system analysis and control.


In the day-to-day life of our “man-made” and increasingly computer-dependent world, we notice:

  • First, that many of the quantities we deal with are discrete, typically involving counting integers (how many parts in an inventory, how many planes in a runway, how many packets in a buffer).
  • Second, that what drives many of the processes we use and depend on are instantaneous events such as the pushing of a button, hitting a keyboard key, or a traffic light turning green.

In fact, much of the technology we have invented and rely on (especially where digital computers are involved) is event-driven: communication networks, manufacturing systems, or the execution of a computer program are common examples. Not only must these systems act as “event coordinators”, but they are also expected to swiftly react to unpredictable events, rapidly adapt to changing conditions, and guarantee their users satisfactory – if not optimal – performance.

In short, all activity in these systems is due to asynchronous occurrences of discrete events, some controlled (like hitting a keyboard key) and some not (like a spontaneous equipment failure). This feature lends itself to the term Discrete Event System (DES). When systems combine both time-driven and event-driven behavior, we then deal with Hybrid Systems.

The time-driven paradigm for the modeling and analysis of dynamic systems is founded on the centuries-old theoretical framework provided by differential (or difference) equations. In this paradigm, time is an independent variable and, as it evolves, so does the state of the system. Conceptually, there is an underlying “clock” and with every “clock tick” a state update is performed, including the case where no change in the state occurs. Methodologies for sampling, estimation, communication, control, and optimization are also founded on the same time-driven principle. The digital technological advances of the 1970s and beyond have facilitated the implementation of this paradigm with digital clocks embedded in hardware and used to drive the collection of data or the actuation of devices employed to control various processes.

In a world increasingly networked, wireless, and involving large-scale distributed systems, the universal value of this point of view has understandably come to question. The event-driven paradigm offers an alternative, complementary look at control, communication, and optimization. The key idea is that a clock should not be assumed to dictate actions simply because a time step is taken; rather, an action should be triggered by an “event” specified as a well-defined condition on the system state or as a random state transition. Naturally, defining the proper “events” requires more sophisticated techniques compared to simply reacting to time steps.


The main challenges we face in designing and controlling discrete event and hybrid systems come from:

  • Physical and operational complexity (combinatorial explosion in many cases)
  • Stochastic complexity: unpredictability, uncertainty
  • High-performance technological requirements

CODES Lab activities cover a wide spectrum, from basic research to the development of software tools. These activities include:

  • Design and real-time control of network systems (sensor networks, transportation systems, cooperative robotic teams)
  • Event-driven control and optimization
  • Decision support systems with rapid-learning features
  • Intelligent simulation tools
  • Distributed optimization algorithms for multi-agent systems and networks
  • Control and optimization of energy-aware systems (wireless sensor networks, Electric Vehicles)
  • Developing a on open cloud platform for Smart Cities
  • Control and optimization of Connected Autonomous Vehicles
  • Transitioning from selfish (user-centric) to social (system-centric) optimal resource management

BU Robotics LabFor more information, visit Research Projects, Journal Publications, and various interactive demos and video clips of CODES Lab experiments involving wireless sensor networks, multi-agent robotic systems, and Smart City projects at the CODES Lab home page.

CODES Lab members are also part of the BU Robotics Lab, a new facility with state of the art equipment for interdisciplinary research.


Graduate students who join the CODES Laboratory have strong analytical skills and a background that includes systems and/or control theory or operations research.

All students admitted to the PhD program and joining the CODES Laboratory are awarded full financial support in the form of a Fellowship.

If you are interested in applying for admission to our graduate program and joining the CODES Lab, Center for Information and Systems Engineering (CISE), or the Division of Systems Engineering, please visit Graduate Admission Information.