Is the field of theoretical computer science so complex, that it is just "too much" for a bachelor thesis? Unfortunately I haven't found any old thesises because the relevant chair of the university hasn't been occupied for years.

Because of theoretical computer science is the only topic that really interests me, I thought of writing my bachelor thesis in this field. What would be suitable topics or at least fields that can be arranged in the limited focus of a bachelor thesis? I thought of topics like parametrized complexity or formal software verfication (which is actually a bit of the target)

  • 1
    $\begingroup$ Welcome to Computer Science! Unfortunately, your question is not a good fit for the Stack Exchange format. We prefer questions that have objectively correct answers that will be useful both to the asker and others who have the same question in the future. What is or is not a suitable topic for study, projects or research is very much a matter of opinion and depends crucially on the interests and skills of the person who will be doing the work and the support that will be available to them. This is a question that you should be asking your professors. $\endgroup$ – Raphael Jul 5 '18 at 6:28
  • $\begingroup$ FWIW, I did write a TCS bachelor's thesis. Talk to your profs. $\endgroup$ – Raphael Jul 5 '18 at 6:28
  • $\begingroup$ I will say solving graph isomorphism ( in general ) in Polynomial time will be a good project. $\endgroup$ – old Jul 5 '18 at 8:45

As a bachelor student that is writing his thesis in that field I can guarantee you there are a lot of topics suitable for a bachelors degree. Personally, I am working on graphs and some specific algorithmic problems over those. I suggest you ask your professors if they have some topics for you. At my university usually professors have a list of "problems" and we can either choose between one of those or propose our own topic. Obviously because it is "just" a bachelor thesis you'll have to be specific and concentrate on some smaller problems e.g.

  • Formal verifiation of smaller programs in some specific language (like haskel)
  • Finding some polynomial algorithm to a specific problem that hasn't been researched too much. (Also, if you can't find anything new, explaining why the problem is "complex" can also be a good plan b)
  • Testing of specific cryptographic protocols under specific assumptions (allowing the attacker to have some specific information etc..)

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