Research positions

For anyone interested in graduate school in computer science or other science/tech fields, I recommend reading this advice on how to prepare from Mor Harchol-Balter and Matt Might.

For postdoc applicants: I currently have no funding for postdocs.

For Ph.D. applicants: A word of warning: professors get a lot of emails asking about research positions. Most of these are mass-emailed form letters and are ignored. Even if yours is not, it's a good idea to understand how to make it stand out so it doesn't look like a mass-emailed form letter.

I don't expect a prospective student to have read all of my papers or solved open problems from them. I do, however, expect a prospective student to know

I'm much more likely to respond to emails that are clear on at least these two points. Of course, if you have an idea for a problem to work on, or an idea for how to attack an open problem from one of my papers, or any paper in my field, do feel free to talk about that!

But otherwise, it's a good idea to talk about a creative project you've worked on, preferably outside of class (or that started in class but continued far beyond the expectations for a good grade), something that you are proud of, and how you think it demonstrates that you might have what it takes to do research in theoretical computer science. Ideally, this will be a previous research project in theoretical computer science, but not necessarily.

I recommend reading the Andy Drucker's advice for some more ideas.

For UC-Davis undergraduate students interested in research: The advice to Ph.D. applicants above applies. Additionally, since you're already at UC-Davis, note that I occasionally teach a course on my research, ECS 289A: Theory of Molecular Computation. Taking this class is a good way to learn about foundational research in my field and can be the start of a research project. For instance, a student once got so interested in Optional Problem 5 in this homework, solving the homework problem, then improving the solution, generalizing it, wondering how far it could be extended, until he eventually turned it into this paper, which was published in PODC, the leading conference on distributed computing. It all starts with following your curiosity as far as it takes you!

I also frequently teach ECS 220, graduate Theory of Computation. It is less directly related to my research, but it's still a good course to take to see what sort of problems I find interesting (and to demonstrate to me your problem-solving skills).

For undergraduates, timing is an important issue: most research projects take a while, and a single quarter or summer is not enough time to complete it. Rather, it's enough time to start it, and you might spend the whole next year actually getting the results and writing a paper. So it's best to look into this before your final year.