Tony: Today I’m talking with two Computer Science (CS) students to see how Undergraduate Research (UR) can work
at an R1 institution. Yiyun is an undergrad and James is a grad student at University of Maryland (UMD). Let me
start by asking how you two know each other?
James: Yiyun and I met through Dr. Hicks, who said Yiyun was interested in working together. We now both work on the
same research project, where Dr. Hicks and I provide guidance and direction when needed.
Yiyun: When I was taking intro to programming languages (PL) in my sophomore year, I talked to the instructor about my
interest in PL, and showed him some personal projects I did. He asked me to email him a summary, which he forwarded to
several CS faculty. Dr. Hicks replied and told me there was a project that I could work on. That’s how I started doing
research at UMD.
Tony: Can you describe your research group?
James: Sure. The primary research focus at (Programming Languages Research at the University of Maryland) is in the
area of PL. We study type systems, formal methods, and program analysis, and apply PL techniques to other areas like
cryptography, quantum computing, security, and incremental computation. Dr. Hicks and Dr. Van Horn lead the group; there
are currently two postdocs, five PhD students, a couple MS students, and a few undergrads.
Tony: What does a typical week look like in the life of an undergraduate researcher?
Yiyun: When I started research with Dr. Hicks, James and I had to submit a form which included goals and expected
deliverables. As I was researching part-time, I didn’t have much time to allocate, and most of it was spent on
engineering proofs. James and I had weekly meetings to check my progress and brainstorm any issues that I couldn’t
address independently. During the summer I started researching full-time and was able to spend more time on the project;
the major difference was that I spent more time reading papers related to the topic. I also got a desk in the lab, which
made it easier for me to communicate with people at PLUM.
Tony: Are you doing research for academic credit?
Yiyun: Yes, there is a UR course and students can choose to take one to three credits, depending on the amount of time
they are willing to spend per week. I received three credits, which means I had to spend at least ten hours each week on
my research. It is also possible to get paid, but I’m not sure if you can get paid and receive credits at the same time.
Tony: James, did you also start doing research as an undergrad at UMD?
James: Yes, I’d say my experience was somewhat similar. I started working with Dr. Hicks as an undergrad after taking
his PL course and went on to complete the combined BS/MS program. I’m now back at UMD working on my PhD. To me, students
who start researching as undergrads have many more advantages when applying for jobs and grad school. UR helps students
decide what is the right path for them and UMD has a mix of students who pursue either grad school or industry.
Tony: Yiyun, which way are you leaning?
Yiyun: I’m definitely leaning toward academia. I’m more interested in the abstract aspects of computer science.
Attending grad school will allow me to explore a broader range of topics without the pressure of having to deliver
products ready to use in production. I took a one-credit course where we were introduced to what it would look like to
work in industry or academia where Dr. Dave Levin shared his experience of working as a researcher in industry. Based on
what he told us, in industry, they care more about how a research project can be beneficial to the company; interesting
projects can be dropped if they don’t bring benefits quickly enough. While there are deadlines in academia, I find them
to be much less restrictive.
Tony: How have your research opportunities changed your views of being a computer scientist?
Yiyun: It hasn’t really changed my view that much, but it does make me feel more confident. Before I started doing
research, I always believed that research in CS was all about innovative ideas and only the extremely lucky or extremely
smart students could ever come up with those ideas. Doing research made me realize that research is actually a mix of
innovation and engineering. While it is possible to get stuck, we can always find some other part of the project to work
on; as we get a better picture of the problem, it becomes easier to find a solution.
Tony: What should faculty know about undergrads doing CS research?
James: In my experience, fostering UR can be a mutually beneficial relationship. Undergrads learn in depth about a new
topic and are exposed to research, while faculty members gain a colleague to collaborate with; it also creates
opportunities for grad students to gain mentoring experience.
Yiyun: I believe UR can be seen as an extension of the standard undergrad courses. In class, we only learn how to apply
the tools to the problems that are designed to be solvable, while in research, we are no longer implementing something
that is known to have a solution. The usefulness of certain tools and techniques only becomes evident when trying to
solve real world problems. For instance, I was only able to see the benefits of a satisfiable modulo theory-based
theorem prover after working on proofs with thousands of lines of code. Even the most challenging exercises from the
textbook wouldn’t require that much code. I feel it would have been much more difficult to understand the motivation
behind proof automation without actual research experience.
Tony
Kapolka has taught the past twenty-three years at Wilkes University, a school offering an undergraduate degree in Computer Science. He’s hosted the Eastern Colleges Science Conference twice, and is a CUR Councilor.