Office Hours: TBD for Fall 2019
[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.
Recent NewsFuture Events
- August 26-30: Speaking at Waterloo Workshop on ML + Security + Verification
- September 17-19: Speaking at Facebook "Probability and Programming" Workshop and Big Code Summit
- October 9-11: Keynote talk at SAS 2019 (part of FM Week) [paper]
- Our work on continuously analyzing programs received a Distinguished Paper Award at PLDI 2019.
- Our research on deep logical reasoning via neural learning received a Facebook Award.
- Our work on program synthesis via deep reinforcement learning appeared at ICLR 2019.
- New version of Chisel framework and benchmarks released!
- Our research on AI-based continuous program reasoning received a Facebook Award.
- I will be teaching CIS 573: Software Engineering in Fall 2019. Students at all levels are welcome!
- RightingCode.org: my online course on Software Analysis and Testing.
The overarching goal of my research is to develop effective computer-aided approaches for improving software quality and programmer productivity. My research group is exploring ways to achieve this goal by deeply integrating machine learning and symbolic reasoning.
You can learn more about our work 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: