Common Questions About Research, Answered
What is research?
Research is the work done to contribute something new and meaningful to humanity's body of knowledge. In Computer Science, it often involves identifying and solving new, important problems, or inventing new solutions to existing important problems. Notice the emphasis on novelty and importance - these are key attributes distinguishing research from other (potentially valuable) contributions you could make to society.
Why do research?There are many reasons to conduct research:
Note that making money in the short term is not a good reason to do research. Most students are not paid to do research, although a handful are. As described above, the research experience is more of an apprenticeship, growing your knowledge and skills and opening doors. That said, the skills you learn doing research are valuable, so the experience may be lucrative in the long run.
When is the right time to get involved in research?
The answer is different from research group to research group, but almost always earlier than most students expect. Personally, I recommend looking for opportunities as soon as you complete CSCI 241. Note that faculty tend to look for prerequisite skills in potential research students, not expertise in the research area itself. For example, to join my machine learning research group, you need not have any prior machine learning knowledge or experience, but having a strong math background and good programming skills are pluses. The general expectation is that you will "learn on the job" (hence the apprenticeship analogy). An important corollary of this expectation is that there is such a thing as waiting too long to begin research. Most faculty will not take on a student who has fewer than two quarters left, and many will not take a student who has fewer than three quarters left. The learning curve takes a while to climb, and faculty want to set students up for success in their projects.
Sounds great. How do I get involved?
First, I recommend that you check out the department webpage to see who specializes in what. Then, I would reach out to faculty whose interests align with yours to express your interest in research and ask if there are any opportunities. In the best case scenario, you hear about a lot of exciting opportunities and get to pick the one that works best for you. However, while there is more research activity happening in the department now than ever, capacity is still constrained: mentoring students in research is time-consuming and time is a faculty member's most valuable commodity. (One piece of advice: new Assistant Professors are good people to talk to about research, since they are less likely to have a full research group in place yet and will be highly motivated to establish their research group.) In any case, I recommend (and most if not all of our faculty agree) that you stick to one project and one research group; it is better to do an excellent job on one project than a mediocre one on multiple.
|Hutchinson Group Specific:||
My Approach to Research
Rather than primarily investing my time into projects, I prioritize investing time into students, helping them obtain the skills/knowledge they need to succeed. With the right skills, you can solve problems in weeks that would have taken you months or years. This leads not only to successful research projects, but to students who go on to succeed in their future endeavors, as well. Getting to this point requires a lot of time and effort, both on my part and on the students'; you should think of research in my group as something you put a lot into, and get a lot out of. I also believe in creating an environment with lots of peer-to-peer learning; put another way, if there are N student in my group I want to see O(N2) learning happening, not O(N). To faciliate this, I maintain a large research group, provide resources to make it easy to communicate, and provide opportunities to exchange ideas.
What do students in the Hutchinson Machine Learning Research Group do?
Logistically, for machine learning, a research project typically involves several stages:
This sequence is illustrated in this flow chart.
What skills would best prepare me for the Hutchinson Machine Learning Research Group?
General programming skills are always helpful, and Python and bash scripting skills are particularly useful. I recommend that you get comfortable working in a linux environment, including some level of comfort with a command-line editor like vim or emacs. Math skills are also highly recommended. There is really no such thing as having too much math, but if you are trying to prioritize, Linear Algebra (Math 204 and 304) and Multivariable Caclulus I (Math 224) are the most relevant.
How do I get involved in the Hutchinson Machine Learning Research Group?
Please email me to express your interest, and I will add you to a mailing list of interested students. Once per quarter I send an email to interested students with a survey, which asks about your background, interests, and graduation timeline. I then use that to try to match students to projects. Given high demand, I cannot invite all interested and qualified students to join my group. If you do not get an invite the first time, I encourage you to keep applying for as long as you are interested.