Virtually every topic that you’ve seen in your undergraduate courses has an associated and active area of research. Some areas of research are theoretical and involve developing and analyzing new algorithms and techniques, while some are more applied and involve experiments, design, implementation, and testing. In any case, research is an enterprise of intellectual exploration that seeks to advance our field.

CS research at universities and industry

In computer science, a substantial amount of research activity is happening in industry. In fact, far more new CS PhDs go to work in industry than in academia. Of course, a lot of important research is happening at universities and, as an undergraduate, you’re much more likely to find a research experience at a college or a university than in industry. Most companies that engage in research hire undergraduate interns to do development and hire graduate interns to do research.

What’s the difference between research and a software internship?

Both are great, but if you’re curious about what it’s like to work at the frontier of our field, we encourage you to try a research experience.

Research problems are typically open-ended and the final outcome of the research is not known at the outset. This can make research challenging, exciting, and admittedly frustrating at times.

While software engineering roles generally focus on immediate and actionable problems, research often has a much longer time horizon. Moreover, while some current research will be found in production software in a few years, other research is not primarily driven by commercial interests. For example, some CS research addresses problems that benefits other fields such as biology, medicine, environmental sciences, among others.

What are the benefits of doing research as an undergraduate?

First, you’ll get a glimpse of the forefront of some part of CS. Even if you do not currently plan to have a career in research, doing research as an undergraduate can be a great complement to your undergraduate education.

Second, a research experience can help you decide if you want to go to graduate school and pursue a career in research.

Graduate school admissions committees value undergraduate research experiences, particularly for applicants wishing to pursue a PhD. While some people get accepted to PhD programs with no undergraduate research experience, having a research experience is a significant advantage when applying to graduate school.

Finally, a research experience can offer you the opportunity to use your CS knowledge to make a positive impact on society. Many research projects address societal needs and problems.

Whats Next?

Continue reading how you might go about choosing a research area.

Additional Resources
  • The Theoretical Computer Science Community maintains “Vision Nuggets” that identify broad research themes within theoretical computer science having potential for a major impact in the future.
  • Check out these videos on various computer science research projects from the CCC’s Computing Research in Action Project.