Summary From Theory to Systems Programming Language Education arxiv.org
4,165 words - PDF document - View PDF document
One Line
A new curriculum at Stanford University integrates systems programming languages with programming language theory to provide a grounded and enjoyable education, focusing on improving students' mental models of computation and expanding their understanding of program analysis techniques.
Slides
Slide Presentation (7 slides)
Key Points
- The curriculum integrates systems ideas with programming language theory
- Systems programming languages like WebAssembly and Rust are used to motivate the study of programming language theory
- The curriculum aims to improve students' mental models of computation and expand their understanding of program analysis techniques
- Practical assignments include implementing interpreters and libraries in languages like OCaml and the typed lambda calculus
- The course covers topics such as type theory, functional programming, logic and semantics, and curriculum design
Summary
223 word summary
The summary discusses the different topics covered in a programming language education course. It mentions the use of formal verification, mechanizing and verifying specifications, interaction-based languages, teaching programming languages through a proof-based approach, and the importance of types in programming languages. The summary also highlights the use of WebAssembly and session types in the course curriculum. It mentions the integration of theory and systems programming, as well as the positive feedback received from students. A new curriculum for teaching a graduate-level programming languages course at Stanford University is presented. The curriculum integrates systems ideas with programming language theory to provide students with a more grounded and enjoyable education. The course focuses on using systems programming languages like WebAssembly and Rust to motivate the study of programming language theory. The curriculum aims to improve students' mental models of computation, enable formal reasoning, and expand their understanding of program analysis techniques. The target audience for the course is senior undergraduate or master's students. The curriculum includes practical assignments where students implement interpreters and libraries in languages like OCaml and the typed lambda calculus. The course also covers topics such as type theory, functional programming, logic and semantics, and curriculum design. The author reflects on their experience teaching the course and discusses the challenges and benefits of integrating systems and programming language concepts in the curriculum.