Link

Courses & Tutorials 📚

  • MIT 6.S981 Introduction to Program Synthesis (Fall 2023) – Graduate-level course by Armando Solar-Lezama covering fundamentals of intent specification, solver-based search, and connections to machine learning Introduction to Program Synthesis Introduction to Program Synthesis. Includes hands-on projects and latest research topics (e.g. neurosymbolic learning). Materials: lecture slides and assignments on the course website.
  • Harvard CS252r Program Synthesis (Fall 2023) – Advanced seminar taught by Nada Amin focusing on cutting-edge research in program synthesis. Covers classic methods (stochastic search, symbolic methods, genetic programming) and modern neural/ML-integrated techniques [Program Synthesissynthesis-class](https://synthesis.metareflection.club/#:~:text=,LLMs) [Program Synthesissynthesis-class](https://synthesis.metareflection.club/#:~:text=,the%20field%20of%20program%20synthesis). Students engage with recent papers and a course project (see syllabus on the course site).
  • UC Berkeley CS294-82 Program Synthesis for Everyone (Fall 2012) – Pioneering graduate course by Ras Bodik and Emina Torlak (based on their CAV 2012 tutorial). Introduces using constraint solvers for synthesis, with topics like sketching partial programs and angelic execution. Course page provides detailed lecture notes, screencasts, and demos (e.g. using the Z3 SMT solver and the Flash Fill Excel demo) Ras Bodik - EECS - Computer Science Division - UC Berkeley Ras Bodik - EECS - Computer Science Division - UC Berkeley.
  • UT Austin CS395T Program Synthesis (Spring 2021) – Course by Swarat Chaudhuri offering a broad study of theory and practice. Structured in three modules: (1) Functional synthesis (formal specs and counterexample-guided search), (2) Reactive synthesis (reactive systems Ă  la Church’s Problem), and (3) Program Learning (neurosymbolic methods combining synthesis with deep learning). Emphasizes reading research papers and a term project.
  • University of Kansas EECS 700 Introduction to Program Synthesis (2022) – Graduate introduction by Sankha Narayan Guria [SyllabusEECS 700: Introduction to Program Synthesis](https://sankhs.com/eecs700/syllabus/#:~:text=EECS%20700%3A%20Introduction%20to%20Program,stochastic%20search,%20and%20machine%20learning). Covers enumerative search and pruning, SMT/constraint solving, type-directed synthesis, and machine-learning-based approaches [SyllabusEECS 700: Introduction to Program Synthesis](https://sankhs.com/eecs700/syllabus/#:~:text=,program%20synthesis%20tool%20from%20scratch). All course materials (papers for each topic) are publicly linked via the schedule on the course site.
  • ExCAPE Summer School on Program Synthesis (2013) – A multi-day summer school organized by the NSF ExCAPE project (UPenn, UC Berkeley, MIT, etc.). Featured lectures from experts in the field, covering the state of program synthesis circa 2013 (from Boolean sketching to inductive synthesis). Materials: slide sets and videos (e.g. Bodik & Torlak’s invited tutorial on constraint-based synthesis, CAV 2012) were made available ds.algorithms - Getting started with Program Synthesis - Theoretical Computer Science Stack Exchange ds.algorithms - Getting started with Program Synthesis - Theoretical Computer Science Stack Exchange.
  • Building a Program Synthesizer (2018 blog series) – Tutorial-style posts by James Bornholt. Part 1 (“Program Synthesis Explained”) introduces the motivation and basic techniques in an accessible way Program Synthesis Explained — James Bornholt. Part 2 (“Building a Synthesizer”) gives a hands-on tutorial using the Rosette framework in Racket Building a Program Synthesizer — James Bornholt Building a Program Synthesizer — James Bornholt, walking through constructing a toy synthesizer step-by-step. Great for beginners who want a guided, practical introduction.