Program Synthesis

Program Synthesis is the problem of automatically discovering a syntactically-correct program that fits a high-level specification. Contemporary algorithms use symbolic techniques for pruning the search space of programs and discovering program parameters that satisfy a requirement in a time-efficient manner. We will explore different techniques from automated logical reasoning and formal methods that are used in academic research by reading a number of papers to solve the synthesis problem. This group is aimed at those with little-to-no experience in program synthesis but are motivated to learn more.

Tentative Schedule

  • Week 1 [date tbd]
    • Introductions and Logicstics
    • What is Program Synthesis?... and Motivations
    • What to Look For in Papers

  • Week 2 [date tbd]
    • Quick review of “How to Read a Paper”
    • Basic Logic Review
    • SAT/SMT Solver Basics

  • Weeks 3+
    • High-Level Overview of Paper/Text (rotation)
    • Section by section discussion? (+ questions)
    • Discussion of comments/improvements to technique