Program Synthesis

About This Course  

The goal of program synthesis is to automatically find a program that satisfies the user intent expressed in the form of some specification.
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.

Learning Objectives  

The topics we plan to cover include inductive, functional, counter-example guided and type-driven synthesis.

Reading Material

  • 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.

Schedule

DateLecture
12 EsfandCourse Overview
24 EsfandIntroduction to Inductive Synthesis
39 EsfandBottom-Up Enumerative Search
411 EsfandTop-Down Enumerative Search
516 EsfandStatistical Models in Synthesis
618 EsfandStochastic Search
723 EsfandRepresentation-based search
25 EsfandHow to give a great research talk (Simon Peyton Jones)
814 FarvardinBoolean Satisfiability (SAT) Solving
916 FarvardinSatisfiability Modulo Theories
21 FarvardinClass Presentation: Papers (1)
1023 FarvardinConstraint-based Search
1128 FarvardinConstraint-based Synthesis with Sketch (1)
1230 FarvardinConstraint-based Synthesis with Sketch (2)
4 OrdibeheshtClass Presentation: Papers (2)
136 OrdibeheshtIntroduction to Functional Synthesis
11 OrdibeheshtClass Presentation: Project Progress Report
1413 OrdibeheshtProving Program Correctness
18 OrdibeheshtTutoring Session (Program Verification)
1520 OrdibeheshtFrom Verification to Synthesis
25 OrdibeheshtClass Presentation: Papers (3)
1627 OrdibeheshtExpressive Types
171 KhordadSynthesis with Refinement Types
183 KhordadDeductive Synthesis
198 KhordadSynthesis for Data Science
10 KhordadClass Presentation: Papers (4)
2017 KhordadGuest Lecture: Prof. Sirjani (Research)
22 KhordadClass Presentation: Papers (5)
2124 KhordadModel Learning
2229 KhordadGuest Lecture: Prof. Mousavi (Research)
2331 KhordadNetwork Synthesis (Research)

Marking Criteria 

  • 20% Paper review and presentation
  • 20% Project
  • 60% Final Exam