Telemetry · 教育
原型到底记录了什么?
一份面向学生项目的约 20 分钟数据练习。八次尝试与全部 18 条事件记录均为虚构。下载练习材料或 CSV 后,无需账号、学生数据或网络即可完成。
数不同的尝试,不是数行数
设想一个答题应用记录开始、打开题目和提交答案。分别数出每一步出现的不同尝试 ID。为什么七条打开题目的记录只代表六次尝试?哪一步之间少了更多已记录的尝试?没有提交事件,能证明使用者放弃了吗?
20 分钟活动步骤
- 0–5 分钟:找出每种事件。一个尝试 ID 代表一次虚构尝试,而不是一个人。
- 5–12 分钟:按事件统计不同的尝试 ID,比较“开始到打开”和“打开到提交”两段的记录差额。
- 12–20 分钟:提出两种缺少提交事件的可能原因,再设计一个有助于检验其中一种原因的额外事件。有时间可用 SQL 核对计数。
| event | 不同尝试 ID 数 |
|---|---|
flow_started | ________ |
question_opened | ________ |
answer_submitted | ________ |
事件记录
trial_id | event |
|---|---|
| toy-01 | flow_started |
| toy-01 | question_opened |
| toy-01 | answer_submitted |
| toy-02 | flow_started |
| toy-02 | question_opened |
| toy-02 | question_opened |
| toy-02 | answer_submitted |
| toy-03 | flow_started |
| toy-03 | question_opened |
| toy-04 | flow_started |
| toy-04 | question_opened |
| toy-04 | answer_submitted |
| toy-05 | flow_started |
| toy-05 | question_opened |
| toy-06 | flow_started |
| toy-07 | flow_started |
| toy-07 | question_opened |
| toy-08 | flow_started |
用 SQL 核对
把 CSV 导入 SQLite,表名设为 prototype_events;也可以手工计数。以下查询不会发送数据。
SELECT
COUNT(DISTINCT CASE WHEN event = 'flow_started' THEN trial_id END) AS started,
COUNT(DISTINCT CASE WHEN event = 'question_opened' THEN trial_id END) AS opened,
COUNT(DISTINCT CASE WHEN event = 'answer_submitted' THEN trial_id END) AS submitted
FROM prototype_events;教师与组织者参考答案
八次尝试有开始事件,六次有打开题目事件,三次有提交事件。toy-02 有两条打开题目的记录,但只算一次尝试。记录数先减少两次,再减少三次。CSV 无法说明原因:使用者可能停止,应用可能出错,事件也可能未送达。这里没有随机分组,不能证明设计改动有效。若按预期正确记录到 explicit_exit,它可作为主动退出的线索;没有该事件仍不能判断结果。
如果提交日志漏记了呢?
另做一个假设:实际发生了三次提交。请选择有多少条浏览器提交事件未送达日志;实际操作保持不变。
日志中可见的提交次数3
本假设中实际发生的提交次数3
操作没变,记录数却变了。服务器端的接收记录可能有助于核实;仅凭缺少浏览器事件无法判断。
阅读更详细的说明(简体中文)可选的软件实践
无需注册账号,即可在 Telemetry 的浏览器 SQL 实验室查询同一组虚构数据。Telemetry 可保存软件的结构化事件并用 SQL 查询,但本练习不依赖托管服务。若以后要发送虚构事件,公开 $0 方案含 1 GB 存储且无需信用卡。切勿上传真实学生身份、答案或学习记录。
根据 Telemetry 现行条款,创建账号者必须超过 18 岁。未成年学生可以使用纸质练习,无需创建账号。 服务条款
我是 Telemetry 创始人 JR。这份练习借助 AI 起草,尚未在课堂或活动中试用。使用前请审阅;没有学校或黑客松为其背书。
发现错误?欢迎来信,请勿发送学生数据。