I recently started my masters course. Last semester I took courses from different disciplines like networks, software engineering, architecture, etc. Recently, after taking an advanced course in algorithms and data structures I think I found a course which interests me most (including other similar topics likes programming languages, etc).

How do I find a research topic - specific data structure or algorithm I can work on for my thesis, and possibly follow up into a PhD? I am currently looking at some of the research done at my university in the same disciplines.


I think some people confused the Question due to ambiguous framing from my side. I want to find a topic for my masters thesis, I am still somewhat far awaw from starting a PhD(If I do)


Let me offer a slight variant of @Shir's answer. For your first problem, it really doesn't matter what you work on. Just pick a random problem out of the air and start working on it. Do not worry about "finding a thesis". Do not worry about "finding an advisor". However, you may find more problems floating in the air near active researchers—both faculty and students—than, say, in your apartment or at the library. And you may find that people are more willing to help you solve your problem (and polish the solution for publication) if it's a problem they care about. Talk to everyone. Listen to everyone. Read everything. Then pick your own problem.

Once you've solved your first problem, start over. Pick a different problem, and talk to different people. Meanwhile, write up your first solution, and give talks about it, if only to a faculty member or another student or your cat. Listen to their feedback. (Meow.) Practice, practice, practice. (Don't forget to ace your classes and your qualifying exams. If necessary, find a faculty member to sign your paperwork.)

Once you have experience solving individual problems, then you can start developing a larger research program (aka a thesis direction). [This is probably about the point where you finish your MS thesis and start as a PhD student.] With a two-point sample of problem space, you have a better view of your own talents and interests. With a multiple-point sample of potential-collaborator-space, you have some idea of what kind of researchers (in particular, what kind of advisor) you work well with. Having feedback from multiple audiences, you'll have some clue about what problems other people and/or cats care about, and what kind of intuition you're best at conveying. All that information will help you make more informed decisions about what to work on in the future.

But for your first problem, it really doesn't matter. Just pick something you're interested in and start working.

  • 1
    $\begingroup$ I think your answer combined with @MCH s answer works together nicely! $\endgroup$ – epsilon8 Jan 28 '12 at 20:35

My two cents: find an advisor first, the subject will present itself later. Set meetings with several potential avisors that work in fields you're interested in. Ask them to suggest problems and to present to you the type of topics they are exploring. In my experience, they would gladly talk about their research with a potential PhD student. After a few of those you should probably know the answer.

And one last thing - talk to past students of your potential advisor, it really helped me make a decision.

Edit: I want to stress that in my opinion, researching by yourself and reading papers on your own as means of deciding what to do in your Master's thesis will result in confusion and frustration more often than not. Guiding one towards current trends and avoiding going in over one's head is exactly the role of one's advisor. Paraphrasing an old lawyer saying: anyone who is advising themselves have a fool for an advisor.

  • 3
    $\begingroup$ I think you're being a bit generous. Anyone who takes advice from only one person also has a fool for an advisor. Hence "talk to everyone; listen to everyone; read everything". But in the end, you must to work on a problem that you care about, or you'll get nowhere. $\endgroup$ – Jeffε Jan 28 '12 at 21:55
  • $\begingroup$ I think talking to everyone etc. is simply not feasible. There's just too much information, and a student with little experience will have no means of filtering it. As I said, though, this is just my opinion. $\endgroup$ – Shir Jan 29 '12 at 5:55

It's somewhat like shopping for shoes, before you go shopping and try your luck it's hard to tell what you will end up with.

That said, there are some nice blog posts about this. For example I found this useful back in grad school: Finding Problems to Work On.


If you have good scientists in your field of interest in your university it is better to collaborate with them. However if you are the unlucky guy, you may find nice people, in your topics of interest, around the world and communicate with them w.h.p. they will help you.

It is also good to look at Q&A sites like here or open problems in books you are reading during your master study, you can work on them and maybe solve some of them or at least you can try your chance.


My very own personal opinion (wow, what a disclaimer) : finding a thesis advisor, being in a PhD program, all this kind of stuff is not science, this is administrative stuff.

So, my advice is to read (a lot of) papers, preprints, blogs and to listen to (a lot of) talks. Then to find some that present work interesting to you, Then to discuss (real life, mail, phone, skype) with the authors of those works and then finally try, if possible, to extend what has been done/find new solutions to the problems you saw.

Afterwards, you may need to (or want to) work with other people, for guidance or for collaboration (or because this is more fun than working alone). At that point you can start looking for the advisor and the rest.


Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.