Beyond SICP -- Design and Implementation of a Notional Machine for Scheme
Kyriel Abad, Martin Henz

TL;DR
This paper develops a simplified notional machine for Scheme, based on the environment model, to enhance understanding of Scheme's dynamic features like call/cc in CS1 education, supported by visualizations and a web implementation.
Contribution
It introduces a notional machine for SICP Scheme that is accessible for beginners and extends it to cover advanced features like call/cc, with visualizations and a web-based tool.
Findings
The notional machine effectively explains Scheme's environment and control flow.
Visualizations aid in understanding complex Scheme features.
The approach is suitable for integration into introductory CS courses.
Abstract
Computer science education has been at the heart of Scheme from the beginning. The language was designed in the 1970s concurrently with the MIT course 6.001 and the textbook "Structure and Interpretation of Computer Programs" (SICP). To explain the scope of variables at run time in the presence of higher-order procedures, SICP introduces a mental model called the environment model, along with a pictorial representation of environments and data structures. Recently, the concept of notional machines has emerged in computer science education: a predictive set of abstractions that define the structure and behavior of a computational device. Proponents of notional machines argue that learners benefit when complex dynamic concepts such as the computational structure of Scheme are accompanied with concise notional machines. In this paper, we start with a sublanguage of Scheme sufficient for…
Peer Reviews
No public reviews on file for this paper yet. If you reviewed it on a platform where reviews are public (OpenReview, ICLR, NeurIPS, ICML), you can paste yours below so the community can read it here.
Videos
No videos yet. Explain this paper in a talk, walkthrough, or lecture? Add one.
Taxonomy
TopicsParallel Computing and Optimization Techniques · Embedded Systems Design Techniques
