Research Opportunities for Students

  Under Construction!

This page provides an overview of my current research and links to descriptions of related projects.  Most of them involve programming and would be suitable for a PILOT or MS thesis.  PhD research projects are, of course, of larger scope and more open ended, but could address similar issues. If you are interested in these or related topics, please get in touch.

If you have your own idea for a project in one of my areas of expertise (artificial intelligence, artificial life, complex adaptive systems, natural computation, nanocomputation, etc.), please get in touch.

Introduction: Natural Processes and Computing

Modern computing technology is based on the electronic implementation of abstract Boolean logic.  Although this technology is very effective and well understood, there are compelling reasons for investigating alternative computing technologies.  For example, the NSF program in Emerging Models and Technologies for Computation“seeks to advance the fundamental capabilities of computer and information sciences and engineering by capitalizing on advances and insights from areas such as biological systems, quantum phenomena, nanoscale science and engineering, and other novel computing concepts.”  As this quotation suggests, there are a variety of natural processes that are potentially useful for computation, including optical, quantum, spin, molecular (e.g., DNA) processes.  In some cases we can use these technologies to implement Boolean logic, and thereby leverage our expertise in digital circuit and computer design. In other cases, observation of computational processes in nature (e.g., in the brain, immune system, and social insect colonies) shows now natural processes can be exploited to implement alternative models of computation not based on Boolean logic.  In many cases new computing technologies can be exploited better by these alternative models than by traditional digital logic and computer organization.

From one perspective, the electrical processes within an ordinary computer are determined by the way the logic gates and memory devices are interconnected, and by the electrical states of those devices.  From a different perspective, however, the specific electrical processes taking place in the computer are determined by the program running on it.  For example, the actual motion of electrons within the computer is controlled by the running program (subject, of course, to the circuits and the laws of physics). This shows us that, under the appropriate circumstances, matter and energy can be moved around under programmatic control; that is, we can program the rearrangement of matter and energy. This is a useful perspective because it allows us to see new ways that computational processes can have physical effects, for example using molecular computation or biocomputation for the assembly of nanostructures or for the control of nanorobots.

In general terms my research focuses on the interaction of computation and natural processes, especially processes that have not been used for computation in the past, but that provide significant advantages over electronic logic.  This research involves a number of supporting projects, some of which are suitable for a PILOT or MS thesis and are listed below (divided into two broad categories).  Click on the project’s name for more information.

Projects in Adaptive Self-Organizing Systems

We have much to learn from computation in nature, in particular from adaptive self-organizing systems, such as the brain, colonies of microorganisms, and social insect colonies.  For example, some ant colonies solve complex optimization and control problems, such as the allocation of workers to various tasks (including foraging, waste removal, nest construction, defense, fungus cultivation), the construction of complex nests, and large scale organized movement (e.g., army ants).  The colony is adaptive in that it promotes the continuing survival of the colony, and it is self-organizing in that it is neither externally nor centrally controlled (there is no ant or small group of ants in charge).  Similarly, when food is scarce, slime mold amoebas gather together and organize themselves into a “slug,” with differentiated parts, which can detect minute differences of temperature and light, and migrate to a more hospitable location.  The biological processes involved are similar to those that take place in a developing embryo, in which cells differentiate and migrate to form the multiple tissues, organs, and other structures of a complex organism.  These are all examples of adaptive self-organization (ASO), which has applications in massively parallel distributed computer systems and networks, in distributed robotics, and in nanotechnology (for the number of components may be too large, and their size too small, to be assembled in detail from outside).  A further advantage of adaptive self-organizing systems is that they are robust in the face of error, uncertainty, failure, and damage (because they are self-organizing), and they respond well to change and unforeseen circumstances (because they are adaptive).  These are valuable characteristics for many applications.

ASO is an active research area because its principles are only imperfectly understood.  My own research focuses on ASO in the brain, which is being applied in artificial intelligence and robotics, and on ASO in the embryo and in colonies of insects and microorganisms, which can be applied to nanotechnology and distributed robotics.

  1. Programmable Microorganisms for Nanotechnology [coming soon!]
  2. Models of Biological Development [coming soon!]
  3. Directed Search for Cellular Automata Rules
  4. Distributed Robotics Problems [coming soon!]

Projects in Nanocomputation and Nanotechnology

Whereas in electronic computing, computation involves moving electrons between electronic devices, in molecular computation it involves the making and breaking of chemical bonds (generally, weak hydrogen bonds, like those involved in DNA/RNA replication).  One reason molecular computation is interesting is the potential for enormous parallelism, with degrees of parallelism on the order of Avogadro’s number (~61023). Another application of molecular computation is in the assembly of nanostructures, including computational devices (both electronic and non-electronic).  Since these structures are built from enormous numbers of nanoscale components, traditional manufacturing methods are often ineffective, inefficient, and unreliable. However, the enormous parallelism and small size of molecular computation makes it attractive as one possible means of large scale nano-assembly (some of these approaches mimicking, in fact, molecular nano-assembly in nature). Therefore, there are a number of research projects investigating molecular computation and its applications in nano-assembly.  For example, the Duke University Computer Science Department has an active program in DNA-based molecular computation, and Caltech has a large research effort in algorithmic self-assembly, also based on DNA.

My own research focuses on simulation studies of molecular computation processes that can be used in nanotechnology and other applications.  Here are some current projects in this area:

  1. Molecular Combinatory Computing [coming soon!]
  2. U-Machine Simulator
  3. Training Cellular Automata
  4. Error-Tolerant Computing [coming soon!]

Other Research

Other active research projects, with good opportunities for student participation, that do not fit under the topics above, are listed here:

  1. Computer-Enhanced Scientific Creativity

Return to MacLennan’s home page

Send mail to Bruce MacLennan /

Valid HTML 4.01!This page is
Last updated: 2008-10-10.