For anyone interested in graduate school in computer science or other science/tech fields, I recommend reading this advice on how to prepare (which includes advice on how to catch the attention of potential advisors such as me) from Mor Harchol-Balter, Andy Drucker, and Matt Might.
For postdoc applicants: I currently have no funding for postdocs.
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
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 mathematical research. Ideally, this will be a previous research project in theoretical computer science, but not necessarily.
Finally, note that I teach a course on the Theory of Molecular Computation. Its only prerequisite is undergraduate theory of computing. One way to catch my attention is to work on some of the homework problems in that course and show me your solutions. I picked those problems to be representative of the sorts of things we think about doing theoretical research in my field, so this is not just a way for me to evaluate a student, but for the student to evaluate me: to determine if research in my field would be interesting to them. (If you don't enjoy working on those problems, it's unlikely you would enjoy doing the sort of research we do in my group.)
For MS students: I typically do not attempt to recruit MS students to come to UC-Davis, and in particular I don't tend to make funding offers. However, I often have research projects in my group for MS students already at UC-Davis and may have research grants to support such students, but I would need to spend time working with such a student (perhaps on a research project) or interacting with them (perhaps because they took a graduate course and stood out as an excellent student) before offering research funds. If you are an MS student and are interested in my research (whether you are at UC-Davis yet or not), please contact me. The advice for both Ph.D. students above and undergraduate students below applies.
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.