CS 289: Bio-inspired Multi-agent Systems a.k.a Collective Intelligence

(previously offered as cs266)

A colony of cells cooperates to form a multicellular organism under the direction of a common genetic program. A swarm of bees cooperates to construct a hive. Emerging technologies are making possible a new class of large-scale, embedded, distributed systems --- vast sensors networks for habitat monitoring and smart buildings, programmable materials with embedded sensors and actuators, swarms of tiny robots and shape-changing robots with thousands of modules, even genetically-engineered cells as new computational substrates.

These examples raise a fundamental question for the organization and design of computing systems: How do we engineer robust and intelligent behavior from the cooperation of vast numbers of unreliable parts? Biology hints that there may be significant power to be achieved from building things out of cheap, imprecise parts with limited life.

This class surveys the state of the art in bio-inspired approaches to designing robust collective behavior in different domains. A unifying theme amongst these domains is the desire to construct robust systems consisting of many individually unreliable nodes, that produce complex but predictable global behavior. We will focus on algorithms, methods for analysis, and programming paradigms for engineering self-organizing systems as well as models of collective intelligence in nature. Topics vary year to year, and usually include: (1) swarm intelligence and applications including swarm robotics, (2) cellular automata/biology with applications to amorphous computing and self-assembling robots, (3) evolution-inspired approaches and systems, (4) global-to-local theory. The class is primarily based on discussions of research papers, along with a student-chosen final pair projects. Some years we also offer a multi-robot project as an alternative to the student-chosen final project.

For more information, follow the link for the syllabus and schedule for the most recent course offering.


This class is geared toward CS graduate students at all levels and juniors/seniors undergraduates. Students should have a familiarity/experience with computer systems (e.g. software systems, networking) and algorithms/analysis (e.g. CS 124), through classes and/or internship experiences; experience reading research papers is useful. Experience or background in biology not required. Every year we also always have a few non-CS students (bio, architecture, physics), so just come talk to me if that is the case.

Limited Enrollment:

In recent year we have limited enrollment to 18-25, due to the work involved in supervising final projects. However we do try to achieve a diversity of student backgrounds in the class. Please make sure to come to the first class and fill out a class form.

Links to Previous Terms and Related Sites:

Extended Reading List

Spring 2012 (Multi-Robot Project) | Spring 2010 (Multi-Robot Project)
Fall 2008 | Fall 2007 | Fall 2006 | Fall 2004