In this post, I will try to elucidate some of the reasons for pursuing research as an undergraduate student even if you do not intend to pursue a Ph.D. Most of advice applies to all undergraduate research in computer science; though some might be specific to the type of research I do.

Undergraduate research enables students to work on the latest research in computer science. Such research activities complement the basics learnt in the classroom. Research enables you to get practical experience with the latest software tools. Apart from tools, we follow basic software-engineering practices used in the industry related to testing, documentation, code review, reproducibility, and deployment of software.

A common misconception is that research involves just thinking really hard about a brilliant new problem and hand waving on a whiteboard to come up with a solution, and that only the best of the best can ever make progress in research. This misconception deters undergraduates from pursuing research, and disappoints those who do pursue research and realize that this is not the case. The more typical workflow is as follows:

  1. I give a problem and part/most of the solution to the student.
  2. The student executes along this direction, which might involve coding a prototype, running some experiments, or proving a theorem. Think of this as working on a difficult programming assignment or proof in a course, except in research I do not know actually the right answer.
  3. Now one of two things can occur: the initial solution works, in which we have to double-check that it is working for the right reason. Or it does not work, in which case we refine our problem or solution based on what we have learned. Now you go back to step 1.

This workflow is closer to what students are familiar with in coursework, and is more incremental. You learn from your failure and build upon your successes. Along the way you have to learn to read and present research papers, and work with a research group. All this is not to indicate that research is easy; just that it is differently challenging.

If this post has convinced you to pursue research, please do not hesitate to contact me (after reading this post).