Any process can be framed as an algorithm; its power and its limits can then be analysed with the techniques of theoretical computer science. This “algorithmic lens” can be used to view both artificial and natural processes. When viewing natural processes of biological evolution or ecology, we get algorithmic biology.

My research combines theoretical computer science and evolutionary biology: I use the tools and techniques of computer science to ask and answer questions in evolutionary biology. My research goals are to better understand evolution using computational complexity, combinatorial optimization, and computational learning theory; and to link this new understanding to empirical measurements of evolutionary dynamics in cancer and other biological systems.