I am currently a junior undergraduate and I am interested in too many areas, or I don't know how to reconcile my interests. I have a lot of interest in algebra and algebraic geometry but also mathematical logic and theoretical computer science. I am taking independent study courses for Algebraic Geometry and I will have a minor in computer science plus I will have taken Theory of Computation, graduate level mathematical logic, independent study in theory of recursion(hopefully) and independent study in advanced set theory. I have developed a pretty strong interest in theory of recursion and I want to look into algebraic methods in computer science (I see that there are apparently a lot of applications of abstract algebra to computer science). I also am interested in automated theorem proving(to a lesser extent), and set theory (by grad school I will probably have covered forcing and the ideas surrounding large cardinals, though I am not at that level yet). I have read the first few chapters of J. Donald Monk's book Mathematical Logic, and a good part of Smullyan's book on Gödel's Incompleteness theorem. I plan on beginning Smulyan's book on Theory of Recursion soon. As far as general mathematical logic, I am familiar with the basic ideas of proof and model theory and the completeness theorem and the Löenheim-Skolem theorem. I suppose my interests could be broadly divided between algebra/algebraic geometry and mathematical logic with a focus on computer science. So should I go math, or computer science or something in between? What kind of programs might suit me (ignoring the difficulty of getting in, I'll worry about that myself)? Any assistance will be greatly appreciated.