CS 6172

CS 6172

Course information provided by the Courses of Study 2023-2024.

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.

When Offered Fall.

Permission Note Enrollment limited to: Ph.D. students.
Prerequisites/Corequisites Prerequisite: CS 3110, CS 4700, and CS 4780/CS 5780 or permission of instructor.

Outcomes
  • Identify where and how program synthesis can be used to solve engineering problems.
  • Be able to build program synthesizers which combine techniques from programming languages and AI.
  • Understand open problems in the field and be equipped to work on them.

View Enrollment Information

Syllabi: none
  •   Regular Academic Session. 

  • 3 Credits Stdnt Opt

  • 19091 CS 6172   LEC 001

  • Instruction Mode: In Person
    Restricted to Ithaca campus graduate students only. Undergraduate and MEng students must add themselves to the waitlist during add/drop. This course is not available to Cornell Tech students.