Snap! microworld & AI 助手

judge

采用测试驱动的风格 评估当前用户是否完成某个目标任务 judge 本身可以构建为 Snap! 的一个角色。这个角色以 system_ 开头, 用户无法修改它。 当前的 judge 角色代码,类似于测试驱动的代码,如果用户成功完成的任务,这些测试代码将可以通过。这样一来,用户拥有解决问题的自由度,同时不需要人工审查。 Snap! 的元编程能力可以允许 judge 支持各种评估机制:

  • 用户是否经过了某个特定位置
    • 是否踩到特定颜色的砖块上
    • 是否采集了沿途的水晶
  • 用户使用的积木数量是否超过限制?
  • 用户是否使用了指定的积木(如必须包含循环)
  • 用户是否使用了递归算法解决问题(检查某个自定义积木是否包含自身)

code org 关卡练习

将 code org 的关卡模式视为一种 microworld, 可以帮助用户锻炼一些特定技能。 但技能本身并不重要, 它类似肌肉训练, 一旦具备基本能力,就应该去做对自己更有意义的项目(社区/项目/同伴/热情)

通过以下方式在 Snap! 中构建 code org 关卡:

  • judge(评判者) 建模为角色
  • 关卡建模为场景

以上所有功能都可以实现为一个普通 Snap! 项目

AI 助手

AI 助手可能起到的作用

  • 解释当前关卡
  • 根据用户当前的境地(诸如出错或者卡住),给与合适的引导
  • 根据预制的答案(solution)给与引导式讲解(对比用户与答案的差距, 给出针对性引导)

如何实施

student 页面

js function 隐藏 system_ 角色