C S 393P C S 393P. Program Synthesis. 3 Hours.
Study the methods for automatically discovering programs that implement given high-level specifications, which can take many forms, including formal constraints, input-output examples, demonstrations, and natural language. Examine contemporary algorithms for program synthesis to bring together symbolic techniques for pruning and search, numerical techniques for finding optimal parameters, and statistical techniques for interpreting ambiguous specifications and learning to search. Three lecture hours a week for one semester. Computer Science 393P and 395T (Topic: Program Synthesis) may not both be counted. Prerequisite: Graduate standing, and undergrad-level expertise in algorithms and discrete mathematics and the ability to program.