getting involved in computer science research
What even is CS research?
As one might expect, CS research is generally not about growing bacteria or running chemical tests (though it can be). It can look different for everyone! Some people focus on the applications of CS in various subfields (autonomous vehicles, robotics, music, medicine, sociology, etc.); others focus on the algorithmic side. One may develop software to address or investigate a problem that hasn’t been addressed before, look for optimizations to existing solutions, build new hardware, develop new ways of testing code or scheduling processes, and more. No one topic is inherently more “computer science-y” than another, and all are important.
How to get involved in CS research?
Getting into research can kind of be likened to looking for internships – it requires much tenacity. However, with research you will be reaching out to professors whose research you are genuinely interested in and express your interest in learning/contributing. For cs specifically, some ways to get into or learn about research include:
- Look into the websites of professors whose research you are interested in, and reach out to them via office hours and/or email. Even if they don’t have opportunities, ask about their research – you can learn a lot in the process! If you are more comfortable with doing so, you can also reach out to grad students in their group!
- Look up news related to things that interest you, or check out websites like https://cs.paperswithcode.com/ – there is sometimes pretty cool tech mentioned.
- Even if you aren’t formally part of research, consider starting or contributing to a passion project!
- Check out research reading groups in your department, if they exist!
- Keep an eye out for conferences funding opportunities - they are a great opportunity to network and learn!
- Never be afraid to ask questions! Things can be really confusing sometimes, but there are so many people happy to support you.
What’s the purpose of CS research?
Some think that with the advent of Chat-GPT and other machine-learning software, core CS is set in stone. But while the field of CS has certainly exploded and been well explored, there are still open questions to answer! (Ex. How to automate testing? How to improve accessibility? What can be modeled and how? What are the limits of certain software/hardware?) Researchers (in general) are among those who are innovators; there is always a way to improve something! In some ways, research can sometimes feel like being involved in a small business (see the Leading a project heading). That being said, the purpose of CS research does not have bearing on your purpose for exploring or doing research. That is completely up to you. As noted by Professor Kris Jordan of UNC Chapel Hill, in life in general, always look for ways to make things better, but don’t tie your identity to your product.
Looking for a research topic, and reading through literature
Half the battle in looking for a topic and reading through literature seems to be finding the right terms to express what you are looking for. And that doesn’t even encompass getting up to speed on topics of interest. Here, some tools for searching in general can be applied:
- Conduct a search with initial terms. Scan through papers that look relevant. Note down terms and concepts that are relevant to what you are looking for. Search again. You may go down a few rabbit holes along the way, and that’s okay, it’s part of the process! If you don’t have too much time to come upon a topic, really try to simply skim.
- Ask questions fearlessly. Google search, look at forums, talk to others. There is no such thing as a dumb question, because they are all relevant to your learning.
- Balance searching on your own with turning to others. A lot of information can be found online, but people are invaluable in pointing you in the right direction, connecting you with others who may know information, and supporting you in the other parts that make us all human.
- Ask experts. They generally know what are open areas of research and what are not, and they can point you in the right direction!
Research during the school year and/or over the summer
Here’s a (non-exhaustive) list of opportunities to look for and/or keep an eye out for:
- Working in a lab (often starting as a volunteer, but some may have funding to hire undergrads) SURFs (Summer Undergraduate Research Fellowships): These give you funding to explore a topic of interest. Talk to faculty in your area of interest when looking for mentors!
- REUs (Research Experiences for Undergraduates): These give you a stipend to conduct research in a lab (often at another university) over the summer and are good for determining if you’d like to research full time.
- Keep in mind that research also is very important in industry. Many official research positions are geared towards grad students, but keep an eye out for any industry position that interests you!
What’s the deal with papers?
In research, papers are a way for people to share ideas, innovations, and open areas to take next steps. They are intended to be like message boards where people learn from one another, and to tangibly communicate intangible parts of your work! That being said, papers are also like currency – they are often key in helping one get grants, are factors in evaluation, etc. For both reasons, full-time research in academia (and to a lesser extent, in industry) often involves paper-writing. These are good exercises in communication, but don’t let publications make you forget your purpose for researching.
How to read papers?
Papers aren’t always intended to be read from beginning to end. Often, after reading the abstract and deciding you want to read the paper, you may jump around (ex. from the intro, to the conclusions, to the details of the research). It’s all up to what works best for you and what you are looking for. Skim and read deeper, avoid drawing conclusions without context, and always examine things in papers (and things in general) critically; just because many people agree on something, doesn’t mean it’s necessarily true.
Leading a project
Sometimes, leading and/or working on a project, especially as one takes ownership of parts of it, can feel a bit like running a small business (probably because running a small business is a BIG project in itself). Some things often involved in the process are:
- Researching the market
- Finding a niche
- Research/developing things (ideally with a user population heavily involved) to fill said niche
- Finding collaborators
- Networking and leveraging the power of collective knowledge and enthusiasm - find investors
- Publicizing your product/discovery
- Iterating on your product/research, remembering that there are always ways to improve and to help people better, and looking for those ways without forgetting the true purpose of your product
- Coordinating lots of meetings and communication
- Fielding a never-ending to do list and learn to prioritize
- Being (hopefully) encouraging, receptive, and dynamic
- Remembering that times can get tough, but it’s all part of the journey. Try to enjoy the ride!
Other resources
There are many places to get connected with cs-related opportunities inside and outside of research! Some are linked below. (Note: Linking does not necessarily signify affiliation or endorsement.)