I am an undergraduate majoring in Computer Science and Mathematics. For my undergraduate research, I would like to work on something that lies in the overlap between systems research and theoretical computer science. Something that could satisfy this requirement is cache-oblivious algorithms because it is about the analysis and design of algorithms without completely ignoring how actual systems work (memory hierarchy and so on). But there could be many other fields in systems research which involve a lot of theory, or vice versa.

One of my seniors suggested distributed systems - he seemed to indicate that things like Paxos and Raft have a lot of underlying theory, but I haven't taken the time to dig into it.

You could also suggest some field in systems research which can gain a lot from some rigorous mathematical foundations and analysis. A senior will be going to graduate school at Johns Hopkins University to do a PhD on the math behind deep learning. So maybe I could try something like "the math behind --some systems research field--".

Another example I found is "Distributed Computing using Combinatorial Topology".

TL;DR: What fields/topics of research lie in the intersection of theoretical computer science and systems research?

  • $\begingroup$ Look up the stuff that Danny Raz is doing. There are a lot more in his community, on the border between networking and algorithms. $\endgroup$ Jul 10, 2018 at 7:20
  • 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$ Jul 10, 2018 at 11:06
  • $\begingroup$ @DavidRicherby Yes, I will be asking my professors when I get back to college next semester. I'll try to edit the question to make it more general. $\endgroup$ Jul 10, 2018 at 14:57

1 Answer 1


This might not be what you mean by "theoretical computer science", but there's some rich interaction between Programming Languages Theory and Distributed systems going on with Session Types. They basically are a way to use type systems to specify communication protocols, increasing safety in distributed languages.

For example, The Imperial Mobility Group has many publications in session types, this should at least get you started on finding research in the area.


Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

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