<p>Hi, I'll be a Sophomore next fall at Princeton majoring in Computer Science. I'm not set on grad school, but I do see it as a possibility. I was just wondering what kind of things I can do throughout my time at Princeton to make me a strong applicant in case I do consider grad school.</p>
<p>My interests are in theoretical computer science, particularly in discovering/analyzing new algorithms. I haven't done any research yet, but plan to during my junior and senior years (and maybe the summer between then).</p>
<p>As of now, I don't know anything about the grad school admissions process and had these specific questions:</p>
<ul>
<li><p>Which schools are very good in theoretical computer science? The only reference I have is the US News rankings and it seems MIT, Stanford, Berkeley, CMU, and Univ. of Illinois are very good. However, is there one that is perhaps much more stronger in theoretical computer science (as opposed to Systems, Applications, etc.)?</p></li>
<li><p>What consists of a grad school application aside from GPA, Tests, Essays, and letter of recs? </p></li>
<li><p>How important is research compared to work experience? Since I'm undecided about grad school, I'd like to try and get a Finance internship the summer after my sophomore year, such as a good one at Wall Street like Jane Street Capital or something. Does this kind of work experience help me in any way for the grad school application? I assume I would mostly be doing finance stuffs that don't relate too much to computer science.</p></li>
</ul>
<p>That's about it for now, but any other advice regarding what I can do/focus on for now would be greatly appreciated.</p>
<p>Thanks!</p>