From Theory to Systems: A Grounded Approach to Programming Language Education

Will Crichton
DOI: https://doi.org/10.48550/arXiv.1904.06750
2019-04-14
Programming Languages
Abstract:I present a new approach to teaching a graduate-level programming languages course focused on using systems programming ideas and languages like WebAssembly and Rust to motivate PL theory. Drawing on students' prior experience with low-level languages, the course shows how type systems and PL theory are used to avoid tricky real-world errors that students encounter in practice. I reflect on the curricular design and lessons learned from two years of teaching at Stanford, showing that integrating systems ideas can provide students a more grounded and enjoyable education in programming languages. The curriculum, course notes, and assignments are freely available: http://cs242.stanford.edu/f18/
What problem does this paper attempt to address?