Fall 2020: Program Synthesis Techniques and Applications

Fall 2020: Program Synthesis Techniques and Applications

Course No:
EECS 598-006
Instructor:
Xinyu Wang
Machine programming aims to achieve this goal by automatically turning the “problem definition” into “instructions” that can be executed on machines. It has the potential to revolutionize the way software is developed. In fact, this revolution has already begun. For example, deep learning has reshaped our lives in many aspects, where the “problem definition” is expressed using data and “instructions” are machine learned models.
This special topics course will cover another important and emerging class of machine programming techniques, namely program synthesis, which is an area that sits at the intersection of programming languages, formal methods, artificial intelligence, programming systems, and has a wide spectrum of applications, e.g., in end-user programming, data science, databases, systems, software engineering, architecture, robotics, human-computer interaction, etc. In this course, we will study state-of-the-art program synthesis techniques as well as their applications and implementations.
More info (pdf)