ECS 289: Theory of Molecular Computing
Winter 2016

Course announcement (PDF)


Dave Doty
Office: 3041 Kemper

Course objective

To study the fundamental abilities and limits to the engineering of automated (i.e., computational) molecular systems, in a mathematically rigorous way.


ECS 120 or equivalent (familiarity with Chapters 1,3,4,7 of Introduction to the Theory of Computation by Sipser).

Prior experience with probability theory is useful; in particular, Chapters 1-4,7,8 of Probability in Computing: Randomized Algorithms and Probabilistic Analysis, by Mitzenmacher and Upfal.


The Piazza page for the course can be used to ask questions about the course and homework.


lecture notes (note that these are not comprehensive since I often take material straight from a paper)



Project ideas


Tuesday and Thursday, 3:40-5:00pm, Olson 227

Algorithmic tile self-assembly

  1. Tues, Jan 5, 2016
    Introduction to abstract Tile Assembly Model (aTAM)
    aTAM video introduction
  2. Thurs, Jan 7, 2016
    ISU TAS simulator
    tile complexity of assembling squares
    paper: The Program-Size Complexity of Self-Assembled Squares
  3. Tues, Jan 12, 2016
    O(log n) tile types for assembling an n x n square
    formal definition of the aTAM
  4. Thurs, Jan 14, 2016
    Brief introduction to Kolmogorov complexity
    Ω(log n / log log n) tile types required to assemble an n x n square
  5. Tues, Jan 19, 2016
    O(log n / log log n) tile types suffice to assemble an n x n square
    paper: Running Time and Program Size for Self-assembled Squares
  6. Thurs, Jan 21, 2016
    assembling scaled-up version of any finite shape from optimal number of tile types
    paper: Complexity of Self-Assembled Shapes
  7. Tues, Jan 26, 2016
    simulation of Turing machine with a tile assembly system
  8. Thurs, Jan 28, 2016
  9. Tues, Feb 2, 2016

Chemical reaction networks

  1. Thurs, Feb 4, 2016
    Introduction to chemical reaction networks (CRNs). Examples of stable function computation.
  2. Tues, Feb 9, 2016
    Formal definition of stable function computation. Examples of stable predicate computation.
    paper (functions): Deterministic Function Computation with Chemical Reaction Networks
    paper (predicates): Computation in Networks of Passively Mobile Finite-State Sensors
  3. Thurs, Feb 11, 2016
    Formal definition of stable predicate computation. Definition of semilinear sets and functions, claim that only they can be stably computed.
    paper: Stably Computable Predicates are Semilinear
  4. Tues, Feb 16, 2016
    Formal definition discrete chemical kinetic model (Gillespie model).
    paper: Exact stochastic simulation of coupled chemical reactions
  5. Thurs, Feb 18, 2016
    Derivation of expected completion times for some simple CRNs.
  6. Tues, Feb 23, 2016
    Register machines.
    Simulation of register machines by CRNs with a large probability of error.
  7. Thurs, Feb 25, 2016
    Turing-universality: simulation of register machines by CRNs with a small probability of error.
    paper: Computation with Finite Stochastic Chemical Reaction Networks
    paper: Fast Computation by Population Protocols With a Leader

DNA strand displacement

  1. Tues, Mar 1, 2016
    Introduction to DNA strand displacement.
    Visual DSD (simulation tool)
    papers (first is experimental, remainder are theoretical):
  2. Thurs, Mar 3, 2016
    DNA strand displacement experiments.
    experimental papers:

Experimental algorithmic self-assembly with DNA tiles

  1. Tues, Mar 1, 2016
    Introduction to DNA origami. Introduction to single-stranded tiles, copying, proofreading.
  2. Thurs, Mar 3, 2016
    Plan for next experiment. Layered circuit model. Universal tiles to implement any 6-row circuit.