Research opportunities
Undergraduate research in computer science
Computer science labs take undergraduates who can pick up an existing codebase and get results out of it without much hand-holding. You don't need a publication or a perfect GPA. You need something you built that a professor can open in a minute, and a clear reason you chose their group.
- Typical first task
- Running experiments on the lab's existing code
- Best proof of interest
- A GitHub repo or a paper you reproduced
- Day-to-day mentor
- Usually a PhD student, not the professor
- Theory labs expect
- Strong grades in proof-based courses
What computer science research looks like as an undergrad
Your first weeks rarely involve new ideas. Expect to get the group's code running, reproduce a result from a recent paper, and read the papers the project builds on. Doing that setup quickly earns you more interesting work. After that, the work depends on the area:
- Machine learning: training baselines, running ablations, cleaning and labelling data
- Systems: benchmarking, profiling, adding features to a research prototype
- Theory: reading papers closely, working through proofs, checking small cases with a script
- Human-computer interaction: building prototypes and running user studies
- Security: reproducing known attacks, fuzzing, measuring real systems
What CS professors look for
Proof that you can code on your own beats a list of languages. The best evidence is something a reader can open quickly: a GitHub repo with a clear README, a substantial class project such as a compiler, or a paper you reproduced. A reproduction is especially strong, because it is exactly the task you would start with in the lab.
Expect to work day to day with a PhD student or postdoc. A professor may forward a promising email to one, so write something a grad student could act on: link the code and say what you can already run. Theory groups are the exception: they weigh proof-based coursework over code.
Skills worth mentioning
Match the list to the lab. A systems professor does not need to hear about your React app.
- Python, plus PyTorch and NumPy for machine learning
- C, C++ or Rust for systems and security
- Git, the Linux command line, and running jobs on a remote server
- Proof writing and LaTeX for theory
Where to find computer science labs
Start with the CS department, then widen the search. Machine learning groups also sit in electrical and computer engineering and in statistics, HCI in information schools, and natural language processing sometimes in linguistics. Prof Insider searches professors across departments, which helps when the right lab isn't filed under CS. Faculty pages go stale, so check recent papers on Google Scholar, DBLP or arXiv.
Example email to a professor
The names and papers are made up. Swap in your own details and a real paper from the professor's page.
Subject: Second-year CS student: reproduced your label-error detection results
Dear Professor Halvorsen,
Your group's 2025 paper on finding mislabelled images in medical imaging datasets made me wonder how well the method holds up outside its benchmarks, so I tried it. I'm a second-year computer science student at [your university].
Using your public code, I reproduced the main chest X-ray result, then ran the method on a small skin-lesion dataset from a course project. My write-up and code are here: [GitHub link]. I'm comfortable with Python, PyTorch and working on a remote GPU server.
I have about 10 hours a week free this term and next. Is there a small task, such as running baselines, where I could help you or one of your graduate students? My resume is attached.
Best, Tomás Rivera BSc Computer Science, Year 2
Common questions
How do I get into a CS research lab as an undergrad?
Email professors whose recent work you can explain in a sentence, and link something you built or reproduced. A strong grade in one of their upper-year courses helps too.
Do I need machine learning experience to do CS research?
No. Machine learning gets a lot of student interest, but systems, theory, HCI, security and programming languages groups all take undergraduates, and you may face less competition there. Pick the area where your coursework is strongest.
Can I do theory research as an undergrad?
Yes, but the bar is mathematical. Theory professors usually want strong grades in discrete math, algorithms and proof-based courses, and a first project often means reading papers closely with a PhD student.
Is undergraduate CS research paid?
Sometimes. Paid roles come from a professor's grant, work-study or funded summer programs. During the term, first positions tend to be unpaid or for course credit.