1. On Mentoring Undergraduate Researchers

    I’ve been to lunches, workshops, and talks teaching undergrads how to get involved in research and what it’s all about. I’ve never seen such a thing given to grad students or faculty on how to mentor said undergraduate researchers. Not once. 

    Having been involved in undergraduate research since 2008, first as an undergraduate researcher and later as a mentor, I now declare myself an authority on the topic. Or at least, I declare myself to have lots of opinions. Therefore, here is a compendium of some advice I have on working with undergraduates, answering some of the most common questions I hear from graduate student peers. Most of this advice is stolen from behavior I observed in Ethan Katz-Bassett, who mentored me and Colin Scott when we were undergraduates. 

    I would love to hear other thoughts in the comments from people who have worked with undergraduate researchers, or from undergraduates involved in research!

    Finding “the good ones.”

    • Outreach to the CS student body at large. Both UW and Berkeley host poster/talk sessions where graduate students looking for undergraduate researchers can present to an audience of potential undergraduate researchers. Another way to outreach is to make an announcement to the class related to your subfield. I found all but one of my undergraduate researchers through Scott Shenker’s EE122 class.

      A somewhat common belief, which I think is a mistake, is to wait for undergraduates to approach *you*. While some might argue that these are the most ambitious students, I definitely disagree with such an assessment. The type of students who are willing to cold-email a professor/graduate student will usually fall in to one of two camps, half of which are actually not useful: (1) students who are truly ambitious and will work extremely hard (you want these), (2) students who think they’re hot stuff but won’t actually amount to much (you don’t want these). Further, if you wait for students to cold-email you, you’ll be missing out on a third, and very important category of students: students who are shy about their skills but looking for a chance to prove themselves. Students in this latter category often include students from non-traditional backgrounds or are under-represented minorities. Research can teach them to speak confidently about their work; their desire to prove themselves will push them to work diligently and reach their goals (you want these!).

    • Give them a mountain of work before you ever meet with them. Undergrads are busy — they take lots of classes, and many have outside activities — and they’re also often young and bad at time management. They may commit to work that they’re not capable of doing; don’t let them do this (to you). When I sent out my call for undergraduate researchers, I had something like 10-12 responses. I then emailed all of them a lengthy reading list of two papers and five websites, and then some basic questions to check whether they had actually synthesized what I’d sent. Not “quiz” questions, but the type of questions we might talk about at a first meeting, eg, “Given the list of middleboxes discussed in that article, which do you think would be most interesting to integrate in to X? Why?” 

      5 undergrads made it past that step, and only then did I schedule an in-person meeting with them. 4 of those 5 are still working with me a year later — bingo, I found the ones who are able to commit time.

    • Prioritize work ethic over “smarts.” I never ask prospective students for CVs, grades, course lists, etc. Okay, there are some fields, e.g. Theory, that require a serious level of mathematical maturity before anyone becomes useful. You should probably check that the students you work with are capable of that. But for the most part, most students at UW and Berkeley are competent enough to learn things on the fly, code some useful tools, and do something productive if they’re able to put in the time. You may need to tailor projects to an individual student’s skillset, but I’ve found that I haven’t had too much trouble with such tailoring — even when working with a freshman.

    Making The Whole Thing Successful

    • Be flexible regarding time. Because of classes, undergrads tend to have very bursty schedules when they’re free to do research. The week after midterm they might put in 20 hours, the week of midterms they might put in none. Make sure in the long-run that they’re making progress, but be prepared to say, “Go. Study for finals. I’ll see you in two weeks!”

    • Sign off on academic credits. If your student wants to do research “for credit”, you should almost certainly say yes. Signing off on academic credit means they’re guaranteed to have time for their project. It’s just win-win for everyone - they get academic credits, you get guaranteed time. It’s just a good idea.

    • Individualize their projects. A good undergraduate project is part of a larger whole, but is self-contained for the student. For example, the Reverse traceroute algorithm includes four measurement techniques. As an undergrad, Ethan assigned me to “own” just one of the techniques. This gave me a piece that I had pride in, that I understood the context for, that I understood in entirety when it was done. If you assign students a scattering of tiny bits of a project, it’s often hard for them to see why each piece is important, or why they should feel ownership or pride in anything to do (making it hard for them to feel motivated to work).

    • Keep undergrad projects off the critical path until you know them well. You do not want to be sitting two days before the deadline to realize that a critical component of your paper is missing because finals happened and one of your students disappeared. Good projects for undergrads are usually those “extra” pieces of interesting analysis, that might improve the paper, but won’t make or break it. With the netcalls project, we needed several examples of applications that used our architecture. Sylvia and I came up with four examples and assigned them to five students. When one of them didn’t come through, that was okay — we still had three other examples we could put in the paper.

    • Assign projects you mostly have planned out. Grad students and advanced researchers have a lot of context that undergraduates new to research just don’t have — what are the right questions to be asking, how do I go about taking an open-ended question and turning it in to an experiment/plan, etc. Good project: “Implement a system that does X using this specific architecture and these tools.” Bad project: “How would you implement a system that does X?” Good project: “Run these measurements and experiments and tell me whether system Z has property A.” Bad project: “Does system Z have property A?” 

    • Be ready to dig into the details. Undergrads are still building up their basic skills — how to use toolsets, specific programming languages, etc. They may get stuck on some of the details, and you should be ready to help them dig in to it. Don’t let them get stuck on a stupid bug for three weeks that a more experienced programmer would catch quickly — it slows them down, and consequently you down.

    • Meet with them 1:1 unless they’re explicitly working together. In an effort to better manage my own time, last Spring I tried having a group meeting with all of my students once a week. This was a waste of time for the students — they spent most of the time checking their email while I talked with the other students. This semester, I meet with two of the students together (because they’re working as partners), and then two others for a shorter period each. The overhead turned out to be not so bad when I scheduled them back to back with other meetings.

    • Don’t get an army unless you’re really prepared to spend a lot of time with students. You do not want 12 undergraduate researchers unless you are a very special person. Stick to a number you can keep track of individually, otherwise you’ll forget what they’re doing, they’ll forget what they’re doing, and not much will get done by anyone.

    Being a Good Mentor and Making it Worthwhile for the Student

    • Make them co-authors on papers that they contributed to. Even if their contribution is small. It surprises me that I even have to say this, but I’ve watched graduate students leave undergrads off author lists before, probably more as a mistake than out of malice. It hurts no-one to have another author on the paper, it helps the undergrad a lot if they apply to grad school to be an author, and it’s The Right Thing To Do. People who contribute to a research project deserve authorship.

    • Find out their post-graduation plans and help them towards it. If their goal is grad school, make sure they are prepared for their applications (due December) and that they have at least three faculty who can serve as letter writers. Help them talk about their work and consider what they might write in an SoP. If their goal is industry, give them implementation-heavy work that allows them to have projects to show off on their CV. Connect them to colleagues in industry who can hire them as interns — perhaps in a field they are “specialized in” due to research with you. (Brag time: one of my graduating students this Spring is headed to Symantec to work on network security appliances, i.e, middleboxes! He found that job himself though :-)

    • Find them opportunities to present their work and talk about it. Many researchers I know remember their first talk or poster session, how terrified they were to do it, and how much they learned from it. Talking about your work makes you really synthesize what you did and why it’s important. Hearing questions from others helps you move your work forward. And, it reminds you that the work you did is new, novel, and interesting to an outside audience — great affirmation for undergrads! Opportunities at Berkeley include the CoE undergraduate research poster session and various lab lunches. At UW, Mary Gates Hall hosts a whole undergraduate research symposium every spring — and undergrads on the honors track are required to give a thesis talk. 

      Along the way, teach them this mantra that I learned from Ethan. What did you do? Why was it hard? Why is it important?

    • Invite them to talks and reading groups. Let them know that they’ll be in over their heads for the first few months, but listening to current work in the field will help them to connect their work to the greater context, get a sense for the state of the art across the field, and see how people go from problem statement to solution for many many problems.

    • Nominate them for honors and awards. You know those announcements about the scholarship for X or award for Y that go out to the email lists? Nominate your undergraduates for these. Receiving an award for my research as an undergrad was a big turning point in my confidence as an undergrad — it also helped me out a ton as I applied to grad school. Every university has school-specific awards, and national awards like the CRA undergraduate research award or the ACM Poster Award are out there too. It looks good for you, too. My undergraduate advisors - faculty included - have the awards won by their undergraduate researchers listed on their CVs.

    • Treat them like real researchers from Day 1. They, and you, will get a lot more out of the undergraduate research experience if you respect the contributions of their work, treat them as an important part of your research team, and ask them their opinions on things as colleagues. Frankly, this behavior scared the hell out of me when Ethan did it to me (Why do I have an opinion!? I don’t know what I’m doing!) but in the end it made me feel like the work I was doing was important and drove me to really understand and and contribute to our project.

    1 year ago  /  0 notes  /  View comments