← All teacher resources

Teaching the visible machine

The Stack and Functions

Use LIFO data, call frames and save/restore conventions.

Total classroom time: 135 minutes · 3 × 45 minutes

Learning outcomes

  • Explain LIFO and data underflow.
  • Follow PC+1 through a call frame.
  • Reuse a function.
  • Preserve promised caller registers with a save/restore convention.

Before class

use separate paper piles for data values and call return addresses; show SP=255−combined depth. Place HALT before function definitions. Prepare positive/zero/negative arguments and caller-saved values.

Three-session plan

Session 2: Calling a Subroutine · 45 minutes

Focus: one square function called twice

Checkpoint: 3,4 yield 9,16 and exact return addresses differ.

Session 3: Preserving a Caller’s State · 45 minutes

Focus: function scratch work plus save/restore

Checkpoint: caller's saved value survives and data POP cannot consume a call frame.

Support and differentiation

draw separate call and data columns; step one CALL/RETURN before nesting.

Extend the thinking

call inside an active LOOP and inspect distinct frame ownership; deliberately POP an empty data stack while a caller exists, then explain the diagnostic.

Assessment evidence

reusable function and annotated before/after SP/register evidence, plus a clear preservation agreement rather than assuming all registers automatically survive.

Curriculum mapping notes

OpenKernel EDU aligns with concepts in the following frameworks. These connections support teacher planning. Check your current local grade or course expectations and assessment requirements when selecting activities.

Ontario

Coding and computational thinking in elementary mathematics; algorithms, programming, data representation and computer systems in secondary computer studies/digital technology contexts.

Units 1–3 address state/data/computers, 4–8 sequence/control/algorithm/debugging/representation, and 9–10 decomposition/systems/projects. Select actual grade/course expectations locally. This model does not establish coverage of all mathematical, digital citizenship, hardware-building or networking outcomes.

British Columbia

Applied Design, Skills and Technologies learning through designing, testing and refining solutions; secondary computer studies/programming concepts involving algorithms, data and computer systems.

Units 4–10 support iterative program design and explanation; units 1–3, 8 and 9 support data/state/system representation. Paper design, trace evidence and reflection make the process visible. Check current grade/course wording; not every ADST competency is covered.

Alberta

Computing science in applicable science/programming contexts; senior-high Career and Technology Studies Computing Science (CSE) concepts in algorithms, structured programs, data and systems.

Units 1–8 develop state, control and abstraction; units 9–10 apply decomposition and testing. Check the current program of studies and course requirements when deciding which activities suit your class.

Selected CSTA 2017 connections

These concept references use the CSTA 2017 framework. Check the current adopted edition and the full standard’s grade-level scope before using an identifier in a formal school mapping.

  • 1B-AP-10 — Sequences, events, loops and conditionals in programs. Aligns with units 1, 4, 5, 9 and 10. Simulated events are distinguished from a physical-device event system.
  • 2-AP-12 — Combinations of control structures in programs. Aligns with units 4–7 and 10 through decisions, loops and calls. Use the complete standard when planning work on compound conditionals or other nested control structures.
  • 2-AP-13 — Decomposing problems and subproblems into manageable parts. Aligns with units 6, 7, 9 and 10 through algorithm roles, reusable services and partitioned work.
  • 2-AP-14 — Reusable procedures and parameters for organizing code. Aligns with units 7 and 10. The VM uses register-passed input/result conventions, rather than high-level parameter declarations.
  • 2-AP-17 — Systematic testing and refining with a range of test cases. Aligns with checked challenges when paired with prediction, debugging explanations and varied cases. A pass alone does not demonstrate the complete standard.

Units 1–3, 8 and 9 also connect to the Computing Systems concept. Algorithm, state, debugging, abstraction and control describe the ideas taught in this resource; consult the local framework for its expectation names and scope.

Official source landing links

Use these official landing pages to check the current adopted edition and local grade or course expectations.