Office Hours: Monday 2-3 pm
(or by appointment)
[C.V.] [YouTube channel]
About MeI'm an Associate Professor of Computer and Information Science at the University of Pennsylvania. I received a Ph.D. in Computer Science from Stanford University in 2008, where my advisor was Alex Aiken, and an M.S. from Purdue University in 2003, where my advisor was Jens Palsberg. I was a researcher at Intel Labs, Berkeley from 2008 to 2011, and an Assistant Professor of Computer Science at Georgia Tech from 2011 to 2016.
Submit papers to MAPL 2020 - the 4th Annual Machine Learning and Programming Languages Workshop by Friday March 20.Future Events
- My students and I will give a hands-on tutorial at POPL'20 on Building Program Reasoning Tools using LLVM and Z3.
- I will give a talk at PADL'20 about our research on interpretable rule learning.
- I am teaching CIS 550: Database and Information Systems in Spring 2020.
- RightingCode.org: my online course on Software Analysis and Testing.
- Paper describing Code2Inv and accompanying artifact.
- Paper on end-to-end neural-guided program repair to appear at ICLR 2020.
- Paper on provenance-guided synthesis of Datalog programs to appear at POPL 2020.
- Check out DatalogBench: a benchmark suite for interpretable rule learning.
- Two of my PhD students Xujie Si and Xin Zhang will be on the job market.
- Please contact me if you are looking for a postdoc position in my research group.
My research spans programming languages related topics with the overarching goal of making software better, safer, and easier to build and maintain. My current focus concerns developing scalable techniques to reason about programs by combining machine learning and formal methods. I am also interested in foundations and applications of neuro-symbolic approaches that synergistically combine deep learning and symbolic reasoning.
You can learn more about my research by following these links:
I created the first large-scale online course (MOOC) on Software Analysis and Testing. All course material is available at rightingcode.org. Lectures with assessments are available on Udacity. Autograding scripts for the labs are available to instructors upon request.
I teach the following courses at Penn: