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

04/14/2019
by   Will Crichton, et al.
0

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/

READ FULL TEXT

page 1

page 2

page 3

page 4

research
04/02/2021

Catalogs of C and Python Antipatterns by CS1 Students

Understanding students' programming misconceptions is critical. Doing so...
research
08/24/2021

Language Transformations in the Classroom

Language transformations are algorithms that take a language specificati...
research
10/04/2019

Development of Computational Thinking in High School Students: A Case Study in Chile

Most efforts to incorporate computational thinking in K-12 education hav...
research
11/08/2022

Teaching Blockchain in K9-12: Instruction materials and their assessment

This paper analyses the feasibility of including emerging IT-topics into...
research
11/02/2022

Design and implementation of a Framework for remote experiments in education

Remote Controlled laboratories is a teaching and learning tool that incr...
research
09/12/2022

Innovative ideas for teaching supports: Application to Graph theory

Teaching graph theory with the most adequate tools requires time and ide...
research
12/29/2022

Deep R Programming

Deep R Programming is a comprehensive course on one of the most popular ...

Please sign up or login with your details

Forgot password? Click here to reset