CSC 293/573 Synthesis of Systems


CSC 293/573 Synthesis of Systems
Sreepathi Pai
TR 15:25-16:40 Dewey 2110D
Office Location
Wegmans Hall 3409
Office Hours
By appointment, though you're free to drop by my office between 10AM and 5PM on weekdays and see if I'm available

Academic Honesty

All assignments and activities associated with this course must be performed in accordance with the University of Rochester's Academic Honesty Policy. More information is available at:


(from CDCS) An implementation-oriented survey of software systems that specify, model and synthesize software/hardware systems. The complexity of modern computer architectures places a heavy manual burden on the programmer to write correct, efficient and fast programs. This course investigates programming language, compiler and automated reasoning techniques that transfer this burden to synthesis systems which aim to reduce the burden on programmers by generating code from high-level specifications.

This course requires students to read papers and demonstrate their understanding by building systems from those papers.


Students who take this course will learn:

  • Specifying and Modelling programs
  • Use of program synthesis systems to solve systems problems

Students will be expected to demonstrate mastery of these goals by building three projects, one of which is a writing project.


CSC254, CSC255 are strongly recommended; CSC253 may be useful.

Background in logic, AI (knowledge representation) are very useful as well.


This is a seminar course. It uses contract grading. You receive a B in this class if you meet the contract. A higher grade requires high-quality work on the three projects, utilizing feedback from the instructor.

The contract is as follows:

  • Attend all classes – not miss than two classes (with permission)
  • Read all papers deeply before class
  • Participate in class and online discussions (Piazza)
  • Sole all L0 (setup) problems individually
  • Solve all L1 (homework) problems (as a group or individually)
  • Solve L2 (assignments) problems (as a group)
  • Make progress on L3 (projects) problems (as a group)
  • Complete the individual reading and writing project

Late submissions

Late submissions without informing the instructor will violate the contract.

Inform the instructor in advance if circumstances beyond your control will make you miss a deadline.

Similar courses elsewhere

Here are links to similar courses elsewhere that you may find inspiring. This course focuses on the pragmatics.