Syllabus
CS252R: Advanced Topics in Programming Languages …
This term (Fall 2023): … Program Synthesis
Class meeting time: TR 11:15 – 12:30
Class meeting room: SEC 1.307
Course website: https://synthesis.metareflection.club
Instructor: Nada Amin (namin@seas.harvard.edu)
Teaching Fellow: Tyler Holloway (tylerholloway@g.harvard.edu)
Course description
In this graduate seminar, we will look at the art of program synthesis: writing programs that write programs based on specifications such as input/output examples.
Topics include inductive synthesis, bottom up search, top down search, constraints, miniKanren, SMT, representing programs (version space algebra, e-graphs, tree automata), library learning, stochastic search, neural guided search, neural theorem proving, large language models.
Students will design and implement two assignments and a final project in the language(s) of their choice. Each student will also present a paper and lead the discussion for one session.
Teaching Philosophy
Learning by doing is fun and rewarding.
Course objectives
By the end of the course, the students will be able to use principled programming methods to design and implement systems with program synthesis. Students will practice studying programming language and system papers and artifacts critically, as well as developing their own.
Course policies and expectations
Students are expected to attend and participate in the class meetings twice a week. Students will have to complete two pre-defined assignments in the language of their choice. In addition, they are expected to lead a presentation and discussion in meetings on the paper/system/approach of their choice. There will be one meeting per student. If we exhaust the presentation meetings, we will use class time to discuss thematics all together. Each presenting student is expected to post a thread on Ed a few days prior to the meeting, and each other student is expected to answer that thread before the meeting. Finally, students are expected to work early and often on their final projects. They can find times to discuss their topic with the course staff. Ideally but not necessarily, the topic of a student’s presentation will be related to their final project. We might also use class time to discuss projects. Projects can be done in group, with each individual making a substantial contributions. Group projects will be expected to be more substantial than solo projects. We expect students to share their work privately with the class or publically on the web.
Materials and Access
We seeded suggestions for papers and systems. Students are also welcome to suggest other papers/systems/approaches.
We use a shared private Github repository, where students can send pull requests with their work or a pointer to their publically available work.
We use Ed for discussions and Sciwheel for annotated readings.
Assignments and Grading Procedure
Feedback will be given on pre-defined assignments, lead meetings, on participation and on final project progress throughout the semester.
Template for paper discussion and presentation
- What is the key idea of the paper?
- What did you learn from the paper and how can you use it in your own projects?
- Can you run the artifact and experiment with it?
- For the interface, what are the primitives, the means of combination, and the means of abstraction?
Template for project
- What is the project exploring?
- What are the methods used?
- What problems does the project solve?
- How does the system use program synthesis?
- Is the project well-documented and usable by others?
- For the interface, what are the primitives, the means of combination, and the means of abstraction?
Academic Integrity
Please see the Honor Code.
Accommodations for students with disabilities
Students needing academic adjustments or accommodations because of a documented disability must present their Faculty Letter from the Accessible Education Office (AEO) and speak with the professor by the end of the second week of the term. Failure to do so may result in the Course Head’s inability to respond in a timely manner. All discussions will remain confidential, although Faculty are invited to contact AEO to discuss appropriate implementation.