Welcome to the 2nd-generation
Molecular Programming Project!
Underneath the computer revolution that has changed our lives are the fundamental principles of computer science—these principles have allowed us to master electronic systems with billions of components and software with millions of lines of code to do amazingly complex tasks.
The Molecular Programming Project (MPP) began in 2008 as an NSF Expedition in Computing—a collaboration of 6 faculty developing computer science principles for programming information-bearing molecules like DNA and RNA to create artificial biomolecular programs of similar complexity. In 2013, the team grew to 11 faculty and was awarded a second Expedition with the mandate to develop molecular programming into a sophisticated, user-friendly, and widely-used technology for creating nanoscale devices and systems.
The biomolecular programs of life serve as inspiration for our work, from the low-level operating system controlling cell metabolism, to the high-level code for biological development, the process by which a single cell becomes an entire organism. Molecular programming involves the specification of structures, circuits, and behaviors both within living and non-living systems—systems in which computing and decision-making will carried out by chemical processes themselves.
Our work involves four themes. (1) The establishment of powerful architectures for programmable molecular systems—standardized molecular components and methods for combining them into larger systems. (2) The refinement of abstractions for describing molecular systems, including programming languages, compilers, and computer-aided design tools. (3) The theoretical study of algorithms excecuted by molecular systems, identifying the best ways to carry out molecular tasks and the fundamental principles governing what can and cannot be done. And (4) the application of molecular programming to real-world problems such as the fabrication of complex molecularly-defined electronic and optical materials, the integration of molecular-scale recognition and amplification circuits within analytical techniques for studying biology, and `smart' therapeutics with programmable control over drug delivery.
Our long-term vision is to establish molecular programming as a subdiscipline of computer science—one that will enable a yet-to-be imagined array of applications from chemical circuitry for interacting with biological molecules to nanoscale computing and molecular robotics.
More information is available at the MPP Wiki.