Unfortunately, I cannot respond to every email I receive. To help manage the process, use the following instructions to contact me.
Did you take a look at our projects?
My goal is to help my students practice and refine their abilities as researchers, and produce interesting research as a side-effect (albeit an important one).
The following lists the abilities that I believe are particularly valuable:
To help me identify applicants that will be a good match, it is
helpful for you to concretely demonstrate your current abilities.
The easiest way is to describe some past projects
in terms of why they were interesting, your approach, the challenges and solutions.
Arnab Nandi has a particularly good example of a write up that is above and beyond what I would expect.
I don’t expect applicants to be experts at everything, so it is important to be clear about your strengths and weaknesses. For example, I did not have good writing technique when applying to graduate school and acknowledged it clearly in my application.
Finally, I will strive to work and generate ideas with you as a colleague. So describe some cool research problems that you would find awesome to work on!
Computer Science at Columbia uses a centralized admissions process. Prospective Ph.D students apply to the computer science department at large, and faculty members review the applications and nomiate applicants for admission. For this reason, it is helpful to let me know you have applied if you are interested in working with me.
However, I will not provide feedback about your application through email. If you want a sense of what qualities I am looking for, read this form.
All applications should be submitted through the electronic system by December 15 for the Fall semester, and October 1 for the Spring semester.
The best way to convince me you can do good research is to have someone vouch for the good research you’ve done in the past. For this reason, the most effective letters are those from research supervisors that concretely describe your contributions to a specific project.
However, not every applicant has had the opportunity to perform research. In this case, letters that can describe your technical contributions, and the way you approach problems are most useful.
I will actively avoid reading letters that solely describe your performance in a course.
Thus, my general order of preference of letter writers are:
Software development will be a large component of any systems computer science degree. It is important to demonstrate that you will be able to develop the systems necessary to conduct research experiments. I am looking for students that have experience building systems – in particular database and high performance systems.
If you currently have less software development experience, that is OK if you demonstrate that you can and want to learn the necessary skillset. The best way is to show a sequence of projects that highlight your growth as a developer. I can use this to extrapolate how you will grow if you continue to learn.
In either case, links to relevant and well documented github repositories will be helpful.
Keep in mind that there are many applications, so I will likely skim your applications before reading a small subset closely. So make it easy for me to learn something while skimming.
I’ll periodically update the following list of links that point to useful articles for incoming/young Ph.D. students.