FreeTibet's blog

By FreeTibet, history, 5 months ago, In English

Hi everyone. I am a third-year student exploring a transition into theoretical computer science research, given my background in competitive programming. I would greatly appreciate any advice from those who have successfully navigated a similar path.

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

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

I'd say if you are in a university, approach a professor that you feel has a research interest that aligns with yours, most research problems are not like CP, CP problems generally have very simple and elegant solutions, that is unfortunately not true for research problems, it can get really messy, takes a lot of readings and exploration so it's always going to be better you start working on a problem early. Plus side is, in most universities you can convert these projects to your degree's thesis project which you typically anyway have to do.

Also depending on what kind of project you choose, skills required would differ greatly, the first phase of attacking any research problem is to do thorough literature review, even though background in CP may not be used as much, but CP hones your problem solving skills so a background in CP will definitely increase the likelihood of you succeeding in your project

Here are some classes of topics I typically see UG students in CS are working on

  1. Complexity Theory — (Pick this only if you have background in TOC)
  2. Algorithm Design and Analysis — (I am actually working under this domain more specifically on stable marriage and related problems, It not only involves algorithm design principles but a lot of discrete math exploring the structure of your problem)
  3. ML/DL — (A very hot topic these days)
  4. Formal Methods — (involves building automatic tools for software specification, verification)
  5. Systems — (If you're excited about computer architecture/OS/Networking/Compilers etc.)
  6. Game Theory — (Involves a lot of math and algorithmic aspects)
  7. Cryptography — (take this if you're excited about number theory and abstract algebra)