New Student Recruiting
I will likely be able to take on a new Ph.D. students to start in Fall 2020. The position and topic are dependent both on the availability of funding and the interest of the student. However, possible topics include language design, gradual verification, and studying the productivity impact of language and type system features.
To get an idea for my research, see the links and papers at my home page. If you'd like to learn more about a particular project, please contact me! To apply, see the computer science or software engineering program information.
I have written some advice for students who are writing statements of purpose for CMU's Ph.D. program.
Frequently Asked Questions:
- What are your former students doing? Three of my former students are professors: Neel Krishnaswami (Lecturer, i.e. Assistant Professor, at the University of Cambridge), Thomas LaToza (Assistant Professor at George Mason University), and Cyrus Omar (Assistant Professor at the University of Michigan). Joshua Sunshine is a Senior Research Fellow at CMU, which is a research-focused faculty career. Ciera Jaspan leads the Engineering Productivity Research group at Google. For more, see my teaching page.
- What do you look for in students? The CS and SE Ph.D. programs expect a strong undergraduate or master's background in computing, exceptional promise for independent research, and proficiency in English. The SE Ph.D. program values industry experience, as this often provides a valuable perspective for software engineering research, but we do not require it. I personally look for a strong interest in programming languages, specification, and/or verification, ideally some previous knowledge of programming language/type theory (though some of my students have aquired that after coming to CMU), an understanding of the state of software engineering practice in industry, and a philosophy of language design that is compatible with mine (e.g. valuing both object-oriented and functional paradigms).
- Are high test scores the most important? No. We consider a balance of different criteria when admitting students, and test scores are among the least important--in fact, in the SE Ph.D. program we don't even accept them! Different faculty may weigh the criteria differently, but I focus on (in decreasing order) recommendation letters, prior research experience, the statement of purpose, undergraduate grades, and test scores. Most admitted students are strong across many categories, but there are no arbitrary cutoffs. We expect strong English proficiency (e.g. as demonstrated by a total TOEFL score of 100 or above) but recognize that other English-related test scores (e.g. the GRE verbal) will be lower for non-native English speakers.
- Here's my resume. Will I get into CMU? CMU is very competitive, with acceptance rates around 10-15%. I cannot provide feedback on individual applications or accept students outside the admissions process. However, I encourage you to apply through that process!
- How do I write a good statement? Write about research that you have done, or about a specific problem you are interested in. Include enough detail to show that you understand why the problem is important and have interesting and technical ideas about how to solve it. Also discuss the broad areas you are interested in; if there are particular faculty you think you might want to work with, definitely mention their names and projects, but I also encourage you to be open to working with several of the amazing faculty here at CMU.
- Is there funding available? All students accepted to the CS or SE Ph.D. programs are funded for tuition and a stipend, which historically continues for all students in good standing.
- Are there any special programs I should consider? For students who value an international experience, the CMU|Portugal joint Ph.D. program offers students a chance to complete a degree in either CS or SE spending 2 years at CMU and the remainder of their time at a Portuguese University. Students are coadvised by someone at CMU and someone in Portugal, and students in good standing are guaranteed funding for 5 years. I have active collaborations and coadvised students with Paulo Marques at the University of Coimbra and Luis Caires at the University Nova de Lisboa, but I would be open to working with any professor in Portugal interested in the intersection of PL and SE.
- When are applications due? The hard deadline is December 15 each year for admission the following Fall semester. You can save a bit on the admission fee by completing your application by December 1.
- Where can I find out more about the program? At the computer science or software engineering Ph.D. program web sites, and for students interested in the CMU|Portugal joint program, the CMU|Portugal site.
- Should I apply to the Computer Science or Software Engineering program? My students do programming language research that is deeply driven by real software engineering problems; therefore I naturally advise students in both programs. Students primarily interested in language research may find the CS program a better fit, in part because most other PL students and faculty are there. However, students for whom SE is a primary interest, or who have a particularly strong background in industry, may prefer the SE program. My home department is ISR, which runs the SE program, so I have a bit more influence on admissions in the SE program--so students who are certain they want to work with me should definitely apply to SE, possibly in addition to CS. Note that the SE program explicitly values industry experience, although there is no experience requirement. For some students, it may make sense to apply to both programs.