I'm a final year computer science undergrad and I'm looking to pursue a PhD in theoretical computer science in the long term. I've been admitted to some great schools to do theory like Princeton and Berkeley but right now, I'm looking to defer all my admits to study math for a year since I've been admitted to study Part III at Cambridge on a full scholarship.
I'd very much appreciate your thoughts on the following couple of questions.
So, given that I'm not really sure what sort of theory I want to be doing at grad school (as of now, algorithms and combinatorics) what sort of things should I be looking to study there?
As someone who has studied computer science and not pure mathematics for the last few years, I want to take the next few months to prepare myself for the course. Can anyone recommend areas (and/or books) to bone up on before going there? (Since for instance, I never formally studied abstract algebra or complex analysis)
Thanks a lot.
I realize that my question as previously stated was too dependent on my personal specifics and here's a restatement that I hope fares better -
What things, that most mathematics undergraduates learn, do you think a Computer Science major should make sure he knows if he plans on following a masters course in pure mathematics with a focus on discrete mathematics (things like extremal or additive combinatorics) and some algebra?