Q. I'm a Berkeley undergrad, and I'm interested in a research project with you. What should I do?
A. Cool! Thanks for your interest. Please send me an email with the following information:
I tend to receive many more applications for research opportunities than I have positions, so unfortunately I'm only able to work with a small fraction of people who apply. I apologize in advance if I'm not able to find a position for you in my group.
Things you should know about my interests: I work in the area of computer security. If it doesn't involve security (or privacy, or something related), it's probably out of scope for me. However, many of the projects involve work with a significant component from other areas of computer science as well, such as operating systems, programming languages, distributed systems, web services, software engineering, computer vision, or machine learning. If you have a strong background in those areas, we may be able to find something that combines those interests with a security application.
My students and I are especially active in the areas of software security and electronic voting security, so there's a good chance that any research opportunities I have will fall into one of these two areas. You can see my publications for a better sense of what we've been working on lately. For instance, we're doing some neat stuff on designing tools and languages to help programmers avoid security holes; on improving web security; on designing better methods for electronic voting; and all sorts of other fun problems.
Qualifications: I don't have any hard-and-fast qualifications, but I can give you some guidelines about what I look for. While I won't rule anything out if you don't meet these guidelines, you should be aware of what I tend to look for. Most of the research in my group involves a significant amount of programming or systems-building, so I look for students with strong skills in that area. I also usually look for students who are doing very well in classes. If your technical GPA is below an A- or so, you're probably better off focusing on classes rather than spending time on research. I look for students to take CS61ABC before getting involved in research with me, and if you have taken CS161 as well, that's definitely a plus. But, if you have some outside experience that you feel renders this coursework irrelevant, please let me know in your email.
Expections: I expect you to be self-motivated and able to work independently, on your own initiative. I do connect each undergraduate researcher with a grad student who can act as a mentor and provide guidance, but you'll still need to be able to work on your own pretty well. I ask undergraduate researchers to commit to spending a minimum of 8 hours per week on the research project. You should treat this as a commitment similar to taking on another class. (Don't treat research as a second priority, to be dropped if classes start getting super-busy or when other deadlines are looming; that is unlikely to lead to a satisfactory research encounter.)
Timing: I usually recruit for undergraduate positions right at the beginning of each semester.
Q. I'm an undergraduate at some other institution, and I'm interested in a research project with you. Do you have any openings for undergraduate research positions for non-Berkeley students?
A. No. Unfortunately, I only have openings for registered Berkeley students. Sorry.