About This Course
The goal of program synthesis is to automatically ﬁnd a program that satisﬁes the user intent expressed in the form of some speciﬁcation.
Program synthesis stands at the intersection of multiple disciplines, programming languages, artificial intelligence and data science.This course gives an introduction to the field, and requires the students to learn about the state-of-the-art by reading recent articles and working on a course project.
The topics we plan to cover include inductive, functional, counter-example guided and type-driven synthesis.
- There is no required textbook for this course. Students require to read the relevant papers introduced during the course.
- Some materials of this course have been borrowed from the similar course given by Armando Solar-Lezama.
|1||2 Esfand||Course Overview|
|2||4 Esfand||Introduction to Inductive Synthesis|
|3||9 Esfand||Bottom-Up Enumerative Search|
|4||11 Esfand||Top-Down Enumerative Search|
- 20% Paper review and presentation
- 20% Project
- 60% Final Exam