← All teacher resources

Teaching the visible machine

Algorithms with State

Describe and inspect factorial, Fibonacci and reverse-copy invariants.

Total classroom time: 135 minutes · 3 × 45 minutes

Learning outcomes

  • Choose appropriate accumulator identity.
  • Maintain Fibonacci's two-value state safely.
  • Move source/destination pointers.
  • Explain reverse-copy preservation using an invariant.

Before class

prepare factorial examples0,4,6; two number cards for Fibonacci1,1; memory source0..3 and destination16..19. Limit factorial to tested small inputs and explain safe-integer limits.

Three-session plan

Session 1: Factorial and Loop Invariants · 45 minutes

Focus: multiplicative accumulation

Checkpoint: 0! is 1 because zero iterations retain the identity.

Session 2: The Fibonacci Sequence · 45 minutes

Focus: bounded Fibonacci sequence

Checkpoint: first six are 1,1,2,3,5,8 and a temporary prevents lost state.

Session 3: Reverse a Memory Buffer · 45 minutes

Focus: reverse-copy four bytes

Checkpoint: destination4,3,2,1 while source1,2,3,4 stays unchanged.

Support and differentiation

provide variable-role labels and one completed state transition; allow pair narration before typing.

Extend the thinking

explain why equality against100 never bounds Fibonacci; reason about overlapping source/destination before attempting an in-place algorithm.

Assessment evidence

two algorithm traces plus a correct reverse-copy invariant, distinguishing reverse copy from in-place reversal.

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.