Advising
Check out the main squaresLab@CMU website for more information on my group and students, and our various research projects.
Research advising: If you are a CMU student (grad or undergrad, in any school or program program) interested in working with me, send an email (CC my admin, Jenni!) to set up an appointment. Be prepared to talk about research problems you find interesting. My current projects and recent publications are good starting points, but coming with your own ideas about interesting problems/potential solutions in analysis/transformation/search-based software engineering for improving software quality will only impress me, so don’t feel limited by what I’m currently doing.
Non-CMU students: You may apply to several of the PhD programs at CMU’s School of Computer Science at once; apply to those that match your interest area and background. If you are interested in working with me, apply to the S3D SE PhD program. Mention (and substantiate/justify!) your interest in my work to ensure that I see your application. Note that the SE PhD program does not look at GRE scores and does not have an application fee; see our website for details.
I discourage prospective PhD students from emailing me outside of application season about their plans to apply; I’ll simply repeat the above.
Non-CMU PhD students interested in visiting: please contact me directly. Note that your chances will be much better if you secure an outside fellowship to support your visit, and even better than that if your research advisor emails me as well.
Masters students: The Masters of Software Engineering is an industry/practitioner-oriented (rather than a research-oriented) degree. I do not participate in the MSE admissions process. If you’d like to do research with me, apply to our PhD program instead. If you are a current MSE student who has developed an interest in research, contact me as noted above.
Undergraduate summer research: With Josh Sunshine and Charlie Garrod, I co-founded and co-direct the REUSE@CMU summer program.
REUSE@CMU provides summer research opportunities to undergrads interested in Interdisciplinary Software Engineering. We train students in all elements of research, including understanding literature, formulating research questions, developing novel solutions, and evaluating and communicating results. Our students regularly publish, and win awards in student research competitions; a number of our graduates have applied to and been accepted at top graduate programs.
The vast majority of my group’s summer research interns come through this program. We’re interested in students from all walks of life: from rising freshmen to rising seniors and from regional state schools to small liberal schools to R1. Head over to the main site to learn more and apply!
Undergraduate advising otherwise: CMU undergrads: I encourage you to check out the Undergraduate Minor/Concentration in Software Engineering! Michael Hilton directs the program.
Please note that I do not participate in (and indeed know remarkably little about) CMU/SCS undergraduate admissions.
Teaching history
I provide the below for completeness; it also gives some hint as to what I might be teaching in the next year or two.
I also typically contribute to 17-808, Introduction to Software Engineering Research, as a member of the core faculty in Software Engineering (I coordinated, 2015-2017).
Current:
Fall 2024. 17-214/514: Principles of Software Construction
Previous:
- Spring 2024. 17-445/17-645/17-745/11-695 Machine Learning in Production/AI Engineering
- Fall 2023. Sabbatical!
- Fall 2022 and Spring 2023. 17-214/514: Principles of Software Construction
- Spring 2022. 17-214/514: Principles of Software Construction
- Spring-Fall 2021. Family leave/Teaching release
- Fall 2020. 17-313, Foundations of Software Engineering
- Spring 2020. 17-355/17-655/17-819: Program Analysis
- Fall 2019. 17-313, Foundations of Software Engineering
- Spring 2018. 17-355/17-665/17-819O, Program Analysis/Special Topics in PL: Program Analysis (with Jonathan Aldrich), and 17-356/17-766: Software Engineering for Startups [github]
- Fall 2017. 15-313 Foundations of Software Engineering
- Spring 2017. 17-654, Analysis of Software Systems
- Fall 2016. 15-313 Foundations of Software Engineering (undergraduate)
- Spring 2016. 15-819 O: Special Topics in Programming Languages: Program Analysis
- Fall 2015. 15-313 Foundations of Software Engineering (undergraduate)
- Spring 2015. 17-654, Analysis of Software Systems
- Fall 2014. 15-313, Foundations of Software Engineering