This class will cover the principles and practices of domain-specific programming models and compilers for dense and sparse applications in scientific computing, data science, and machine learning. We will study programming models from the recent literature, categorize them, and discuss their properties. We will also discuss promising directions for their compilation, including the separation of algorithm, schedule, and data representation, polyhedral compilation versus rewrite rules, and sparse iteration theory. Prerequisites: CS143 or equivalent
For course details, e.g., Office Hours, see the Course Info page. (Note: this page is currently under construction for Winter 2026, lectures and lecture slides are subject to change.)
| Date | Topic | Readings | |
|---|---|---|---|
| Lecture 1 | Jan 6 (Tue) | Introduction | |
| Lecture 2 | Jan 8 (Thu) | Domain-Specific Compilers | |
| Lecture 3 | Jan 13 (Tue) | Building DSLs | |
| Lecture 4 | Jan 15 (Thu) | Collection-Oriented Languages | |
| Lecture 5 | Jan 20 (Tue) | Dense Programming System | |
| Lecture 6 | Jan 22 (Thu) | Sparse Programming Systems | |
| Lecture 7 | Jan 27 (Tue) | Sparse Iteration Model I | |
| Lecture 8 | Jan 29 (Thu) | Sparse Iteration Model II | |
| Lecture 9 | Feb 3 (Tue) | Project Pitch | |
| Lecture 10 | Feb 5 (Thu) | Fast Compilers | |
| Lecture 11 | Feb 10 (Tue) | Project Discussion I | |
| Lecture 12 | Feb 12 (Thu) | Project Discussion II | |
| Lecture 13 | Feb 17 (Tue) | TBD | |
| Lecture 14 | Feb 19 (Thu) | TBD | |
| Lecture 15 | Feb 24 (Tue) | TBD | |
| Lecture 16 | Feb 26 (Thu) | TBD | |
| Lecture 17 | Mar 3 (Tue) | TBD | |
| Lecture 18 | Mar 5 (Thu) | TBD | |
| Lecture 19 | Mar 10 (Tue) | Project demo | |
| Lecture 20 | Mar 12 (Thu) | Project demo |