Molecular programmers will help create a world where smart molecules, controlled by programmable chemical reactions, achieve the same level of precise automated control over the configuration of matter at the molecular level as an electronic computing system with millions of lines of code. We study theoretical models of computation that allow us to mathematically explore the fundamental abilities and limitations of molecular engineering. Topics include algorithmic self-assembly, chemical reaction networks and models of thermodynamics and kinetics of molecular bonds. We also collaborate with experimental wet labs to turn these theoretical ideas into reality using actual chemicals.