I am always interesting in working with motivated students on challenging research problems. Please read this post before reaching out to me. I first list some general advice applicable to all students, and then list advice for specific classes of students.
For all students
When contacting me, please include a CV listing your educational qualifications, prior research experience (if any), links to any code you have written, and a list of software you are familiar with; see here for a list of software we use in our research.
Including just a CV in the email is not enough; I tend to ignore generic emails from students asking to work with me. Go through my research projects and publications, and include a description of how your interests and background align with my research. You can also try building and running the open-source tools developed by group that are available on GitHub.
For undergraduate students at UC Davis
Consider taking ECS 140A: Programming Languages with me. Sophomore year is the ideal time to start an undergraduate research project; often that is too early for some students to take ECS 140A due to the prerequisites for the course. The following upper-division courses are also closely related to the research I do:
- ECS 120: Theory of Computation
- ECS 122A: Algorithm Design and Analysis
- ECS 170: Introduction to Artificial Intelligence
- ECS 171: Machine Learning
When contacting me, include your transcript and/or a list of the above courses that you have completed.
Once we agree to work together, you need to sign up for 3 credits of ECS 199: Special Study for Advanced Undergraduates; this usually translates to approximately 10 hours per week. More information about ECS 199 can be found here.
For MS students at UC Davis
For prospective Ph.D. students applying to UC Davis
Please contact me once you have completed your application to UC Davis.
Unless explicitly advertised on my home page, I do not have internship opportunities for high-school students or undergraduate students from other schools.