## Contact InformationAssistant ProfessorDepartment of Computer Science University of California, Davis Office: 2069 Academic Surge Interested in working with me to do research? Read here. |

- Molecular computing (e.g., algorithmic self-assembly, chemical reaction networks)
- Theoretical computer science (e.g., distributed computing, algorithmic information theory, computational complexity)

I am broadly interested in problems at the intersection of physics, chemistry, biology, and computation.
By this I do not mean the traditional "computation in service of natural science" (e.g., bioinformatics, computational chemistry, or molecular dynamics simulation).
Rather, certain molecular systems — such as a test tube of reacting chemicals, a genetic regulatory network, or a growing crystal — can be interpreted as *doing computation* themselves... natural science in service of computation, if you will.
I want to understand the fundamental logical and physical limits to computation by such means.

I have worked in algorithmic self-assembly, such as the tile assembly model developed by Erik Winfree, and computation using chemical reactions. DNA nanotechnology, pioneered by Ned Seeman, is a field focused on using artificial DNA strands to assemble nanoscale structures and dynamic systems such as logical circuits. Experimental work in that field informs many of the questions that interest me.

Furthermore, there are deep connections between realistic physical models and existing models of computation. For example, chemical reaction networks are related to a model of distributed computing known as population protocols (as well as an older model of concurrent processes known as Petri nets), and the tile assembly model has connections to Wang tiling and cellular automata.

- Winter 2018: ECS 289A, Theory of Molecular Computation (graduate)
- Winter 2018: ECS 120, Theory of Computation (undergraduate)
- Spring 2017: ECS 120, Theory of Computation (undergraduate)
- Winter 2017: ECS 220, Theory of Computation (graduate)
- Winter 2016: ECS 289A, Theory of Molecular Computation (graduate)
- Fall 2015: ECS 120, Theory of Computation (undergraduate)