everything.study
CS 6172

Program Synthesis

3.0 credits · Graduate

An introduction to program synthesis: the problem of automatically generating programs from specifications of their desired behavior. Program synthesis draws on the fields of programming languages and artificial intelligence with the aim of helping to improve software engineering by automatically generating code; help expand the usability of computers by allowing non-coders to harness the power of programming languages; and help us build more interpretable, symbolic AI systems that can write new code. Covers classic areas such as programming-by-example, constraint-based synthesis using SMT solvers, type-directed program synthesis, and inductive logic programming. Covers recent developments in mixed discrete/continuous and neural/symbolic program synthesis. Covers deep learning methods for building efficient, scalable program synthesizers.

Topics

Official roster learning outcomes

Prerequisites & course information

CS 3110; CS 3700; CS 3780 or CS 5780; or permission of instructor.

Sources