- Resources
- Lecture Schedule
- Lecture Videos
Piazza
sign up with any email id
I will email students the access code
Course Topics
This topics course will be on the intersection of software verification, program synthesis, and interpretable machine-learning.
After a quick introduction to verifying software using mostly logic-based techniques and abstraction, we will use this as a basis to explore program synthesis and machine-learning of interpretable concepts.
The topics on program synthesis and interpretable machine learning will include:
- Program and expression synthesis
- Exact learning from specifications (in particular, SyGuS)
- Exact learning from input-output examples (programming by examples)
- Learning from noisy examples
- Leaarning logics
- Logics that admit efficient learning (passive, online, one-class classification, active, etc.)
- A general theorem of exact learning of logics
- Learning logical expressions from noisy data using neural networks
- Applications of program/expression synthesis and learning logical expressions
- Learning specifications for programs using online learning
- Learning interpretable logical discriminators from visual images, video, etc.
- Learning logics that represent programs
The course will involve (a) reading and discussing papers, (b) presenting papers in this emerging area, and (b) working on projects, possibly in groups, where the goal is to have each project at the level of publication in a reasonably prominent conference.