Instructor: Sankha Narayan Guria
Lectures: Monday, Wednesday, and Friday, 3:00 - 3:50pm, LEEP2 G411
Office Hours: Monday 4:00 - 5:00pm, Eaton Hall 2034
Please email if standard office hours times do not work for you.
EECS 700 is a comprehensive introduction to automatic programming or program synthesis, an emerging area that sits at the intersection of programming languages, automated reasoning, and artificial intelligence. Program synthesis aims to generate programs automatically from high-level, possibly incomplete descriptions. The course covers a wide variety of recent synthesis techniques that differ in the kind of descriptions they start with tests and input-output examples to formal correctness specifications. It will also cover the search strategies synthesis tools use like enumeration, symbolic execution, type systems, stochastic search, and machine learning.
The link to join Discord is shared on Canvas. Email me if you are unable to join.
All information on this class website is tentative and subject to change. Any substantive change will be accompanied with an announcement to the class via Canvas and Discord.