Skip to content

Schedule

Nadia Polikarpova edited this page Feb 14, 2023 · 16 revisions

Note: Schedule beyond next week is subject to change!

Day Class Topic / Reading Assignment Project milestone
Tue
1/10
Course Overview: What is program synthesis? Dimensions in programs synthesis: behavioral constraints, structural constraints, search strategies.
[Slides] [Synquid demo]
Module I: Synthesizing Simple Programs
Thu
1/12
Inductive synthesis. Syntax-guided synthesis. Enumerative search: bottom-up vs top-down.
[Slides]
Tue
1/17
Search space pruning: equivalence reduction.
[Slides]
Wed
1/18
EUSolver
Thu
1/19
Search space pruning: top-down constraint propagation. Condition abduction. EUSolver discussion.
[Slides]
Fri
1/20
Teams
Tue
1/24
Search space prioritization. Weighted enumerative search.
[Slides]
Wed
1/25
Euphony
Thu
1/26
Euphony discussion. Framework demos. Suggested project ideas.
Tue
1/31
Representation-based search: Version-Space Algebra, Finite Tree Automata.
[Slides]
Wed
2/1
BlinkFill
Thu
2/2
BlinkFill discussion.
Fri
2/3
Proposal
Tue
2/7
Stochastic search, MCMC. Constraint Solving: SAT, SMT.
[Slides]
[Slides]
Wed
2/8
Brahma
Thu
2/9
Constraint-based search.
[Slides]
Module II: Synthesizing Complex Programs
Tue
2/14
Module I vs II. Rich specifications. Program sketching
[Slides] [Slides]
Wed
2/15
Sketch
Thu
2/16
Program Sketching (cont.).
[Slides]
Tue
2/21
Type Systems. Type-driven program synthesis.
[Slides]
Wed
2/22
Synquid
Thu
2/23
Refinement Types. Type-driven program synthesis (cont.).
[Slides]
Tue
2/28
Imperative programs. Hoare logic. Constraint-based synthesis with loop invariants.
[Slides]
Wed
3/1
SuSLik
Thu
3/2
Separation logic. Deductive synthesis.
[Slides]
Module III: Advanced Topics
Tue
3/7
User interaction in synthesis.
[Slides]
Wed
3/8
Regae
Thu
3/9
User interaction in synthesis (cont.)
Tue
3/14
Guest lecture by Shraddha Berke: Neural and Neuro-Symbolic synthesis.
Wed
3/15
TBD
Thu
3/16
Neural and Neuro-Symbolic synthesis (cont.)
Tue
3/21
3-6pm
Project Presentations. Presentation
Fri
3/24
Report

Clone this wiki locally