DEV Community

loading...

Finding a master thesis topic - I need help!

_c16n_ profile image Christin Westermann ・1 min read

Hey everyone,

I'm getting straight to the point here, I need your help. I have to write a master thesis to finally complete my distance study program in computer science. But, I am having the hardest time to find a topic.

So here is where I am at currently: I have written down what interests me the most in computer science and programming. What I am really passionate about is software architecture. I like to think about ways to structure code and microservices or how to handle a serverless architecture. The problem I'm having here is, that I cannot come up with anything scientific in that field that I could write about. The thesis can also not be written in a company context (a bit long and hard to explain why, but it just has to be independent). I don't want to go into too much detail, right now, on what topics I have already thought about, because I'd like to get some suggestions from you.

Thank you all in advance, I know this is a great community here and I hope I can get some input from you people <3.

Discussion (22)

pic
Editor guide
Collapse
ben profile image
Ben Halpern

One topic that comes to mind that I find interesting is software "disposability". Like, is it best to write code knowing that it will be short lived or is it best to write code to last? When is the value of code realized, is it the near term or the long term? How much of the code we write is ultimately made us of in any meaningful capacity?

These might be several different topics, but that general idea is interesting. XKCD has covered topics like this in a way:

And lots of folks have specific advice on these topics, steeped in experience, but experience and research do not always line up.

Anyway, my 2 cents. Good luck with it!

Collapse
_c16n_ profile image
Christin Westermann Author

Thank you so much for your reply. That's great input!

Collapse
lancecontreras profile image
Lance Contreras

When I'm working on my master's thesis 8 years ago. I also had a hard time to choose a topic. Here's where I got it wrong. I started to think of all the technologies I wanted to work on, thinking of the programs I wanted to write for my thesis. A thesis is a study, it's not a hackathon or bring your best program to school task. So I suggest you focus on the problem rather than the solution. Although coding is an important skill, but how you present your documentation will give you more benefit when it comes to your defense. The harder the problem you solve, the better the results will be. You have to focus on proving that the problem you are trying to solve is actually a problem. Then comes the easy part, you can now wear your hacker's hat and code your solution.

Collapse
_c16n_ profile image
Christin Westermann Author

Thank you so much, that's great advice!
Though, I guess my biggest problem is, to find a problem that I want to solve. I do know some, but I always have the feeling, that they have already been solved and that I am actually not generating any new value :-/. That's the hard part for me, as I am not writing the thesis in a company context, where each problem would be unique and has to be solved in a way that suits the company environment.

Collapse
lancecontreras profile image
Lance Contreras

Every study/research ends with things for improvement. You can start researching on previous thesis or studies. If you have an ACM account you can download research that other people did. Or you can go to a library where you can see previous studies. These materials will also help you support your problem. Reading is the key. Try to select up to 10 studies everyday that interests you and see where they left off.

Collapse
fnh profile image
Fabian

One strategy in coming up with a topic could be to survey current papers in your field of interest with regard to their "Future work" sections (which many tend to have).

You could use Google scholar to come up with some good start points, or focus on high reputation conferences (ACM OOPSLA/SPLASH might be a good one for your interest, in fact any proceedings of a conference organized by ACM or IEEE). Or you randomly browse arxiv.org ?

And one other thing, I just recently read a book "Langlebige Software-Architekturen" by Carola Liliental (I'm assuming that you are not only based in Berlin, but actually speak German), which I found to be quite interesting. It describes a method of architecural analysis and what conclusions can be drawn on how to improve a system in the long term. It was based on a lot of case studies of real world (read: proprietary, closed source, enterprisy) systems. What lacked on was a solid foundation, both theoretically as well as empirically. Although, providing that might be a bit of an overkill for the standard 30 ects / 6 month Master thesis...

Out of curiosity, is it a degree program of Fernuni Hagen or another german institution?

Collapse
_c16n_ profile image
Christin Westermann Author

Hey Fabian, thank you for this advice! I already had a look into arxiv.org and found some interesting papers!

And yes, I am german :-D I think I have seen a talk from Carola Liliental where she talks about that book. It sounds interesting to look at it without the real world studies. At the moment I am always assuming that I need some real world examples to write about, but maybe that is not the case. I'll definitely look into that and see if it's really an overkill or maybe doable :-).

I'm enrolled in a computer science master study program with the Universities in Trier, Koblenz and Fulda. But I have heard, that Fernuni Hagen is the better program :-P.

Collapse
kspeakman profile image
Kasey Speakman

I am likewise quite interested in software architecture.

One thing that I have been trying to conceptualize is taking the highly scalable and distributed event-driven microservices architecture, and miniaturizing it into a package small enough to be a starting point for single teams with low ops budgets. The goal being that the companies are already familiar with and using a lot of the patterns they will need to scale. But without the high upfront cost of starting at scale.

I have some ideas that I am currently testing the hard way, but I would love to see some research in that area.

Collapse
_c16n_ profile image
Christin Westermann Author

Hey Kasey,
that sounds really interesting! I would love to hear more about it and what research it exactly is that you think is missing.

Collapse
kspeakman profile image
Kasey Speakman

I suspect that event sourcing (with much thanks to @barryosull for his posts on that topic here) is a pattern in the small which can transition well to event-driven microservices. It trains you to think about data in a similar way. However, you can use it in various ways that are not scalable. It would be great to see that connection researched as well as choices or constraints which will make transitioning harder or easier.

There are perhaps some industry case studies (i.e. jet.com), but no academic research that I'm aware of. However, I admit to not being well-versed in research.

Collapse
dallgoot profile image
dallgoot

i would go with the subjects that interest me and then list the points involved and question how well-studied they are and then find the ones with the weaker studies and look into if there's room for additional research.
Very theorytical but i hope that helps ;)

Collapse
_c16n_ profile image
Christin Westermann Author

thank you for that advise :-) I think my biggest problem is, that I think that a lot of things that I am interested in, have already been solved in one way or another and I am not "good enough" or whatever, to come up with something that has not been there yet. I guess I have to overcome that feeling :-P

Collapse
dallgoot profile image
dallgoot

yes, the point is not to think in terms of "capable" but in "what's left"
I explain : the top subject, the most obvious, there's little chance that no studies have been made and that's ok.
The point is to bring value with your work to something not studied (or maybe with a different approach).
So even for the top subjects , there are subparts and what i meant is you probably can develop those subparts as a full subject.
In short terms, obvious questions have been answered, non-obvious are waiting for you :)
BUT ;) you have to dig deeper in the subjects you like to find them :)

Collapse
pchinery profile image
Philip

I think one important point is not to try to do too much inside the thesis. As it is scientific work, there has to be a lot of research and the state of the art and your research has to be documented. Also, your code needs to be covered by the thesis. If you have 6 months on the thesis, the programming part should be 6-8 weeks of that, so the time is limited.

Then you could see which areas the professor that will host your thesis is interested in, maybe he or she also has an idea that matches your interests. And though it should not be this way, a topic that is aligned with the research if the prof often makes it easier.

Though it may sound boring: a master thesis does not require original research, so you don't have to do something completely new. You also don't have to succeed, so trying something and failing for good reasons is fine as well.

So if you are interested in microservices and architecture, you could see if you can play with the CAP theorem, i.e. build a distributed database, where the user can configure which of the three the user wants to drop. Or you could analyze time assertions for a distributed system of your choice (guaranteed response times or x% of the requests respond within 1000ms). You could also think about a new way to measure and evaluate availability of a distributed system, a bit like Google did with their error budget.

I hope this helps a biz in your way finding a topic for your thesis!

Collapse
_c16n_ profile image
Christin Westermann Author

Hey Philip,

you're probably right. I guess I do put a little too much into the thesis and I guess that's really not necessary :). Unfortunately my professors are not really a big help in finding a topic... I have the feeling that they are more focused on the full time students rather than the distance learning, part time students...
You're topic idea sound really good, though. I'll look into those! Thank you so much!

Collapse
mckabue profile image
Kabue Charles

you can write about:

  1. The Adverse effects of AI
  2. A more efficient (in memory consumption or speed) way of parsing things like JSON/XML or binary
  3. Create a computer virus to catch other viruses
  4. Suggest and create an alternative to JavaScript
Collapse
_c16n_ profile image
Christin Westermann Author

Hey Kabue,

thank you very much for that input. I'll have a look at those! :-)

Collapse
conectionist profile image
conectionist

First of all, very good idea to make a list of topics that actually interest you.
If you don't manage to find a good subject for your MSc thesis, I recommend you keep searching.
I strongly advise against asking your coordinating professor for one. If you ask your coordinating professor for a thesis idea, the odds are they'll give you something that's mostly theoretical, not very fun to work on and that probably won't be used in practice.
This may not be 100% true worldwide (it is in my country for sure), but something that is 100% true globally is the following:


The most enjoyable work is the one that spawns from your own ideas.


If what you work on is your idea, you'll keep working on it through thick and thin.
If you work on someone else's, you will most certainly not have the same motivation.

As for you specific request, since you said you were interested in serverless architecture, here's a potential idea that might interest you:
I don't know if you've seen the movie Nerve (imdb.com/title/tt3531824/).
I'm not going to go into details about the movie itself, but the part that's relevant here is that there was a server hosting a social network game. But it wasn't a tradition server. It was hosted on the mobile phone of every registered player. That's why it couldn't be shut down. Because they would have had to shut down every mobile device.

As a programmer, when I saw the movie I thought to myself "yeah, this is pretty unrealistic". Why? 2 reasons:

  1. the server would most likely consume a lot of resources ==> battery dead in a few hours
  2. a lot of space would be needed. Since there is no centralized server, I assume all the data was replicated among all the mobile phones.

If you find this interesting, maybe you could think of a way to solve these 2 problems.

As for motivation, I can think of at least 2 problems that this idea could solve:

  1. Privacy issues (you wouldn't need to trust any third party)
  2. (sadly I forgot what the seconds one was :)) but I'm bound to remember soon. and when I do, I'll reply to this post)

Let me know if this helps.

Best of luck ;)

Collapse
kayis profile image
K

Same problem here xD
I'm studying a master in CS in the 22 semester, haha.

I'm a mobile dev and now I need to find a prof. with research that I can improve with my mobile app skills.

Collapse
_c16n_ profile image
Christin Westermann Author

haha, I feel you. I started this distance study program back in 2012. Currently I'm inbetween jobs, which makes it hard for me to pick a topic related to a real world company scenario.

Collapse
phpandcigars profile image
PHP and cigars

My advise: Talk with a professor, that researches in the field you are interested. I am sure she/he will have something for you.