研究参与
研究开始前,请主动选择是否参与
只有在参与者主动同意加入这项学术研究后,客户端才会创建模拟器会话或玩家标识。
必要研究资料
用于重放、评分及分析的 Blockly 程序 IR、挑战版本、分数,以及必要的技术会话或提交标识。
可选背景资料
主语言仅记录为 zh、en 等粗粒度代码;UTC 偏移仅记录当前分钟数。“参与学术研究”默认开启两项,也可在“更多设置”中分别关闭。
不会主动收集
不收集浏览器指纹、精确 IANA 时区名称、推断位置、广告标识或跨网站跟踪档案。
数据匿名程度
研究记录可能留有会话标识,服务器也会保存常规安全日志。因此,这些数据虽经过去标识化处理,但并非完全匿名。
问题界定
两个问题,一套系统
教学
全班只能按同一进度学习
硬件成本和监管要求限制了机器人教学,课堂往往只能采用统一的固定进度。但学生的学习速度各不相同,这种错配会同时影响进度较快和较慢的学生。
测量
编程能力难以量化评分
程序不同于选择题答案:作答空间是开放的,结果也是连续值。标准自适应测验并不基于这两项前提,因此必须经过调整,才能用于衡量编程表现。
研究贡献
本研究的新意
- 01
从生成式题库中自适应选题
挑战并非来自固定清单。题族先生成并校准候选题,再用 Fisher 信息量选择适合当前能力估计的题目,因此题库无需逐题手工编写也能扩展。
- 02
保证可解的生成题目
程序生成与可达性存在冲突:外观看似合理的目标也可能无法到达。每个候选题在发布前都必须先求解,把“希望可解”变成明确前提。
- 03
在二分估计器中使用连续分数
编程表现是连续值,但现有估计器并非如此。系统围绕每题的掌握阈值进行保序映射,同时保留原始分数供分析。
- 04
以确定性保障公平
服务器重放每个程序,并根据关节行程估算时间。客户端硬件不会改变结果,这是分数用于竞赛或诊断的必要条件。
方法
自适应层的构建方式
每次尝试后,平台都会重新估计学习表现并匹配下一项挑战。轻松完成便提高难度;遇到困难则降低一步。每名学生都有自己的学习级别。
模型
双参数 Logistic 模型
模型使用 logit 尺度上的能力 θ、题目难度 b 和区分度 a。猜测参数固定为零:作答内容是程序,不是选项,因此不存在蒙对。再估计第三个参数只会拟合噪声。
作答
程序就是作答内容
服务器会重放学习者的程序中间表示并评分。归一化分数以题目的掌握阈值 τ 为中心重新映射,使“高于 τ”与“已掌握”一致,再交给估计器;原始分数另行保存。
选题
先看信息量,再控制曝光率
候选题先按当前 θ 下的信息量排序,再限制曝光次数。因此,同等水平的学习者不会总是收到相同题目,题库也不会被少数题目过度消耗。
生成
难度是生成目标,而不是事后结果
题目族使用净空、可达性压力、预算约束和循环结构等特征预测难度。每个候选题都按目标难度 b 求解;如果参考求解器找不到解,就在生成阶段淘汰。
校准
取得足够证据前均属暂定
新题先进入试用状态:限制曝光量,也不计入正式的能力更新。收集到作答后,在 θ 固定为后验均值的条件下,通过边际似然的牛顿迭代重新拟合难度。
此版本把能力表示为一个综合 θ,并在每次作答中记录维度标签,用于报告。真正的多维模型是后续工作,并非本版本所作的主张。
效度
无人能完成的题目无法测量能力
先画出目标发型,再寄望机械臂能够到达,并不可行。早期有一道挑战要求剪除 91 块头发,但机械臂只能触及 20 块。任务根本无法完成,关卡却没有给出任何提示。
现在先运行求解器。候选目标会先在无碰撞关节空间中扫掠,再交给参考求解器;无法完成的目标会在生成阶段淘汰,绝不会发给学习者。求得的解同时作为关卡的参考成本和参考时间。
可达集合由工具在无碰撞关节空间中扫掠时能够接触的全部体素组成。由于这项计算开销较大,系统只计算一次并缓存为测试夹具。测试随后验证参考解可以重放,且没有目标落在不可达区域。
促成这项设计的失败案例
学习者可能把这种结构性的不可能误以为是自己的失败,而能力估计又会把这次失败当成依据。
可重复性
结果取决于什么
确定性生成
发型生成是挑战配置的纯函数。同一配置始终生成顺序完全相同的体素集合,整个流程不含随机因素。
服务端重放
竞赛成绩来自服务端重放提交的程序,绝不采用浏览器上报的数字。
使用估算时间,而非实测时间
执行时间根据关节行程和设定速度计算,因此它取决于程序,而不是运行程序的设备。
固定的传输契约
应用与服务共用相同的评分和程序类型。协议变更只做增量扩展,因此旧版客户端仍可继续使用。
其他网站