General Information
Class Timings: Mon/Wed from 18:00 hrs to 19:30 hrs Venue: Bharti 425 Instructor: Subodh Sharma (svs at cse.iitd.ac.in)
Course Info & Objectives
Program Synthesis has emerged as an effective approach to automatically create programs that meet user intent specified in the form of some specification. The technique is used successfully in diverse domains such as computer-aided education, software engineering, software verification etc. In this course we will discuss modern synthesis approaches by discussing foundational as well as recent research advances in this area. Topics covered in this course will include enumerative syntax-guided synthesis, counterexample-guided synthesis, stochastic synthesis and machine-learning based synthesis.
Academic Integrity:
Plagiarism is viewed very seriously. Any case of copying (or allowing to copy) of written text or code would immediately be awarded 0 in the assignment/exam and a grade drop. Depending on the nature of plagiarism, the student could also be refered to the disciplanary committee with a fail grade. All written/programming tasks are to performed on your own, other than when group-work is explicitly specified.
Lecture Material
Sr. No. | Topic | Supplementary Reading |
---|---|---|
1 | Course modalities; Introduction | |
2, 3 | Denali: A Goal-directed Superoptimizer |
|
4-6 | Program Synthesis by Sketching |
|
7-8 | Syntax Guided Synthesis & Search-based Program Synthesis |
|
9-11 | Spreadsheet Data Manipulation Using Examples |
|
12-13 | From Program Verification to Program Synthesis |
|
14-16 | Stochastic Program Optimization |
|
17 | Course Project Discussions | |
18-22 | Neural Program Learning under Noisy I/O (ICML'17) |
|
23-28 | Course Project Presentations |