This paper presents a framework that has been developed to support code-level tracing of the algorithm visualization capabilities of the Map-based Educational Tools for Algorithm Learning (METAL) project. METAL provides graph data based on real-world highway systems and tools to visualize that data and algorithms which operate on it. Data is shown plotted on maps and in text, color-coded to indicate the progress of the algorithm. The new code-level tracing framework allows specific algorithms to be implemented as a series of small actions, most of which correspond to lines of code that can be highlighted as they are executed. This allows a student to see how specific lines of code affect the data structures and variables as the algorithm makes progress toward a solution.
In advanced programming languages curricula, the λ-calculus often serves as the foundation for teaching the formal concepts of language syntax and semantics. LambdaLab is an interactive tool that helps students practice λ-calculus reduction and build intuition for its behavior. To motivate the tool, we survey student answers to λ-calculus assignments in three previous classes and sort mistakes into six categories. LambdaLab addresses many of these problems by replicating the experience of working through examples with an instructor. It uses visualizations to convey AST structure and reducible expressions, interactive reduction to support self-guided practice, configurable reduction strategies, and support for encodings via a simple macro system. To mimic informal, in-class treatment of macros, we develop a new semantics that describes when to expand and contract them. We use case studies to describe how LambdaLab can fit into student workflows and address real mistakes.