parameterized complexity when you know more about the instances than just their size computational social choice when you care about fairness, representation, collective decision making, and incentives optimisation when you just want what's best algorithmic number theory and cryptography when you want to manipulate numbers and hide secrets quantum algorithms when you want speedups using quantum weirdness exponential time algorithms when you want to beat brute-force for intractable problems random graphs and algorithms when you want to know what to expect approximation algorithms when perfect is the enemy of good graph algorithms when you need to deal with pairwise relations