Блог пользователя TheScrasse

Автор TheScrasse, история, 10 месяцев назад, По-английски

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.

  • Проголосовать: нравится
  • +114
  • Проголосовать: не нравится

»
10 месяцев назад, скрыть # |
 
Проголосовать: нравится +6 Проголосовать: не нравится

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.

  • »
    »
    10 месяцев назад, скрыть # ^ |
    Rev. 3  
    Проголосовать: нравится +7 Проголосовать: не нравится

    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).
    • »
      »
      »
      10 месяцев назад, скрыть # ^ |
       
      Проголосовать: нравится +5 Проголосовать: не нравится

      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.

      • »
        »
        »
        »
        10 месяцев назад, скрыть # ^ |
        Rev. 2  
        Проголосовать: нравится 0 Проголосовать: не нравится

        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.

  • »
    »
    10 месяцев назад, скрыть # ^ |
     
    Проголосовать: нравится +90 Проголосовать: не нравится

    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.

    • »
      »
      »
      10 месяцев назад, скрыть # ^ |
       
      Проголосовать: нравится 0 Проголосовать: не нравится

      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.

    • »
      »
      »
      10 месяцев назад, скрыть # ^ |
       
      Проголосовать: нравится 0 Проголосовать: не нравится

      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.

    • »
      »
      »
      10 месяцев назад, скрыть # ^ |
       
      Проголосовать: нравится 0 Проголосовать: не нравится

      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.

»
10 месяцев назад, скрыть # |
Rev. 3  
Проголосовать: нравится +33 Проголосовать: не нравится

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.

»
10 месяцев назад, скрыть # |
Rev. 2  
Проголосовать: нравится +32 Проголосовать: не нравится

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.

»
10 месяцев назад, скрыть # |
Rev. 2  
Проголосовать: нравится +10 Проголосовать: не нравится

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://codeforces.me/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://codeforces.me/blog/entry/92248?#comment-809957 so he might be a good person to DM for advice on academia.

»
10 месяцев назад, скрыть # |
 
Проголосовать: нравится +10 Проголосовать: не нравится

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.

»
10 месяцев назад, скрыть # |
 
Проголосовать: нравится +40 Проголосовать: не нравится

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.