Even though I've just started reading applications, I'm already reminded of several frustrating mistakes that lots of applicants make. Maybe I should say this more positively... Here is a list of recommendations (requests?) for people applying to grad school next year! These are all tied to the main thing I look for in prospective PhD students: clear evidence of future excellence as an independent computer science researcher.
I should emphasize that these suggestions reflect my own personal biases; many of my colleagues disagree with me, sometimes vehemently. In particular, these are definitely not departmental policies!
Put your work on the web! Prior research experience is fantastic, but the one-sentence description in your statement of purpose really doesn't tell me much. Set up a web page (either through your school or through some free hosting site) with links to as much of your work as possible, and include the URL in your resume and in your statement. “Work” includes conference and journal submissions, technical reports, independent study projects, class projects, software demos, and even progress reports for incomplete research. Even if it's already published in a regional workshop or conference proceedings, put it on the web. If it isn't on the web, it doesn't exist!
Request recommendation letters from people who can accurately judge your research potential. The best letter writer is a faculty member who (1) has direct, personal knowledge of the applicant's research ability, (2) has experience with successful PhD students, and (3) is active and trusted in their research community. In general, don't request letters from department heads (unless they've worked with you directly), teaching assistants, fellow students, parents’ colleagues, or managers of non-research jobs, unless their letters fill some otherwise gaping hole in your application. [I broke this rule. When I applied to grad school, I got letters from managers at my programming job as badly needed evidence that I'd learned how to work.]
- Say what you're interested in working on and why. Be specific! I look for students who have enough independence and curiosity about something to ask interesting questions or even make half-baked conjectures. Nobody expects that you'll actually work on the problem you write about; that's not the point. We can't even really expect you to work in the field that you write about. By not writing about your own interests (or worse, describing your interests only by listing the faculty members you want to work with), you're strongly suggesting that you don't have any.
- If you're interested in working with specific faculty members, know what they do. If possible, say something intelligent about some of their results, not just the broad area they work in; make it clear that you read more than the list of faculty on the department web page. Considering faculty with different research interests than yours is an excellent idea, but then make sure it's clear that you understand the difference. For example, don't write that you want to work with me because of your deep interest in approximation algorithms, or cryptography, or networking.
- Look good at what you say you want to do. In particular, if you want to study algorithms, don't get a B- in your undergrad algorithms class, unless maybe you took it as a freshman (but you got an A in the graduate algorithms class the next year), or you missed the final exam because you were working on a STOC submission (which you put on the web). [I broke this rule.]
- Never suggest that you're getting a PhD “by default”. Getting a PhD in theoretical computer science is a high-risk multiple-year commitment with a negative expected payoff, even for successful students. I honestly can't recommend it to anyone who doesn't have to do it. Don't apply to grad school because you “really liked college”, or because you're too lazy to look for a job, or to impress your boyfriend, or because that's what your parents want you to do. We want students who love what they're doing!
- Evidence of intelligence is necessary, but not sufficient. So you got a perfect GRE score, or you have a 3.9+ GPA, or you scored in the top 0.1% on the IIT entrance exam, or you got second place in some international olympiad thing. That's great, but those are all evidence that you can answer closed-form questions with well-defined answers under timed conditions. Research (at least, good research) ain't like that. Low scores are red flags, but high scores are basically meaningless. Evidence of independence, creativity, passion, and maturity are also necessary (but not sufficient). [I am definitely in the minority here. Many faculty, indeed many departments, will gladly accept anyone with a 4.0 GPA, regardless of other factors.]
- Finally, do not submit an application with spelling, grammar, or punctuation mistakes. Do I really need to explain this one?