TheScrasse's blog

By TheScrasse, history, 5 months ago, In English

Hello everyone,

since I cannot participate in ICPC anymore, maybe it's time for me to start some serious research in theoretical computer science (possibly, something related to algorithms). In particular, I have just started my master's degree and I would like to write a good master's thesis.

However, I need to find a thesis supervisor. Do you have any suggestions, or experiences to share?

UPD: thanks to everyone for the suggestions! I will take some time to make an informed decision on who I should contact.

  • Vote: I like it
  • +114
  • Vote: I do not like it

»
5 months ago, hide # |
 
Vote: I like it +6 Vote: I do not like it

Computer science nor algorithms aren't research topics. Computer science is a very broad field — I don't think you'll get answers that'll be useful to you without figuring out something more specific.

What specifically are you interested in? Any limits/expectations on who and where you could have as supervisor? Narrow down your options.

  • »
    »
    5 months ago, hide # ^ |
    Rev. 3  
    Vote: I like it +7 Vote: I do not like it

    At the moment, I have almost zero experience in "serious" research in computer science (and the deadline for writing my thesis is in 2 years). So I'm open to exploring anything.

    • I got my bachelor's degree in mathematics. My thesis was about "entropic compression of paths in graphs", but the results I got are not particularly interesting (i.e., I think my work is completely useless). However, I would enjoy working on some other topic about compression / information theory.
    • Now the course I am enjoying the most is "Algorithm Engineering" (see here). In particular, I love randomized algorithms.
    • I would like to have a supervisor which can come up with ideas and/or sanity checks fast. I want to avoid the incidents happened while writing my bachelor's degree thesis. For example, if I'm using the prefix-free code [#, 0#, 1#, 00#, ...], I would like my supervisor to point out that I should try to use Elias delta instead (I didn't know Elias delta). If I'm using a persistent segment tree to answer queries, but the version of the segment tree I'm using is always the same, I would like my supervisor to detect that.
    • I'm ok with a supervisor from anywhere (but it's better if he can speak English).
    • »
      »
      »
      5 months ago, hide # ^ |
       
      Vote: I like it +5 Vote: I do not like it

      I guess you just have to read enough papers and ask the authors some questions about them, and maybe some collaboration will start from there. The more successful your supervisor is, the less likely it is that he will spend time to come up with ideas for you, or find counters to yours. You can check this out for a pretty blunt thinking process of an accomplished prof. You might like some articles from here.

      • »
        »
        »
        »
        5 months ago, hide # ^ |
        Rev. 2  
        Vote: I like it 0 Vote: I do not like it

        Thanks for the links :))

        Just to clarify, last time I have had no issues at all with "blunt" behavior (actually, my supervisor was very friendly, and we were brainstorming a lot together). I'm just slightly disappointed because of many things we missed (and in particular I missed because I didn't know), and chatgpt would now find in 30 seconds.

        • »
          »
          »
          »
          »
          5 months ago, hide # ^ |
           
          Vote: I like it 0 Vote: I do not like it

          With pleasure)) You worked with somebody that liked you and that you could constantly brainstorm with, that sounds like a jackpot for me. I wouldn't mind that much about missing some ideas, you could talk with several people at once.

          • »
            »
            »
            »
            »
            »
            5 months ago, hide # ^ |
             
            Vote: I like it 0 Vote: I do not like it

            Sure, that makes sense. For some reason I forgot I could talk with several people (unironically).

  • »
    »
    5 months ago, hide # ^ |
     
    Vote: I like it +90 Vote: I do not like it

    I forgot to mention: I hate fields such as machine learning. In general, I hate trying several black boxes with no intuition on what I'm doing, and checking the best one experimentally.

    • »
      »
      »
      5 months ago, hide # ^ |
       
      Vote: I like it 0 Vote: I do not like it

      Machine learning is not a black box if you learn it from ground up, in my experience some classes or courses do tend to skip many basics and jump into "hey use these tools" and voila you are ML engineer.

      • »
        »
        »
        »
        5 months ago, hide # ^ |
         
        Vote: I like it +49 Vote: I do not like it

        I don't think he means tooling as the black box part. A lot of ML is, sadly, about randomly trying things and mining the best result on an evaluation dataset — theory exists but doesn't really come into the process.

    • »
      »
      »
      5 months ago, hide # ^ |
       
      Vote: I like it 0 Vote: I do not like it

      For domain-specific compression, the best algorithms use some form of deep learning. e.g. GPT architecture in combination with arithmetic coding or, even better, self-compressing neural networks. So if you want to work on compression, sadly there's no escape from ML/DL, they just work.

    • »
      »
      »
      5 months ago, hide # ^ |
       
      Vote: I like it 0 Vote: I do not like it

      Machine learning is extremely broad. Yes, model architecture research is blackboxy (especially for NLP), but there are other areas like inference optimization where you need to have deep understanding of how hardware works to improve things. Take a look at flash attention paper maybe you'll find it interesting. Or GPU programming in general.

»
5 months ago, hide # |
Rev. 3  
Vote: I like it +33 Vote: I do not like it

Even some simple comments like "I did my thesis / I'm working with Prof. [name], he works on [topics], I recommend him because [reasons]" are much appreciated.

  • »
    »
    5 months ago, hide # ^ |
     
    Vote: I like it -67 Vote: I do not like it

    Well I hope you know that if you want to make a lot of money, this is probably not the way to go. so you better really like this stuff.

    • »
      »
      »
      5 months ago, hide # ^ |
       
      Vote: I like it +40 Vote: I do not like it

      I did competitive programming for 6 years without earning anything, so I'm used to that. If my parents need money, I guess I can pause and work as a quant trader for a while.

»
5 months ago, hide # |
Rev. 2  
Vote: I like it +32 Vote: I do not like it

I recommend you Sir A.K.Goharshady, he's an Associate Professor at Oxford university. His ideas seems similar to yours, and he likes randomized algorithms too. He has published quite a lot of papers as well.

Relevant links :

https://amir.goharshady.com/

https://scholar.google.com/citations?user=4o8gvAYAAAAJ&hl=en

I'm still in highschool, so have not yet done research with him. But, he taught me algorithms. Thanks to him, I have an IOI medal.

»
5 months ago, hide # |
Rev. 2  
Vote: I like it +10 Vote: I do not like it

I occasionally see competitive programmers publishing algorithmic papers like "Maximum flow and minimum-cost flow in almost-linear time". The authors discuss it in https://mirror.codeforces.com/blog/entry/100510?#comment-892347

I specifically remember rpeng saying

Sadly, unable to convince such people to go print research papers for a few years is one of my greatest failures to date

https://mirror.codeforces.com/blog/entry/92248?#comment-809957 so he might be a good person to DM for advice on academia.

»
5 months ago, hide # |
 
Vote: I like it +10 Vote: I do not like it

I'm the Italian guy who wrote to you on Linkedin a while back, I'm doing a Master's at EPFL, I think (blindly guessing) you would enjoy working with Michael Kapralov and/or Ola Svensson (their group is called "Theory group", if they don't respond (which is highly likely) contact their PhD students), maybe you could check them out but I don't know if it's easy working with them from another university.

»
5 months ago, hide # |
 
Vote: I like it +40 Vote: I do not like it

hi valerio. i am doing my phd in theoretical computer science. i have went through the same process you are going through ≈3.5 years ago. back then i was not even sure if there is ANYTHING interesting in algorithms research. now i know that there is SO MUCH different cool things. but because there are so many cool things, it is hard to recommend something specific. for example, i am rather broadly interested in the field. i guess my main goal is that the problems i want to work on should at least feel similar in spirit or be related to competitive programming. but that’s a rather fuzzy criteria. (you can check out my website if you’re interested.)

anyway, because there are so many different types of TCS, it is hard for one person to recommend something to another. everybody’s different. what i would recommend you doing is opening the list of accepted papers for the last iterations of the top conferences (STOC, FOCS, SODA, ICALP) and checking out the papers. it could be a bit overwhelming as there are so many. but a can tell you that probably for a lot of them just by reading the abstract you will understand that it does not excite you at all. but then you could find the 5% of papers that look pretty cool. this way you can figure out some subfields that you find interesting. also, you can look at google scholar profiles of the authors of such papers. most probably they have more cool papers. when you will figure out some subfield you like, it just remains to find a top-level researcher in that subfield. that’s a much more manageable task than browsing through TCS in general.

sorry for a vague answer. my thoughts are jumping all over the place. maybe one day i should collect all my thoughts together and write a thought-through blog post about my experience with TCS research as i feel like we don’t talk about it here enough.

P.S. if i missed something important, please feel free to ask more questions.