Welcome
Course Info
Please take the pre-course survey ASAP!
Welcome! The purpose of this course is to get exposure to some of the various declarative techniques for program analysis and optimization. We will study term rewriting systems, datalog, and equality saturation. One major theme is that these techniques share many common through-lines, despite their apparent differences.
Grading
This class consists partly of lectures, and partly paper discussions. Attendance, reading of assigned papers, and participation are essential for this course to be useful and enjoyable, so the grading reflects that.
- 30% Participation
- 30% Discussion Lead
- 40% Final Project / Presentation
Paper Discussion
Each discussion will be led by a small group of students, the discussion leads. The leads will be responsible for:
- Leading group discussion.
- Presenting the reading guide at the beginning of class
as a summary of the paper and prompting discussion (~5 min).
- You are welcome to also bring slides (of your own making or found), project the reading guide, project the paper, use the whiteboard, etc.
- Part of class will be split into breakouts, one lead per breakout, so each lead should be prepared to lead a discussion (~20-30 min).
- Re-convening the class and summarizing the discussion from their breakout (~5 min).
- Leading the remainder of the discussion.
- Presenting the reading guide at the beginning of class
as a summary of the paper and prompting discussion (~5 min).
- Reading the entire paper well-ahead of time.
- You will only be lead a couple times during the course, so really diving into the paper is important.
- Use all the resources at your disposal to understand the paper, including your co-leads, the instructor, other references, and the fact that you can start reading the paper well-ahead of time.
- Preparing a reading guide for the paper and submitting it to this website.
- The reading guide should be a short document (1-2 pages) that summarizes the paper and highlights the most important points, as well helps the everyone else effectively read the paper in 1-2 hours.
- The reading guide should include a few discussion questions.
- Class discussion is not limited to these of course, but they should help guide the readers as they go through the paper.
- The reading guide is due 48 hours before the discussion begins
via pull request to this repository.
- Go to the page for your discussion and click the “Edit this page” link in the footer to create a pull request.
- The reading guide should also point to any other resources useful for understanding the paper (e.g. other papers, blog posts, presentations, etc.), or that could be good jumping-off points for a project.
If you are not the lead, you still must read the paper and the reading guide before the discussion begins. You may of course start reading the paper early, but you may not have access to the reading guide until 48 hours before the discussion.
Projects
See the Project Proposal page for more details.