CS Grad Programs: Getting Involved in Research - acmutd/help-guide GitHub Wiki

Getting Involved in Research

If you are wanting to pursue a research-based MS or PhD, then the most important aspect of your experiences will be your research. There are a couple ways you can do this.

Pre-Freshman

If you are yet to start your studies at UTD, I would heavily consider applying for the Clark Summer Research Program. This program introduces pre-freshman to research in their respective STEM disciplines. I partook in this program and having a summer research experience before even entering UTD allowed me to get into a lab that I was excited about joining during my first semester Freshman year. The Clark program is also fully paid and provides meals / housing / stipend for all its participants. All in all, a fantastic program for UTD students.

Emailing Professors

Now let's say you have already started at UTD: don't worry, you aren't behind! It is never too late to start research. The first way of starting to work with a professor (or joining a professor's lab) is to just email them. There are a couple things to consider when selecting a professor.

First, do NOT try to email senior lecturers or "professors of instruction" and work with them. Only tenure track professors (titles: assistant, associate, or just "professor") conduct research full time at universities. What I did to select which professors I would be interested in working with was to go through every professor in the CS dept. faculty directory. I then created a spreadsheet with the professors in my subfield(s) of interest. After having a broad idea of what people worked on, I then started looking at some recent publications by each of these professors, to get a flavor of the kind of work they were doing. Obviously, I understood around 5% of the content of each paper. However, you can still get a broad idea of what people are working on with this method, even if you think you don't know anything yet. For example, if I know I want to perform research with neural networks, then I should look for the machine learning professors who have used neural networks or "deep learning" in any of their recent publications.

Continuing like this, you may find anywhere from two to ten professors whom you are interested in working with. The next step is to contact them. If they do not have specific instructions on their personal site, you can simply go ahead and shoot them an email. I dug up an email from my first semester freshman year as an example. The professor ended up responding and accepting me, and I have worked with him ever since!

Hi Prof. [X],

I am a freshman greatly interested in participating in machine learning research in 
the coming years. This past summer I participated in the Clark summer research program, 
and worked with Dr. Ryan P. McMahan to develop a novel method for physical object 
selection and collision avoidance in virtual reality. Although I really enjoyed the 
experience, I personally find machine learning more fascinating and exciting.

I am currently working through Dr. Andrew Ng's lecture series on machine learning online, 
learning octave/MATLAB as well as python and its machine learning/data visualization 
packages. I also have knowledge of C++, Java, and some C# (which I used for VR development 
in Unity).

Other machine learning labs on campus mostly deal with machine learning applied to different 
fields, such as bioinformatics or natural language processing. Although these labs are 
important and interesting, my dream is to approach artificial intelligence from a more 
fundamental cs/math perspective, and for this reason I plan on pursuing a double degree 
in these subjects.

I would like to work in your lab because you work with the more abstract mathematical 
foundations regarding AI and machine learning. Being able to learn these in a research 
setting would be a big step towards achieving my academic goals. Thank you in advance!

Regards,
Sid Devic

There are a couple things to highlight here.

  • Keep the email relatively short. Professors are in general very busy and do not want to read your 1000 word essay on why you think machine learning will change the world.
  • Start with a brief summary of your background and why you are interested in the field. A demonstrated history or propensity for the subject you want to do research in is also valuable. This could come in the form of previous courses you have taken or demonstrated interest through online courses / independent projects.
  • Finish with how the professors interests and goals relate to yours. In the above example, I state that this particular professor I emailed has an interest in provable / mathematically grounded methods in machine learning, which was what I was interested in pursuing: "my dream is to approach artificial intelligence from a more fundamental cs/math perspective".
  • The only change I would make to this email is to change "dream" -> "goal" (dream is a bit corny). I would also perhaps add that my goal is to pursue a PhD in this subject. This would demonstrate that I am serious about the research I am inquiring about. (It is fine if you do not add that you would like to pursue a PhD, especially if you are not sure yet! Just be sure to put it in if you are leaning towards it as an option).
  • At the time of writing this email, I had no resume/CV. If you already have a CV, go ahead and say "I have attached my CV for further information", and attach your CV.

This professor responded to me, but I believe I emailed two other machine learning professors and got no response (which is reasonable, as a freshman with no GPA or experience...). I would give a maximum of 4 weekdays before giving up on a particular professor and trying to email a new one. Be aware that you may not get your first choice! However, every experience is valuable, and you can ultimately move around labs or do two at a time once you gain some knowledge and demonstrated skills.

Notes

  1. A couple professors (especially in machine learning due to the popularity of the field), explicitly state that undergrads / grads who want to work with them should first take, and perform well in, a course that they teach. You are still welcome to take a crack at working with these professors, but they may get annoyed since it is stated on their website so they may just not respond. If you really want to work with a particular professor and they do not respond, I would try to work with either another professor whom they collaborate with, or any professor wherein you can gain relevant experience. This would allow you to maybe work with your first choice professor maybe 6-12 months down the line!

  2. For those of you interested in machine learning keep your eyes open for more "applied" positions. For example, I joined a lab which applied neural nets and some reinforcement learning stuff to problems in computer networking. This gave me a super relevant skillset which helped me to get a research internship down the line. It is also easier to transition into pure machine learning if you already have some sort of background.

  3. You may not need to be limited to just CS professors! ECS as a whole has a bunch of groups which do interesting CS-related things, so be sure to check out ECS faculty lists as well. Furthermore, if you want to go into, say, computational biology, it would behoove you to also try to join computational biology labs which probably aren't going to be listed within the CS department!

Alternative Methods to Gain Research Experience

In addition to simply emailing professors, there are other ways to get involved in research as well. The CS department offers a course CS 4v98 which you can enroll in which pairs you with a professor and has you do a project through the course of the semester. Furthermore, you are always welcome to continue research with that professor after the semester is over (assuming you performed reasonably and had something to show afterwards).

Lastly, you may also consider ACM Research, which is run by our very own officers. ACM Research is a semester long program which puts you into a group of 4-5 students and assigns an officer who has research experience to lead your group. Some of these groups have in the past been advised by tenured CS faculty, and to my knowledge ACM Research is trying to have all the projects eventually be sponsored by faculty. You can check out some of the past projects here. Each should have either an uploaded talk or poster that you can check out! Apps for research open at the beginning of each semester, and should be available here.