← 全部教师资源

教授可见的机器

栈与函数

使用后进先出数据、调用帧和保存/恢复约定。

课堂总时间: 135 分钟 · 3 × 45 分钟

学习目标

  • 解释后进先出与数据栈下溢。
  • 通过调用帧跟踪 PC+1。
  • 复用函数。
  • 用保存和恢复约定保留承诺的调用者寄存器。

课前准备

用不同纸堆表示数据和调用返回地址;展示 SP=255−合计深度。函数定义前放置 HALT。准备正数、零、负数参数及调用者保存值。

三个课时的计划

课时 1: 栈操作:后进先出 · 45 分钟

重点: 压入两个输入,再倒序弹出

检查点: 输入 3、8,输出 8、3。

课时 2: 调用子程序 · 45 分钟

重点: 同一平方函数调用两次

检查点: 3、4 得到 9、16,两次确切返回地址不同。

课时 3: 保留调用者的状态 · 45 分钟

重点: 函数临时工作与保存/恢复

检查点: 调用者保存值保留,数据 POP 不能消耗调用帧。

支持与差异化教学

画出调用和数据两列;嵌套前先逐步执行一次 CALL/RETURN。

延伸思考

在有效 LOOP 内调用,检查不同帧归属;存在调用者时故意对空数据栈 POP,再解释诊断。

评估证据

可复用函数,带注释的执行前后 SP 和寄存器证据,以及明确保留约定,而不是假设所有寄存器自动保留。

课程对应说明

OpenKernel EDU 与下列框架中的概念相呼应。这些联系用于支持教师规划。选择活动时,请检查当前本地年级或课程要求以及评估规定。

安大略省

小学数学中的编程和计算思维;中学计算机研究与数字技术情境中的算法、编程、数据表示和计算机系统。

单元 1–3 涉及状态、数据和计算机,4–8 涉及顺序、控制、算法、调试和表示,9–10 涉及分解、系统和项目。请在本地选择具体年级或课程要求。本模型不代表覆盖所有数学、数字公民、硬件搭建或网络目标。

不列颠哥伦比亚省

应用设计、技能与技术学习中的设计、测试和改进方案;中学计算机研究或编程中的算法、数据和计算机系统概念。

单元 4–10 支持迭代程序设计与解释;单元 1–3、8 和 9 支持数据、状态与系统表示。纸面设计、轨迹证据与反思使过程可见。请核对当前年级或课程措辞;并非涵盖所有 ADST 能力。

阿尔伯塔省

适用科学或编程情境中的计算科学;高中职业与技术研究计算科学(CSE)中的算法、结构化程序、数据与系统概念。

单元 1–8 培养状态、控制与抽象概念,9–10 应用分解与测试。选择适合班级的活动时,请检查当前教学纲要和课程要求。

部分 CSTA 2017 联系

这些概念引用采用 CSTA 2017 框架。在正式学校对应表中使用标识符前,请检查当前采用版本及完整标准的年级范围。

  • 1B-AP-10 — 程序中的顺序、事件、循环和条件。 与单元 1、4、5、9 和 10 相呼应。模拟事件与实体设备事件系统明确区分。
  • 2-AP-12 — 程序中多种控制结构的组合。 通过判断、循环和调用,与单元 4–7 及 10 相呼应。规划复合条件或其他嵌套控制结构时,请使用完整标准。
  • 2-AP-13 — 将问题与子问题分解为可管理的部分。 通过算法角色、可复用服务和工作划分,与单元 6、7、9 和 10 相呼应。
  • 2-AP-14 — 通过可复用过程和参数组织代码。 与单元 7 和 10 相呼应。VM 采用寄存器传递输入和结果的约定,而非高级语言参数声明。
  • 2-AP-17 — 使用多种测试案例进行系统测试和改进。 将可检查挑战与预测、调试解释和不同案例结合时,与此概念相呼应。仅通过测试并不代表达成完整标准。

单元 1–3、8 和 9 也关联计算系统概念。算法、状态、调试、抽象和控制描述本资源教授的思想;具体要求名称和范围应查阅本地框架。

官方资源入口

通过以下官方入口核对当前采用版本以及本地年级或课程要求。