My understanding of research is that it's a way to find solutions/answers to questions/problems in a certain subfield of a bigger discipline, which in my case would be Computer Science (honestly, it'd be more like Computer Engineering).

I think I know, however, that if these problems and solutions are too simple or banal, the whole process of doing research is irrelevant because

  1. surely somebody else has already worked in that, and
  2. there's no sense in working in something that won't contribute a significant amount of knowledge to the discipline.

This means that in order to get worthy (or at least relevant) problems to research, you must be at the cutting edge of the field so that you have an idea of what's not yet known and you can start working on it. Am I right?

If I am, that sounds kind of complicated. I have heard that I should read lots of papers in an area of my interest and work from there, but I'm sincerely not sure about how to start doing even this. I have access to the ACM Digital Library, for example, but I don't know what to search for, what to read, or in what order to do so.

I am alone in this, for my university is weak in research and no professors seem to be interested in it. Do you have any tips, or any specific set of steps that you followed to get into research?

  • 4
    You said "no professors seem to be interested in it". Have you approached them and asked your question yet? The standard answer to this question is to ask your advisor to help.
    – Nobody
    May 28, 2014 at 4:14
  • I once asked one, and he said that I should already have a problem for which I wanted to research a solution. I haven't tried with others though.
    – JS Rolón
    May 28, 2014 at 4:30
  • 1
    my university is weak in research — Move.
    – JeffE
    May 28, 2014 at 15:09

4 Answers 4


It'll certainly be easier if you can find a professor willing to supervise you, so I strongly suggest that you keep trying on that front. But even if you can't, all is not lost! Here are the steps I recommend. Note that this may not be the only way to get started, but it's a way that works for many of my students:

Step 1: Start by identifying an area of interest

A good way to start is to identify a topic in class that interests you. Approach the professor for that class and ask him/her to suggest some related papers for further reading.

Step 2: Get a better view of this area

Thoroughly reading those papers may take a while, since this is new to you. Don't be discouraged by this! After you have a reasonable understanding of the papers suggested by your professor, start to branch out: look up the papers cited by/citing those papers to get a broader view.

Step 3: Reproduce some existing results

Somewhere in all this reading, you'll come across something that really interests you: a proof, a design of a system, a software implementation of an idea. See if you can reproduce this result (by going through the steps of the proof, writing your own software, running a simulation, etc.) Again, this may be more difficult than you expect; don't get discouraged.

Step 4: Do something new

Now that you've reproduced someone else's results, can you extend them? Is there a small variation on the system design that could improve the results, an interesting application in another domain, a stronger result you can prove? Get to work.

Step 5: Communicate your results

Congrats, you are now almost a bona fide researcher! Go show the professor who recommended the papers what you've been working on. A big part of doing research is communicating the results, once you have something to show. (And to get into a good grad school, you'll need to impress some potential letter writers.)

You should also consider writing a draft of a paper and soliciting feedback on it.


If the main goal here is to learn to "think like a researcher", then you only need to work on a problem that's new to you; it doesn't necessarily need to be at the cutting edge of the field. Indeed, there may be pedagogical value in having the ability to compare your solutions with those found by more experienced researchers. Of course, your results may not be publishable, unless you find something interesting - but at your career stage, that doesn't necessarily matter. You still will have something to discuss/write about in applications for grad school, and you will have learnt a lot!


How to get to know what to research, possible approaches:

  1. Find supervisors that do things you consider interesting, ask them what could you do for them.

  2. Find research groups that do things you consider interesting, ask them what could you do for them.

  3. Find a research project that is interesting, work in that project.

  4. Find a problem that is interesting and not solved yet, work on that problem. Generally problems are either new or hard, sometimes both. Sometimes (often? always?) solving an easy problem in a proper way turns to be very hard. Proving it's the right way to solve that problem is very often much harder.

  5. Find what is interesting for you, then find problems in that area and find funding to solve those problems.

  6. Find a business model, if you are not certain about what is interesting for you, then consider what is interesting for everybody else, so interesting that they would be willing to pay for it.

  7. Find what are you good at and it may become your passion.

  8. Find current trends in research, hot topics, there should be problems, money and success there.

In the end it doesn't really matter what you find first, you have to find everything else (a supervisor, funding, etc.) however the order in which you find some things will probably determine what you find later, i.e. the information you get and the decisions you make direct your search throughout the process.

How to find things? Searching. It's hard and tedious, there are no shortcuts, AFAIK.

The only advice I can give is: "Don't make the problem, find it", problems should not be "created" or "invented" to do research, some situation may not have been perceived as a problem before, that's fine, you check that situation and change it, hopefully for the better. Research in computer engineering consists in using (sometimes making) computers and/or software to go from point A to point B (as a very naïve description), hopefully point B will be better under some perspective than point A, but what I would like to stress is that point A should be real. It may not be common (that's fine) but it has to be real.

Point A is in the world, not in any book, there may be books (papers, etc.) that describe point A, that reach to point A (from a previous one), etc. but point A is in the real world and this should be never forgotten. The most theoretical part of computer science doesn't care whether A is real or not, that work is important by setting the foundations of things that will be used in the future, when we reach to a point A where that is relevant (if that ever happens), it's a very hard and uncertain type of research, that I don't personally like (for me) and that you don't seem to pursue. Therefore, for us, point A is in the real world, out there.

This is important because that means that we can access point A from the world and from the way it relates with other things. There may be people interested on that, research groups, research projects, papers describing it, business to do in solving it, skills that are relevant for it, trends that involve it, etc. Those are paths to find it, to get to it.

So this is your first research topic, you are in ignorance, point A, you want to find a research topic, point B (that will later become A). How do you do it? I offer you this "relational approach", try to find a better one. After all, we are only talking about information, searching, maybe it's too soon to make a search engine for this, but maybe someone can make a search methodology that will probably involve using conventional search engines.


I would start by seeing if your university has an undergraduate research program or runs summer projects with researchers in any formalised way. If they do this is an excellent way to get started in research as you have an experienced researcher to help guide you and it helps create useful contacts if you are interested in a future in academia.

If your university has no formal program you can email professors in a field you are interested in to see if they any projects you could do over the summer. Keep preserving if the first people you contact have nothing, they are probably busy and if they do not expect a summer student they are unlikely to have a project prepared.

It is probably helpful if you have a vague idea of what you want to research into. Not necessarily a specific project but at least a field or sub-topic. This not only helps you identify academics with similar interests but shows you are keen and helps them formulate a project for you.

If your university is very weak at research one option may be to look at doing a summer project at another university which is more research focused. This is not ideal as knowing how to contact will be harder and there may be extra costs such as accommodation, but it is a possibility.

  • 3
    Not sure about CS, but at least in mathematics in the US, there is a large network of summer research programs for undergrads called REUs. They are usually well funded and pay the expenses of the students, and a modest stipend. US students usually have priority (most programs are funded by the government). The support of your professors would be essential to get accepted. May 28, 2014 at 12:58

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .