{
  "version": 7,
  "questionStates": [],
  "learningPathStates": [],
  "learningPointStates": [],
  "learningPointEntries": [],
  "exportedAt": "2026-11-03T11:39:13.507Z",
  "timeZone": "Asia/Shanghai",
  "areas": [
    {
      "id": "demo-area-ai",
      "name": "AI",
      "nameKey": "ai",
      "color": "#8b8cf5",
      "createdAt": "2026-10-05T14:10:38.852Z",
      "updatedAt": "2026-10-05T14:10:38.852Z"
    },
    {
      "id": "demo-area-english",
      "name": "English",
      "nameKey": "english",
      "color": "#56b8a6",
      "createdAt": "2026-10-05T14:10:38.863Z",
      "updatedAt": "2026-10-05T14:10:38.863Z"
    },
    {
      "id": "demo-area-reading",
      "name": "Reading",
      "nameKey": "reading",
      "color": "#dfa45f",
      "createdAt": "2026-10-05T14:10:38.871Z",
      "updatedAt": "2026-10-05T14:10:38.871Z"
    }
  ],
  "topics": [
    {
      "id": "demo-topic-neural-networks",
      "name": "Neural Networks",
      "nameKey": "neural networks",
      "areaId": "demo-area-ai",
      "createdAt": "2026-10-05T14:10:38.856Z",
      "updatedAt": "2026-10-05T14:10:38.856Z"
    },
    {
      "id": "demo-topic-transformer",
      "name": "Transformer",
      "nameKey": "transformer",
      "areaId": "demo-area-ai",
      "createdAt": "2026-10-05T14:10:38.860Z",
      "updatedAt": "2026-10-05T14:10:38.860Z"
    },
    {
      "id": "demo-topic-listening",
      "name": "Listening",
      "nameKey": "listening",
      "areaId": "demo-area-english",
      "createdAt": "2026-10-05T14:10:38.866Z",
      "updatedAt": "2026-10-05T14:10:38.866Z"
    },
    {
      "id": "demo-topic-vocabulary",
      "name": "Vocabulary",
      "nameKey": "vocabulary",
      "areaId": "demo-area-english",
      "createdAt": "2026-10-05T14:10:38.869Z",
      "updatedAt": "2026-10-05T14:10:38.869Z"
    },
    {
      "id": "demo-topic-psychology",
      "name": "Psychology",
      "nameKey": "psychology",
      "areaId": "demo-area-reading",
      "createdAt": "2026-10-05T14:10:38.874Z",
      "updatedAt": "2026-10-05T14:10:38.874Z"
    },
    {
      "id": "cmuw9nmc90002qm07tp9qtk3i",
      "name": "Daily Practice",
      "nameKey": "daily practice",
      "areaId": "demo-area-english",
      "createdAt": "2026-10-06T05:56:56.410Z",
      "updatedAt": "2026-10-06T05:56:56.410Z"
    }
  ],
  "entries": [
    {
      "id": "cmuw9nmcm0005qm07lb7pocp5",
      "date": "2026-10-06T00:00:00.000Z",
      "areaId": "demo-area-english",
      "topicId": "cmuw9nmc90002qm07tp9qtk3i",
      "title": "英语 Day 1 · 第 1 天：第一个早晨",
      "contentFormat": "plain",
      "importedCaptures": [],
      "durationMinutes": null,
      "notes": "来自英语学习网站的真实完成记录（自评）。\n\n本次完成：词句学习。\n\n当天表达：hardware · device · monitor · keyboard · mouse · power button · Nice to meet you. · How are you doing? · My name is ... · I'm new here. · Where are you from? · See you later. · repository · README file · source code · project folder · code hosting · public repository\n\n时长以 Trace 中确认保存的分钟数为准；完成练习不等于已经掌握。",
      "reflection": null,
      "question": null,
      "nextAction": "继续 Day 1：听懂故事。",
      "nextStatus": "DONE",
      "sourceTitle": "英语日课 Day 1",
      "sourceUrl": "https://137.175.93.223:18443/courses/speaking-vocab/vocabulary-month/?day=1&practice=listen",
      "continuedFromId": null,
      "createdAt": "2026-10-06T05:56:56.422Z",
      "updatedAt": "2026-10-25T12:27:39.663Z",
      "deletedAt": null
    }
  ],
  "tags": [
    {
      "id": "demo-tag",
      "name": "demo",
      "nameKey": "demo",
      "createdAt": "2026-10-05T14:10:38.877Z",
      "updatedAt": "2026-10-05T14:10:38.877Z"
    },
    {
      "id": "cmuw9nmcf0003qm07445idio5",
      "name": "英语同步",
      "nameKey": "英语同步",
      "createdAt": "2026-10-06T05:56:56.416Z",
      "updatedAt": "2026-10-06T05:56:56.416Z"
    }
  ],
  "entryTags": [
    {
      "entryId": "cmuw9nmcm0005qm07lb7pocp5",
      "tagId": "cmuw9nmcf0003qm07445idio5",
      "createdAt": "2026-10-06T05:56:56.422Z"
    }
  ],
  "entryImports": [
    {
      "source": "english",
      "externalId": "whatnever:speaking-vocab:1:2026-10-06",
      "entryId": "cmuw9nmcm0005qm07lb7pocp5",
      "content": {
        "notes": "来自英语学习网站的真实完成记录（自评）。\n\n本次完成：词句学习。\n\n当天表达：hardware · device · monitor · keyboard · mouse · power button · Nice to meet you. · How are you doing? · My name is ... · I'm new here. · Where are you from? · See you later. · repository · README file · source code · project folder · code hosting · public repository\n\n时长以 Trace 中确认保存的分钟数为准；完成练习不等于已经掌握。",
        "title": "英语 Day 1 · 第 1 天：第一个早晨",
        "sourceUrl": "https://137.175.93.223:18443/courses/speaking-vocab/vocabulary-month/?day=1&practice=listen",
        "nextAction": "继续 Day 1：听懂故事。",
        "sourceTitle": "英语日课 Day 1"
      },
      "sourceHash": "7214c3b26042b94dda08611fe49aa007148dab4d5cbf6dde01099d9d83abcb42",
      "createdAt": "2026-10-06T05:56:56.437Z",
      "updatedAt": "2026-10-25T12:27:39.665Z"
    }
  ],
  "englishSessions": [],
  "captures": [],
  "plans": [],
  "studyGoals": [],
  "learning": {
    "version": 1,
    "roadmaps": [
      {
        "id": "a0582307-4fcb-4cbe-842b-c38e3b69d05f",
        "requestKey": "977b950a-33c3-4146-ba1e-24a66930a6be",
        "title": "AI学习计划 36个月方向与12周内容",
        "description": "36个月作为方向，前12个内容周的144条编程、英语与阅读任务放入前3个月。时间随白/夜/休/休轮班、临时调班和放假调整，未过关时延长当前内容。已学到for循环，首项先做15分钟起点检查，不自动认定掌握或跳过任务。每日英语15分钟、阅读20分钟为目标，按实际可用预算执行，日课和复习均纳入当日总量；本次不新增虚构任务。原工作簿日期仅供参考，本路线没有安排具体日期或开始时间；需要正式排程时按可用时间预览确认。",
        "archived": false,
        "createdAt": "2026-10-11T04:13:30.080Z",
        "updatedAt": "2026-10-11T04:13:30.080Z",
        "stages": [
          {
            "id": "71d83d4b-9a25-4080-82ca-1f6346e5532b",
            "roadmapId": "a0582307-4fcb-4cbe-842b-c38e3b69d05f",
            "title": "第01个月 编程起步",
            "goal": "阶段：基础\n重点内容：Python变量/条件/循环/函数；逐行读代码\n补充：增补Mac终端位置与文件路径、读报错和逐轮调试；在函数练习中写最小assert，在CSV项目后使用本地Git保存代码版本，不学习复杂分支。\n交付物：写出学习时长/成绩检查小程序\n沿用学习时长脚本，附边界检查与本地提交。\n过关标准：独立解释每一行；边界测试正确\n能独立运行、定位错误、解释循环及函数；个人记录不提交。\n推进条件：循环与函数未稳先补练；工具步骤占用原练习时间。\n英语：基础句型、30–120词选段、20–40秒口述。阅读：观点/证据/疑问与3句复述。",
            "order": 0,
            "units": [
              {
                "id": "54f80f0b-ff24-4418-8de5-89a4996386c6",
                "stageId": "71d83d4b-9a25-4080-82ca-1f6346e5532b",
                "title": "AI-W01-D1 比较运算符 <= 与 >=",
                "kind": "programming",
                "order": 0,
                "estimatedMinutes": 15,
                "firstStep": "先用10–15分钟检查比较边界、range和列表求和，衔接已学for循环；按结果决定复习或续学。",
                "exercise": "起点检查：1.解释 < 与 <= 并预测边界值；2.预测 range(5) 与 range(1, 6)；3.独立对固定分钟列表求和，解释累计变量为何放在循环前。能独立做的内容改为短复习，需要提示的内容继续练习。当前单元按15分钟检查预留；以下原比较练习保留供检查后回练，未证实的任务不自动跳过。\n内容周：1\n知识范围：<=（小于等于）、>=（大于等于）、布尔值 Boolean；对照 < 与 <= 的边界区别\n具体练习：写出 score=59、60、61 在四个运算符下的真假，逐行中文注释；独立运行8种判断\n验收标准：不看笔记说清 <= 与 < 的差别，正确预测至少7/8个结果\n交付物：w01_d1_comparison.py\n推荐资料：https://docs.python.org/3/tutorial/",
                "materialUrl": "https://docs.python.org/3/tutorial/",
                "materialTitle": "Python 官方教程",
                "mastery": "unassessed",
                "updatedAt": "2026-10-11T04:13:30.080Z"
              },
              {
                "id": "3cd71573-5d6e-43fc-8e99-44db2fe482c4",
                "stageId": "71d83d4b-9a25-4080-82ca-1f6346e5532b",
                "title": "EN-W01-S1 英语词语与句型：第1周",
                "kind": "english",
                "order": 1,
                "estimatedMinutes": 20,
                "firstStep": "复习2分钟、词语6分钟、句型6分钟、听读4分钟、记录2分钟。保留原6词，选3词主动运用。先猜再查；例句：This is a variable.（这是一个变量。）用系统朗读播放，跟读并替换一个词。",
                "exercise": "内容周：1\n知识范围：variable, value, compare, condition, operator, boolean；句型：This is…；The … is…；听读采用系统合成朗读\n具体练习：复习2分钟、词语6分钟、句型6分钟、听读4分钟、记录2分钟。保留原6词，选3词主动运用。先猜再查；例句：This is a variable.（这是一个变量。）用系统朗读播放，跟读并替换一个词。\n验收标准：合上笔记说出至少3个重点词的意思，并用本周句型造一句与练习有关的话；能跟读示例、指出一个未听清的词。遇到困难记为待复习，不要求一次记住全部6词。\n交付物：w01_english_s1.md：6词词卡、1个自写例句、1个待复习词\n推荐资料：https://docs.python.org/3/tutorial/controlflow.html",
                "materialUrl": "https://docs.python.org/3/tutorial/controlflow.html",
                "materialTitle": "Python 官方教程",
                "mastery": "unassessed",
                "updatedAt": "2026-10-11T04:13:30.080Z"
              },
              {
                "id": "31d59763-836c-4754-9e07-f6e9d67b2943",
                "stageId": "71d83d4b-9a25-4080-82ca-1f6346e5532b",
                "title": "AI-W01-D2 if / elif / else 与缩进",
                "kind": "programming",
                "order": 2,
                "estimatedMinutes": 90,
                "firstStep": "实现分数 <60、60–89、>=90 的3档提示，额外测试59、60、89、90",
                "exercise": "内容周：1\n知识范围：if 条件；elif 追加条件；else 兜底；缩进 Indentation\n具体练习：实现分数 <60、60–89、>=90 的3档提示，额外测试59、60、89、90\n验收标准：独立指出条件顺序和缩进作用，4个边界样本结果正确\n交付物：w01_d2_grade.py\n前置任务：AI-W01-D1\n推荐资料：https://docs.python.org/3/tutorial/",
                "materialUrl": "https://docs.python.org/3/tutorial/",
                "materialTitle": "Python 官方教程",
                "mastery": "unassessed",
                "updatedAt": "2026-10-11T04:13:30.080Z"
              },
              {
                "id": "7f58fe02-f699-4afb-a6ff-1f37f3e5bae2",
                "stageId": "71d83d4b-9a25-4080-82ca-1f6346e5532b",
                "title": "RD-W01-S1 阅读与提问：第1周摘录",
                "kind": "reading",
                "order": 3,
                "estimatedMinutes": 20,
                "firstStep": "在20分钟内读14分钟、记录6分钟；保留书名/页码或URL/小节，只摘一两句，再写自己的理解。带着问题读：这个观点是什么？作者拿什么支持它？我哪里没理解？选段不含所需内容时，明确写“本段未提供”，继续保留阅读位置。",
                "exercise": "内容周：1\n知识范围：观点、证据、疑问；优先接续正在读的书/本周资料，不要求每周换书\n具体练习：在20分钟内读14分钟、记录6分钟；保留书名/页码或URL/小节，只摘一两句，再写自己的理解。带着问题读：这个观点是什么？作者拿什么支持它？我哪里没理解？选段不含所需内容时，明确写“本段未提供”，继续保留阅读位置。\n验收标准：留下准确来源位置、一条短摘录和一句自己的理解；能区分原文与自己的判断，并回答至少一个阅读问题。没有证据时指出缺口，未读完不算失败；下一次从已保存位置继续。\n交付物：w01_reading_s1.md：来源/位置、短摘录、自述、问题、下次位置\n推荐资料：自选书籍；不预设书名",
                "materialUrl": "",
                "materialTitle": "自选书籍；不预设书名",
                "mastery": "unassessed",
                "updatedAt": "2026-10-11T04:13:30.080Z"
              },
              {
                "id": "259c9d93-106c-4e66-9959-1ed6b44603d7",
                "stageId": "71d83d4b-9a25-4080-82ca-1f6346e5532b",
                "title": "AI-W01-D3 and / or / not 逻辑运算",
                "kind": "programming",
                "order": 4,
                "estimatedMinutes": 90,
                "firstStep": "使用分数与出勤率组合判断，手写4组逻辑真值表，再用Python验证",
                "exercise": "内容周：1\n知识范围：and且、or或、not非、True与False；短路判断入门\n具体练习：使用分数与出勤率组合判断，手写4组逻辑真值表，再用Python验证\n验收标准：能解释 and 与 or 的不同；4组真值表全对\n交付物：w01_d3_logic.py\n前置任务：AI-W01-D2\n推荐资料：https://docs.python.org/3/tutorial/",
                "materialUrl": "https://docs.python.org/3/tutorial/",
                "materialTitle": "Python 官方教程",
                "mastery": "unassessed",
                "updatedAt": "2026-10-11T04:13:30.080Z"
              },
              {
                "id": "0f2784c8-e918-4298-90de-59dda8ce028b",
                "stageId": "71d83d4b-9a25-4080-82ca-1f6346e5532b",
                "title": "EN-W01-S2 英语短文与听读：第1周",
                "kind": "english",
                "order": 5,
                "estimatedMinutes": 20,
                "firstStep": "复习2分钟、选段阅读8分钟、听读5分钟、复述3分钟、记录2分钟。读资源页的30—60词，圈3词；用系统朗读听：The value is ten.（数值是10。），遮住文字再听。原文太难时用本周3句示例替代。",
                "exercise": "内容周：1\n知识范围：if Statements（条件语句），只选2—4句；30—60词；句型：This is…；The … is…；先尝试理解，再看中文解释\n具体练习：复习2分钟、选段阅读8分钟、听读5分钟、复述3分钟、记录2分钟。读资源页的30—60词，圈3词；用系统朗读听：The value is ten.（数值是10。），遮住文字再听。原文太难时用本周3句示例替代。\n验收标准：不用逐字翻译，能用中文说出选段或3句示例的大意；听读后辨认2个关键词，再核对文字。记录一处理解变化或疑问；替代材料需标注，暂不懂的地方进入下次复习。\n交付物：w01_english_s2.md：URL/小节、3词、大意、听懂词、疑问；标注是否用示例替代\n推荐资料：https://docs.python.org/3/tutorial/controlflow.html",
                "materialUrl": "https://docs.python.org/3/tutorial/controlflow.html",
                "materialTitle": "Python 官方教程",
                "mastery": "unassessed",
                "updatedAt": "2026-10-11T04:13:30.080Z"
              },
              {
                "id": "e2ce929b-f716-49c5-9e57-0b05263b4eea",
                "stageId": "71d83d4b-9a25-4080-82ca-1f6346e5532b",
                "title": "AI-W01-D4 嵌套条件和边界检查",
                "kind": "programming",
                "order": 6,
                "estimatedMinutes": 90,
                "firstStep": "将分数及缺勤情况组合成两层条件；测试临界点0、59、60、100",
                "exercise": "内容周：1\n知识范围：嵌套 if、比较优先级、边界值；梳理输入变量与判断流程\n具体练习：将分数及缺勤情况组合成两层条件；测试临界点0、59、60、100\n验收标准：能逐行讲解条件执行路径，至少5个测试结果正确\n交付物：w01_d4_nested_if.py\n前置任务：AI-W01-D3\n推荐资料：https://docs.python.org/3/tutorial/",
                "materialUrl": "https://docs.python.org/3/tutorial/",
                "materialTitle": "Python 官方教程",
                "mastery": "unassessed",
                "updatedAt": "2026-10-11T04:13:30.080Z"
              },
              {
                "id": "ff3c952e-e51e-49fe-aca8-b277b9a24592",
                "stageId": "71d83d4b-9a25-4080-82ca-1f6346e5532b",
                "title": "AI-W03-D4 局部变量与作用域",
                "kind": "programming",
                "order": 30,
                "estimatedMinutes": 90,
                "firstStep": "预测4段作用域代码输出，修复一次变量未定义错误",
                "exercise": "内容周：3\n知识范围：local/global基础；函数内部变量与外部变量\n具体练习：预测4段作用域代码输出，修复一次变量未定义错误\n验收标准：能解释局部变量为什么不能在函数外直接访问\n交付物：w03_d4_scope.py\n前置任务：AI-W03-D3\n推荐资料：https://docs.python.org/3/tutorial/",
                "materialUrl": "https://docs.python.org/3/tutorial/",
                "materialTitle": "Python 官方教程",
                "mastery": "unassessed",
                "updatedAt": "2026-10-11T04:13:30.080Z"
              },
              {
                "id": "2e8f9580-df15-40fa-a60f-a42148449564",
                "stageId": "71d83d4b-9a25-4080-82ca-1f6346e5532b",
                "title": "AI-W01-D5 比较判断调错与运行路径",
                "kind": "programming",
                "order": 7,
                "estimatedMinutes": 90,
                "firstStep": "先预测6段短代码输出，再在指定目录运行；修正原3处条件/缩进错误，记录一条实际运行命令。",
                "exercise": "内容周：1\n知识范围：输出预测与条件调错；嵌入10分钟理解pwd当前位置、ls列文件、cd切目录，以及脚本路径。\n具体练习：先预测6段短代码输出，再在指定目录运行；修正原3处条件/缩进错误，记录一条实际运行命令。\n验收标准：至少5/6预测正确，解释3个错误；能在访达找到脚本，并说清当前目录与文件路径的区别。\n交付物：原调错脚本＋运行命令＋一条错误原因记录\n前置任务：AI-W01-D4\n推荐资料：https://docs.python.org/zh-cn/3/tutorial/",
                "materialUrl": "https://docs.python.org/zh-cn/3/tutorial/",
                "materialTitle": "Python 官方教程",
                "mastery": "unassessed",
                "updatedAt": "2026-10-11T04:13:30.080Z"
              },
              {
                "id": "c3b2ce67-0541-45da-951c-d904ce8c318b",
                "stageId": "71d83d4b-9a25-4080-82ca-1f6346e5532b",
                "title": "EN-W01-S3 英语三句总结与口头解释：第1周",
                "kind": "english",
                "order": 8,
                "estimatedMinutes": 20,
                "firstStep": "复习3分钟、写句7分钟、听读2分钟、口头解释6分钟、记录2分钟。围绕实际练习写3句，再遮住文本说20—40秒。参考：I compare two values.（我比较两个值。）先自己写，再请AI或老师给一处修改及理由。",
                "exercise": "内容周：1\n知识范围：本周句型：This is…；The … is…；示例只供改写，不能当成真实学习日志\n具体练习：复习3分钟、写句7分钟、听读2分钟、口头解释6分钟、记录2分钟。围绕实际练习写3句，再遮住文本说20—40秒。参考：I compare two values.（我比较两个值。）先自己写，再请AI或老师给一处修改及理由。\n验收标准：3句含一个实际做过的动作、结果或疑问，意思清楚；能借关键词口头解释20—40秒，允许停顿。标记一处修正和下周需回忆的词；录音可选，不以口音或流利程度作为唯一标准。\n交付物：w01_english_s3.md：自写3句、1处修正及理由、口述自检、Next；可选录音\n推荐资料：https://docs.python.org/3/tutorial/controlflow.html",
                "materialUrl": "https://docs.python.org/3/tutorial/controlflow.html",
                "materialTitle": "Python 官方教程",
                "mastery": "unassessed",
                "updatedAt": "2026-10-11T04:13:30.080Z"
              },
              {
                "id": "3e65b410-9b62-4164-8f21-8cbe9eff7d04",
                "stageId": "71d83d4b-9a25-4080-82ca-1f6346e5532b",
                "title": "AI-W01-D6 小项目：学习分钟检查器V1",
                "kind": "programming",
                "order": 9,
                "estimatedMinutes": 120,
                "firstStep": "独立写分钟分类：<0非法、=0未学习、1–29短时、≥30达标；测试-1、0、1、29、30等10组输入。",
                "exercise": "内容周：1\n知识范围：条件分类与10组测试；用学习分钟替换成绩案例，区分非法负数、未学习、短时学习、达到练习目标。本次输入限整数分钟；小数输入作为后续验证练习。\n具体练习：独立写分钟分类：<0非法、=0未学习、1–29短时、≥30达标；测试-1、0、1、29、30等10组输入。\n验收标准：10组测试≥9组正确，4个边界全对；逐行口述条件执行过程，不把达标时长当掌握证明。\n交付物：w01_d6_study_check.py＋10组预期/实际结果\n前置任务：AI-W01-D5\n推荐资料：https://docs.python.org/zh-cn/3/tutorial/",
                "materialUrl": "https://docs.python.org/zh-cn/3/tutorial/",
                "materialTitle": "Python 官方教程",
                "mastery": "unassessed",
                "updatedAt": "2026-10-11T04:13:30.080Z"
              },
              {
                "id": "296090fa-5648-486c-9b28-c957e7974540",
                "stageId": "71d83d4b-9a25-4080-82ca-1f6346e5532b",
                "title": "RD-W01-S2 阅读复述与应用：第1周",
                "kind": "reading",
                "order": 10,
                "estimatedMinutes": 20,
                "firstStep": "回忆3分钟、接续阅读10分钟、短输出7分钟。把一句摘录分别标出观点和依据，缺少依据时写“本段未提供”。合上资料，用3句说明“读到什么—自己的例子或判断—尚未解决的问题”，再核对一处可能误读，保存下一次位置。",
                "exercise": "内容周：1\n知识范围：观点、证据、疑问；阅读、回忆、短输出都计入原20分钟\n具体练习：回忆3分钟、接续阅读10分钟、短输出7分钟。把一句摘录分别标出观点和依据，缺少依据时写“本段未提供”。合上资料，用3句说明“读到什么—自己的例子或判断—尚未解决的问题”，再核对一处可能误读，保存下一次位置。\n验收标准：不用照抄也能复述一个观点，给出一个自己的例子或核对问题；标明原文位置、理解限度和下次位置。已有疑问未查清可继续保留，不要求同一时段读完一章或写长笔记。\n交付物：w01_reading_s2.md：3句复述、自制例子/核对问题、纠正或局限、下次位置\n推荐资料：自选书籍；不预设书名",
                "materialUrl": "",
                "materialTitle": "自选书籍；不预设书名",
                "mastery": "unassessed",
                "updatedAt": "2026-10-11T04:13:30.080Z"
              },
              {
                "id": "4f87f498-fd08-4393-b8c8-47ac419d06cd",
                "stageId": "71d83d4b-9a25-4080-82ca-1f6346e5532b",
                "title": "AI-W01-D7 本周闭卷复盘与错题回炉",
                "kind": "programming",
                "order": 11,
                "estimatedMinutes": 60,
                "firstStep": "不用笔记写一个简单判断程序；整理3个最容易搞错的问题",
                "exercise": "内容周：1\n知识范围：闭卷回忆 <=、if/elif/else、and/or/not；记录卡点与下一步\n具体练习：不用笔记写一个简单判断程序；整理3个最容易搞错的问题\n验收标准：闭卷任务可运行；把没掌握的知识标记待复习，不强行升级\n交付物：w01_review.md\n前置任务：AI-W01-D6\n推荐资料：https://docs.python.org/3/tutorial/",
                "materialUrl": "https://docs.python.org/3/tutorial/",
                "materialTitle": "Python 官方教程",
                "mastery": "unassessed",
                "updatedAt": "2026-10-11T04:13:30.080Z"
              },
              {
                "id": "da131121-9244-433b-a5c0-b4dfea9d4859",
                "stageId": "71d83d4b-9a25-4080-82ca-1f6346e5532b",
                "title": "AI-W02-D1 for 循环与 range()",
                "kind": "programming",
                "order": 12,
                "estimatedMinutes": 90,
                "firstStep": "用range(5)输出0到4；手算3个循环输出；逐行中文注释",
                "exercise": "内容周：2\n知识范围：for / in / range；循环变量；停止边界\n具体练习：用range(5)输出0到4；手算3个循环输出；逐行中文注释\n验收标准：能解释range(5)不包含5、循环变量每轮如何变化\n交付物：w02_d1_for.py\n前置任务：AI-W01-D7\n推荐资料：https://docs.python.org/3/tutorial/",
                "materialUrl": "https://docs.python.org/3/tutorial/",
                "materialTitle": "Python 官方教程",
                "mastery": "unassessed",
                "updatedAt": "2026-10-11T04:13:30.080Z"
              },
              {
                "id": "9417fce0-c9d0-4647-81f4-a920ae9048f2",
                "stageId": "71d83d4b-9a25-4080-82ca-1f6346e5532b",
                "title": "EN-W02-S1 英语词语与句型：第2周",
                "kind": "english",
                "order": 13,
                "estimatedMinutes": 20,
                "firstStep": "复习2分钟、词语6分钟、句型6分钟、听读4分钟、记录2分钟。保留原6词，选3词主动运用。先猜再查；例句：The list has three items.（列表有三个元素。）用系统朗读播放，跟读并替换一个词。",
                "exercise": "内容周：2\n知识范围：loop, range, index, list, string, append；句型：… has…；I can…；听读采用系统合成朗读\n具体练习：复习2分钟、词语6分钟、句型6分钟、听读4分钟、记录2分钟。保留原6词，选3词主动运用。先猜再查；例句：The list has three items.（列表有三个元素。）用系统朗读播放，跟读并替换一个词。\n验收标准：合上笔记说出至少3个重点词的意思，并用本周句型造一句与练习有关的话；能跟读示例、指出一个未听清的词。遇到困难记为待复习，不要求一次记住全部6词。\n交付物：w02_english_s1.md：6词词卡、1个自写例句、1个待复习词\n推荐资料：https://docs.python.org/3/tutorial/controlflow.html",
                "materialUrl": "https://docs.python.org/3/tutorial/controlflow.html",
                "materialTitle": "Python 官方教程",
                "mastery": "unassessed",
                "updatedAt": "2026-10-11T04:13:30.080Z"
              },
              {
                "id": "9303c3cb-573c-495f-9a7a-b4b087f9d016",
                "stageId": "71d83d4b-9a25-4080-82ca-1f6346e5532b",
                "title": "AI-W02-D2 while 循环与循环条件",
                "kind": "programming",
                "order": 14,
                "estimatedMinutes": 90,
                "firstStep": "输出1到10；把停止条件改为<=10；比较for与while",
                "exercise": "内容周：2\n知识范围：while、条件更新、避免无限循环\n具体练习：输出1到10；把停止条件改为<=10；比较for与while\n验收标准：独立写出不会死循环的while，并说出终止条件\n交付物：w02_d2_while.py\n前置任务：AI-W02-D1\n推荐资料：https://docs.python.org/3/tutorial/",
                "materialUrl": "https://docs.python.org/3/tutorial/",
                "materialTitle": "Python 官方教程",
                "mastery": "unassessed",
                "updatedAt": "2026-10-11T04:13:30.080Z"
              },
              {
                "id": "f820794f-ba73-49be-a2db-2f9e8fc834b6",
                "stageId": "71d83d4b-9a25-4080-82ca-1f6346e5532b",
                "title": "RD-W02-S1 阅读与提问：第2周摘录",
                "kind": "reading",
                "order": 15,
                "estimatedMinutes": 20,
                "firstStep": "在20分钟内读14分钟、记录6分钟；保留书名/页码或URL/小节，只摘一两句，再写自己的理解。带着问题读：哪些句子可以核对？哪些是作者的解释或判断？选段不含所需内容时，明确写“本段未提供”，继续保留阅读位置。",
                "exercise": "内容周：2\n知识范围：区分事实与观点；优先接续正在读的书/本周资料，不要求每周换书\n具体练习：在20分钟内读14分钟、记录6分钟；保留书名/页码或URL/小节，只摘一两句，再写自己的理解。带着问题读：哪些句子可以核对？哪些是作者的解释或判断？选段不含所需内容时，明确写“本段未提供”，继续保留阅读位置。\n验收标准：留下准确来源位置、一条短摘录和一句自己的理解；能区分原文与自己的判断，并回答至少一个阅读问题。没有证据时指出缺口，未读完不算失败；下一次从已保存位置继续。\n交付物：w02_reading_s1.md：来源/位置、短摘录、自述、问题、下次位置\n推荐资料：自选书籍；不预设书名",
                "materialUrl": "",
                "materialTitle": "自选书籍；不预设书名",
                "mastery": "unassessed",
                "updatedAt": "2026-10-11T04:13:30.080Z"
              },
              {
                "id": "28131375-7fd0-41ad-b8fa-940d712c7a1f",
                "stageId": "71d83d4b-9a25-4080-82ca-1f6346e5532b",
                "title": "AI-W02-D3 break / continue 与计数",
                "kind": "programming",
                "order": 16,
                "estimatedMinutes": 90,
                "firstStep": "找出1~20中跳过3倍数的值，并在超过15时退出",
                "exercise": "内容周：2\n知识范围：break 提前结束，continue跳过本轮，+=1计数\n具体练习：找出1~20中跳过3倍数的值，并在超过15时退出\n验收标准：可手动预测循环结果，并正确解释break和continue差异\n交付物：w02_d3_control.py\n前置任务：AI-W02-D2\n推荐资料：https://docs.python.org/3/tutorial/",
                "materialUrl": "https://docs.python.org/3/tutorial/",
                "materialTitle": "Python 官方教程",
                "mastery": "unassessed",
                "updatedAt": "2026-10-11T04:13:30.080Z"
              },
              {
                "id": "da557933-a42f-4df4-a639-7132189c929f",
                "stageId": "71d83d4b-9a25-4080-82ca-1f6346e5532b",
                "title": "EN-W02-S2 英语短文与听读：第2周",
                "kind": "english",
                "order": 17,
                "estimatedMinutes": 20,
                "firstStep": "复习2分钟、选段阅读8分钟、听读5分钟、复述3分钟、记录2分钟。读资源页的30—60词，圈3词；用系统朗读听：This loop adds the numbers.（这个循环把数字加起来。），遮住文字再听。原文太难时用本周3句示例替代。",
                "exercise": "内容周：2\n知识范围：for Statements（for循环），只选2—4句；30—60词；句型：… has…；I can…；先尝试理解，再看中文解释\n具体练习：复习2分钟、选段阅读8分钟、听读5分钟、复述3分钟、记录2分钟。读资源页的30—60词，圈3词；用系统朗读听：This loop adds the numbers.（这个循环把数字加起来。），遮住文字再听。原文太难时用本周3句示例替代。\n验收标准：不用逐字翻译，能用中文说出选段或3句示例的大意；听读后辨认2个关键词，再核对文字。记录一处理解变化或疑问；替代材料需标注，暂不懂的地方进入下次复习。\n交付物：w02_english_s2.md：URL/小节、3词、大意、听懂词、疑问；标注是否用示例替代\n推荐资料：https://docs.python.org/3/tutorial/controlflow.html",
                "materialUrl": "https://docs.python.org/3/tutorial/controlflow.html",
                "materialTitle": "Python 官方教程",
                "mastery": "unassessed",
                "updatedAt": "2026-10-11T04:13:30.080Z"
              },
              {
                "id": "60a0c560-353c-411a-85a5-fa9d994ec341",
                "stageId": "71d83d4b-9a25-4080-82ca-1f6346e5532b",
                "title": "AI-W02-D4 字符串 String 与索引/切片",
                "kind": "programming",
                "order": 18,
                "estimatedMinutes": 90,
                "firstStep": "提取单词片段、统计词长、处理空字符串",
                "exercise": "内容周：2\n知识范围：str、索引、切片、len；字符和列表的异同\n具体练习：提取单词片段、统计词长、处理空字符串\n验收标准：独立解释str[0]、str[-1]、str[1:3]\n交付物：w02_d4_string.py\n前置任务：AI-W02-D3\n推荐资料：https://docs.python.org/3/tutorial/",
                "materialUrl": "https://docs.python.org/3/tutorial/",
                "materialTitle": "Python 官方教程",
                "mastery": "unassessed",
                "updatedAt": "2026-10-11T04:13:30.080Z"
              },
              {
                "id": "fbcb66a9-7d58-41b8-9742-898adf8c85d7",
                "stageId": "71d83d4b-9a25-4080-82ca-1f6346e5532b",
                "title": "AI-W02-D5 列表遍历与append：学习分钟记录",
                "kind": "programming",
                "order": 19,
                "estimatedMinutes": 90,
                "firstStep": "用append收集5天虚构分钟；先手算合计，再循环求和；每轮写下当前值与累计值。",
                "exercise": "内容周：2\n知识范围：append和列表遍历；增加先手算、后运行、逐轮跟踪累计值的调试习惯。\n具体练习：用append收集5天虚构分钟；先手算合计，再循环求和；每轮写下当前值与累计值。\n验收标准：解释append改变原列表，遍历不越界，累计结果与手算一致。\n交付物：w02_d5_study_list.py＋5轮累计值表\n前置任务：AI-W02-D4\n推荐资料：https://docs.python.org/zh-cn/3/tutorial/",
                "materialUrl": "https://docs.python.org/zh-cn/3/tutorial/",
                "materialTitle": "Python 官方教程",
                "mastery": "unassessed",
                "updatedAt": "2026-10-11T04:13:30.080Z"
              },
              {
                "id": "6c9cdd0e-9a6a-4f99-9cdc-d15b04c645d5",
                "stageId": "71d83d4b-9a25-4080-82ca-1f6346e5532b",
                "title": "EN-W02-S3 英语三句总结与口头解释：第2周",
                "kind": "english",
                "order": 20,
                "estimatedMinutes": 20,
                "firstStep": "复习3分钟、写句7分钟、听读2分钟、口头解释6分钟、记录2分钟。围绕实际练习写3句，再遮住文本说20—40秒。参考：I can print each item.（我能输出每个元素。）先自己写，再请AI或老师给一处修改及理由。",
                "exercise": "内容周：2\n知识范围：本周句型：… has…；I can…；示例只供改写，不能当成真实学习日志\n具体练习：复习3分钟、写句7分钟、听读2分钟、口头解释6分钟、记录2分钟。围绕实际练习写3句，再遮住文本说20—40秒。参考：I can print each item.（我能输出每个元素。）先自己写，再请AI或老师给一处修改及理由。\n验收标准：3句含一个实际做过的动作、结果或疑问，意思清楚；能借关键词口头解释20—40秒，允许停顿。标记一处修正和下周需回忆的词；录音可选，不以口音或流利程度作为唯一标准。\n交付物：w02_english_s3.md：自写3句、1处修正及理由、口述自检、Next；可选录音\n推荐资料：https://docs.python.org/3/tutorial/controlflow.html",
                "materialUrl": "https://docs.python.org/3/tutorial/controlflow.html",
                "materialTitle": "Python 官方教程",
                "mastery": "unassessed",
                "updatedAt": "2026-10-11T04:13:30.080Z"
              },
              {
                "id": "d4dffb82-6c9e-448f-acc4-2e4c143c2853",
                "stageId": "71d83d4b-9a25-4080-82ca-1f6346e5532b",
                "title": "AI-W02-D6 小项目：7天学习时长统计与调错",
                "kind": "programming",
                "order": 21,
                "estimatedMinutes": 120,
                "firstStep": "先写7条虚构分钟并手算，再完成统计；修复一次累计变量在循环内被反复归零的错误。",
                "exercise": "内容周：2\n知识范围：总计、平均、达标天数；用原项目时间的15分钟做最小调错练习，不新增课程。\n具体练习：先写7条虚构分钟并手算，再完成统计；修复一次累计变量在循环内被反复归零的错误。\n验收标准：总计、平均、达标天数均与手算相符；能逐轮说明变量变化，解释错误原因。\n交付物：w02_d6_study_stats_v1.py＋手算核对＋调错说明\n前置任务：AI-W02-D5\n推荐资料：https://docs.python.org/zh-cn/3/tutorial/",
                "materialUrl": "https://docs.python.org/zh-cn/3/tutorial/",
                "materialTitle": "Python 官方教程",
                "mastery": "unassessed",
                "updatedAt": "2026-10-11T04:13:30.080Z"
              },
              {
                "id": "3bea0ac4-fce9-40a0-89cf-0ac9cb4c40b2",
                "stageId": "71d83d4b-9a25-4080-82ca-1f6346e5532b",
                "title": "AI-W03-D5 函数拆分与逐行注释",
                "kind": "programming",
                "order": 31,
                "estimatedMinutes": 90,
                "firstStep": "将成绩检查脚本拆成读数/判断/展示3个函数",
                "exercise": "内容周：3\n知识范围：函数单一职责；命名；函数注释 docstring 入门\n具体练习：将成绩检查脚本拆成读数/判断/展示3个函数\n验收标准：每个函数有清晰输入输出，能讲解每行代码\n交付物：w03_d5_refactor.py\n前置任务：AI-W03-D4\n推荐资料：https://docs.python.org/3/tutorial/",
                "materialUrl": "https://docs.python.org/3/tutorial/",
                "materialTitle": "Python 官方教程",
                "mastery": "unassessed",
                "updatedAt": "2026-10-11T04:13:30.080Z"
              },
              {
                "id": "b24e4456-aeda-480c-ad9f-8198f5e093af",
                "stageId": "71d83d4b-9a25-4080-82ca-1f6346e5532b",
                "title": "RD-W02-S2 阅读复述与应用：第2周",
                "kind": "reading",
                "order": 22,
                "estimatedMinutes": 20,
                "firstStep": "回忆3分钟、接续阅读10分钟、短输出7分钟。各找一句事实陈述和观点，写核对方式；暂不能核对时注明。合上资料，用3句说明“读到什么—自己的例子或判断—尚未解决的问题”，再核对一处可能误读，保存下一次位置。",
                "exercise": "内容周：2\n知识范围：区分事实与观点；阅读、回忆、短输出都计入原20分钟\n具体练习：回忆3分钟、接续阅读10分钟、短输出7分钟。各找一句事实陈述和观点，写核对方式；暂不能核对时注明。合上资料，用3句说明“读到什么—自己的例子或判断—尚未解决的问题”，再核对一处可能误读，保存下一次位置。\n验收标准：不用照抄也能复述一个观点，给出一个自己的例子或核对问题；标明原文位置、理解限度和下次位置。已有疑问未查清可继续保留，不要求同一时段读完一章或写长笔记。\n交付物：w02_reading_s2.md：3句复述、自制例子/核对问题、纠正或局限、下次位置\n推荐资料：自选书籍；不预设书名",
                "materialUrl": "",
                "materialTitle": "自选书籍；不预设书名",
                "mastery": "unassessed",
                "updatedAt": "2026-10-11T04:13:30.080Z"
              },
              {
                "id": "825735c4-8c76-4f4c-a98e-ad554fa0487e",
                "stageId": "71d83d4b-9a25-4080-82ca-1f6346e5532b",
                "title": "AI-W02-D7 本周复盘：循环闭卷测试",
                "kind": "programming",
                "order": 23,
                "estimatedMinutes": 60,
                "firstStep": "闭卷重写求和循环；回看上周条件判断错题",
                "exercise": "内容周：2\n知识范围：for、while、range、break、continue、list与string\n具体练习：闭卷重写求和循环；回看上周条件判断错题\n验收标准：能解释循环次数与停止条件，至少4/5题正确\n交付物：w02_review.md\n前置任务：AI-W02-D6\n推荐资料：https://docs.python.org/3/tutorial/",
                "materialUrl": "https://docs.python.org/3/tutorial/",
                "materialTitle": "Python 官方教程",
                "mastery": "unassessed",
                "updatedAt": "2026-10-11T04:13:30.080Z"
              },
              {
                "id": "d73f2408-5505-4edd-8166-dafbc1315e26",
                "stageId": "71d83d4b-9a25-4080-82ca-1f6346e5532b",
                "title": "AI-W03-D1 定义与调用函数 def",
                "kind": "programming",
                "order": 24,
                "estimatedMinutes": 90,
                "firstStep": "把前一周的及格判断改写为judge_score()",
                "exercise": "内容周：3\n知识范围：def、函数名、函数体、调用、可复用性\n具体练习：把前一周的及格判断改写为judge_score()\n验收标准：不看笔记解释def和函数调用；同一函数测试3次\n交付物：w03_d1_def.py\n前置任务：AI-W02-D7\n推荐资料：https://docs.python.org/3/tutorial/",
                "materialUrl": "https://docs.python.org/3/tutorial/",
                "materialTitle": "Python 官方教程",
                "mastery": "unassessed",
                "updatedAt": "2026-10-11T04:13:30.080Z"
              },
              {
                "id": "1e79aaa7-f04e-453a-9b5d-beab63b71dbc",
                "stageId": "71d83d4b-9a25-4080-82ca-1f6346e5532b",
                "title": "EN-W03-S1 英语词语与句型：第3周",
                "kind": "english",
                "order": 25,
                "estimatedMinutes": 20,
                "firstStep": "复习2分钟、词语6分钟、句型6分钟、听读4分钟、记录2分钟。保留原6词，选3词主动运用。先猜再查；例句：This function takes a number.（这个函数接收一个数字。）用系统朗读播放，跟读并替换一个词。",
                "exercise": "内容周：3\n知识范围：function, parameter, argument, return, scope, call；句型：… takes…；… returns…；听读采用系统合成朗读\n具体练习：复习2分钟、词语6分钟、句型6分钟、听读4分钟、记录2分钟。保留原6词，选3词主动运用。先猜再查；例句：This function takes a number.（这个函数接收一个数字。）用系统朗读播放，跟读并替换一个词。\n验收标准：合上笔记说出至少3个重点词的意思，并用本周句型造一句与练习有关的话；能跟读示例、指出一个未听清的词。遇到困难记为待复习，不要求一次记住全部6词。\n交付物：w03_english_s1.md：6词词卡、1个自写例句、1个待复习词\n推荐资料：https://docs.python.org/3/tutorial/controlflow.html",
                "materialUrl": "https://docs.python.org/3/tutorial/controlflow.html",
                "materialTitle": "Python 官方教程",
                "mastery": "unassessed",
                "updatedAt": "2026-10-11T04:13:30.080Z"
              },
              {
                "id": "e52aae52-0bbc-4d13-a0a3-9a9aaae18e12",
                "stageId": "71d83d4b-9a25-4080-82ca-1f6346e5532b",
                "title": "AI-W03-D2 return 与 print 的区别",
                "kind": "programming",
                "order": 26,
                "estimatedMinutes": 90,
                "firstStep": "编写add(a,b)并对比print与return，解释赋值后的变量",
                "exercise": "内容周：3\n知识范围：返回值 Return value；打印输出 Print；None\n具体练习：编写add(a,b)并对比print与return，解释赋值后的变量\n验收标准：能解释print不会自动把值返回给调用者\n交付物：w03_d2_return.py\n前置任务：AI-W03-D1\n推荐资料：https://docs.python.org/3/tutorial/",
                "materialUrl": "https://docs.python.org/3/tutorial/",
                "materialTitle": "Python 官方教程",
                "mastery": "unassessed",
                "updatedAt": "2026-10-11T04:13:30.080Z"
              },
              {
                "id": "77412284-2e3d-4840-9362-3ccead03e5a6",
                "stageId": "71d83d4b-9a25-4080-82ca-1f6346e5532b",
                "title": "RD-W03-S1 阅读与提问：第3周摘录",
                "kind": "reading",
                "order": 27,
                "estimatedMinutes": 20,
                "firstStep": "在20分钟内读14分钟、记录6分钟；保留书名/页码或URL/小节，只摘一两句，再写自己的理解。带着问题读：这一段在回答什么问题？解释是什么？有什么条件？选段不含所需内容时，明确写“本段未提供”，继续保留阅读位置。",
                "exercise": "内容周：3\n知识范围：三句复述；优先接续正在读的书/本周资料，不要求每周换书\n具体练习：在20分钟内读14分钟、记录6分钟；保留书名/页码或URL/小节，只摘一两句，再写自己的理解。带着问题读：这一段在回答什么问题？解释是什么？有什么条件？选段不含所需内容时，明确写“本段未提供”，继续保留阅读位置。\n验收标准：留下准确来源位置、一条短摘录和一句自己的理解；能区分原文与自己的判断，并回答至少一个阅读问题。没有证据时指出缺口，未读完不算失败；下一次从已保存位置继续。\n交付物：w03_reading_s1.md：来源/位置、短摘录、自述、问题、下次位置\n推荐资料：自选书籍；不预设书名",
                "materialUrl": "",
                "materialTitle": "自选书籍；不预设书名",
                "mastery": "unassessed",
                "updatedAt": "2026-10-11T04:13:30.080Z"
              },
              {
                "id": "f61ca474-f1ce-44fe-8752-a57e7767a932",
                "stageId": "71d83d4b-9a25-4080-82ca-1f6346e5532b",
                "title": "AI-W03-D3 形参/实参与默认参数",
                "kind": "programming",
                "order": 28,
                "estimatedMinutes": 90,
                "firstStep": "写study_minutes(day, minutes=30)并调用4次",
                "exercise": "内容周：3\n知识范围：parameter、argument、默认值、位置参数\n具体练习：写study_minutes(day, minutes=30)并调用4次\n验收标准：准确区分定义时形参与调用时实参\n交付物：w03_d3_args.py\n前置任务：AI-W03-D2\n推荐资料：https://docs.python.org/3/tutorial/",
                "materialUrl": "https://docs.python.org/3/tutorial/",
                "materialTitle": "Python 官方教程",
                "mastery": "unassessed",
                "updatedAt": "2026-10-11T04:13:30.080Z"
              },
              {
                "id": "0ca4ec6c-03f4-417f-99f2-e7caa442dce0",
                "stageId": "71d83d4b-9a25-4080-82ca-1f6346e5532b",
                "title": "EN-W03-S2 英语短文与听读：第3周",
                "kind": "english",
                "order": 29,
                "estimatedMinutes": 20,
                "firstStep": "复习2分钟、选段阅读8分钟、听读5分钟、复述3分钟、记录2分钟。读资源页的30—60词，圈3词；用系统朗读听：It returns twice the number.（它返回这个数字的两倍。），遮住文字再听。原文太难时用本周3句示例替代。",
                "exercise": "内容周：3\n知识范围：Defining Functions（定义函数），只选一个例子旁的2—4句；30—60词；句型：… takes…；… returns…；先尝试理解，再看中文解释\n具体练习：复习2分钟、选段阅读8分钟、听读5分钟、复述3分钟、记录2分钟。读资源页的30—60词，圈3词；用系统朗读听：It returns twice the number.（它返回这个数字的两倍。），遮住文字再听。原文太难时用本周3句示例替代。\n验收标准：不用逐字翻译，能用中文说出选段或3句示例的大意；听读后辨认2个关键词，再核对文字。记录一处理解变化或疑问；替代材料需标注，暂不懂的地方进入下次复习。\n交付物：w03_english_s2.md：URL/小节、3词、大意、听懂词、疑问；标注是否用示例替代\n推荐资料：https://docs.python.org/3/tutorial/controlflow.html",
                "materialUrl": "https://docs.python.org/3/tutorial/controlflow.html",
                "materialTitle": "Python 官方教程",
                "mastery": "unassessed",
                "updatedAt": "2026-10-11T04:13:30.080Z"
              },
              {
                "id": "44a4fbbe-9993-434c-8329-4009e6547038",
                "stageId": "71d83d4b-9a25-4080-82ca-1f6346e5532b",
                "title": "EN-W03-S3 英语三句总结与口头解释：第3周",
                "kind": "english",
                "order": 32,
                "estimatedMinutes": 20,
                "firstStep": "复习3分钟、写句7分钟、听读2分钟、口头解释6分钟、记录2分钟。围绕实际练习写3句，再遮住文本说20—40秒。参考：I call it with five.（我用5作为参数调用它。）先自己写，再请AI或老师给一处修改及理由。",
                "exercise": "内容周：3\n知识范围：本周句型：… takes…；… returns…；示例只供改写，不能当成真实学习日志\n具体练习：复习3分钟、写句7分钟、听读2分钟、口头解释6分钟、记录2分钟。围绕实际练习写3句，再遮住文本说20—40秒。参考：I call it with five.（我用5作为参数调用它。）先自己写，再请AI或老师给一处修改及理由。\n验收标准：3句含一个实际做过的动作、结果或疑问，意思清楚；能借关键词口头解释20—40秒，允许停顿。标记一处修正和下周需回忆的词；录音可选，不以口音或流利程度作为唯一标准。\n交付物：w03_english_s3.md：自写3句、1处修正及理由、口述自检、Next；可选录音\n推荐资料：https://docs.python.org/3/tutorial/controlflow.html",
                "materialUrl": "https://docs.python.org/3/tutorial/controlflow.html",
                "materialTitle": "Python 官方教程",
                "mastery": "unassessed",
                "updatedAt": "2026-10-11T04:13:30.080Z"
              },
              {
                "id": "268f6683-5363-40c3-9a69-1419042a8c09",
                "stageId": "71d83d4b-9a25-4080-82ca-1f6346e5532b",
                "title": "AI-W03-D6 小项目：函数化学习打卡与基础断言",
                "kind": "programming",
                "order": 33,
                "estimatedMinutes": 120,
                "firstStep": "写合计、平均、达标判断3个函数；写至少5个assert，覆盖普通记录、单条记录及分钟边界。",
                "exercise": "内容周：3\n知识范围：3个函数、参数与return；嵌入assert断言，仅检查可预期结果，不引入测试框架。\n具体练习：写合计、平均、达标判断3个函数；写至少5个assert，覆盖普通记录、单条记录及分钟边界。\n验收标准：5个断言通过；解释参数、return及断言失败；每个函数只负责一件明确的事。\n交付物：w03_d6_study_stats_v2.py＋w03_tests.py\n前置任务：AI-W03-D5\n推荐资料：https://docs.python.org/zh-cn/3/tutorial/\nhttps://docs.python.org/zh-cn/3/reference/simple_stmts.html#the-assert-statement",
                "materialUrl": "https://docs.python.org/zh-cn/3/tutorial/",
                "materialTitle": "Python 官方教程",
                "mastery": "unassessed",
                "updatedAt": "2026-10-11T04:13:30.080Z"
              },
              {
                "id": "8ec80cee-ea87-4531-a448-4d503c217e71",
                "stageId": "71d83d4b-9a25-4080-82ca-1f6346e5532b",
                "title": "RD-W03-S2 阅读复述与应用：第3周",
                "kind": "reading",
                "order": 34,
                "estimatedMinutes": 20,
                "firstStep": "回忆3分钟、接续阅读10分钟、短输出7分钟。合上资料，用自己的话写“问题—解释—条件”三句，再对照纠正一处。合上资料，用3句说明“读到什么—自己的例子或判断—尚未解决的问题”，再核对一处可能误读，保存下一次位置。",
                "exercise": "内容周：3\n知识范围：三句复述；阅读、回忆、短输出都计入原20分钟\n具体练习：回忆3分钟、接续阅读10分钟、短输出7分钟。合上资料，用自己的话写“问题—解释—条件”三句，再对照纠正一处。合上资料，用3句说明“读到什么—自己的例子或判断—尚未解决的问题”，再核对一处可能误读，保存下一次位置。\n验收标准：不用照抄也能复述一个观点，给出一个自己的例子或核对问题；标明原文位置、理解限度和下次位置。已有疑问未查清可继续保留，不要求同一时段读完一章或写长笔记。\n交付物：w03_reading_s2.md：3句复述、自制例子/核对问题、纠正或局限、下次位置\n推荐资料：自选书籍；不预设书名",
                "materialUrl": "",
                "materialTitle": "自选书籍；不预设书名",
                "mastery": "unassessed",
                "updatedAt": "2026-10-11T04:13:30.080Z"
              },
              {
                "id": "ff8759e0-8887-4064-b361-63d22c48404d",
                "stageId": "71d83d4b-9a25-4080-82ca-1f6346e5532b",
                "title": "AI-W03-D7 函数验收：平均值与空记录约定",
                "kind": "programming",
                "order": 35,
                "estimatedMinutes": 60,
                "firstStep": "闭卷写平均值函数；普通列表、单条列表、空列表各试一次；空列表返回None并由调用处说明无记录。",
                "exercise": "内容周：3\n知识范围：闭卷平均值函数；补空列表边界，明确无记录返回None，不能伪装成平均分钟为0。\n具体练习：闭卷写平均值函数；普通列表、单条列表、空列表各试一次；空列表返回None并由调用处说明无记录。\n验收标准：3类结果正确，函数可运行；能解释无记录与真实平均为0的区别，并口述输入输出。\n交付物：w03_d7_average.py＋3组验收记录\n前置任务：AI-W03-D6\n推荐资料：https://docs.python.org/zh-cn/3/tutorial/",
                "materialUrl": "https://docs.python.org/zh-cn/3/tutorial/",
                "materialTitle": "Python 官方教程",
                "mastery": "unassessed",
                "updatedAt": "2026-10-11T04:13:30.080Z"
              },
              {
                "id": "a7c4da08-9bcf-4030-845b-c67d8d493ffd",
                "stageId": "71d83d4b-9a25-4080-82ca-1f6346e5532b",
                "title": "AI-W04-D1 字典 dict：键与值",
                "kind": "programming",
                "order": 36,
                "estimatedMinutes": 90,
                "firstStep": "用日期->学习分钟构造字典，读取/更新3条记录",
                "exercise": "内容周：4\n知识范围：字典 Dictionary；key/value；增删改查\n具体练习：用日期->学习分钟构造字典，读取/更新3条记录\n验收标准：说明列表索引与字典key的区别\n交付物：w04_d1_dict.py\n前置任务：AI-W03-D7\n推荐资料：https://docs.python.org/3/tutorial/",
                "materialUrl": "https://docs.python.org/3/tutorial/",
                "materialTitle": "Python 官方教程",
                "mastery": "unassessed",
                "updatedAt": "2026-10-11T04:13:30.080Z"
              },
              {
                "id": "1f270a8c-b807-4eed-a538-b45b00286fd6",
                "stageId": "71d83d4b-9a25-4080-82ca-1f6346e5532b",
                "title": "EN-W04-S1 英语词语与句型：第4周",
                "kind": "english",
                "order": 37,
                "estimatedMinutes": 20,
                "firstStep": "复习2分钟、词语6分钟、句型6分钟、听读4分钟、记录2分钟。保留原6词，选3词主动运用。先猜再查；例句：I opened a file.（我打开了一个文件。）用系统朗读播放，跟读并替换一个词。",
                "exercise": "内容周：4\n知识范围：dictionary, key, value, file, exception, import；句型：一般过去时：I opened/read/saved…；听读采用系统合成朗读\n具体练习：复习2分钟、词语6分钟、句型6分钟、听读4分钟、记录2分钟。保留原6词，选3词主动运用。先猜再查；例句：I opened a file.（我打开了一个文件。）用系统朗读播放，跟读并替换一个词。\n验收标准：合上笔记说出至少3个重点词的意思，并用本周句型造一句与练习有关的话；能跟读示例、指出一个未听清的词。遇到困难记为待复习，不要求一次记住全部6词。\n交付物：w04_english_s1.md：6词词卡、1个自写例句、1个待复习词\n推荐资料：https://docs.python.org/3/tutorial/inputoutput.html",
                "materialUrl": "https://docs.python.org/3/tutorial/inputoutput.html",
                "materialTitle": "Python 官方教程",
                "mastery": "unassessed",
                "updatedAt": "2026-10-11T04:13:30.080Z"
              },
              {
                "id": "c35dbf0d-e873-4c64-9519-d636348897c9",
                "stageId": "71d83d4b-9a25-4080-82ca-1f6346e5532b",
                "title": "AI-W04-D2 tuple 和 set 的用途",
                "kind": "programming",
                "order": 38,
                "estimatedMinutes": 90,
                "firstStep": "对一组重复知识点标签去重，对比list/set/tuple",
                "exercise": "内容周：4\n知识范围：元组 Tuple 不可修改；集合 Set 去重\n具体练习：对一组重复知识点标签去重，对比list/set/tuple\n验收标准：知道何时使用3种容器；能解释set不会保证原始顺序\n交付物：w04_d2_collections.py\n前置任务：AI-W04-D1\n推荐资料：https://docs.python.org/3/tutorial/",
                "materialUrl": "https://docs.python.org/3/tutorial/",
                "materialTitle": "Python 官方教程",
                "mastery": "unassessed",
                "updatedAt": "2026-10-11T04:13:30.080Z"
              },
              {
                "id": "1ffb8775-395b-4673-aaf7-ad99595fa3e0",
                "stageId": "71d83d4b-9a25-4080-82ca-1f6346e5532b",
                "title": "RD-W04-S1 阅读与提问：第4周摘录",
                "kind": "reading",
                "order": 39,
                "estimatedMinutes": 20,
                "firstStep": "在20分钟内读14分钟、记录6分钟；保留书名/页码或URL/小节，只摘一两句，再写自己的理解。带着问题读：我认同什么？理由来自经验还是文本？什么情况可能不适用？选段不含所需内容时，明确写“本段未提供”，继续保留阅读位置。",
                "exercise": "内容周：4\n知识范围：有依据地赞成或反对；优先接续正在读的书/本周资料，不要求每周换书\n具体练习：在20分钟内读14分钟、记录6分钟；保留书名/页码或URL/小节，只摘一两句，再写自己的理解。带着问题读：我认同什么？理由来自经验还是文本？什么情况可能不适用？选段不含所需内容时，明确写“本段未提供”，继续保留阅读位置。\n验收标准：留下准确来源位置、一条短摘录和一句自己的理解；能区分原文与自己的判断，并回答至少一个阅读问题。没有证据时指出缺口，未读完不算失败；下一次从已保存位置继续。\n交付物：w04_reading_s1.md：来源/位置、短摘录、自述、问题、下次位置\n推荐资料：自选书籍；不预设书名",
                "materialUrl": "",
                "materialTitle": "自选书籍；不预设书名",
                "mastery": "unassessed",
                "updatedAt": "2026-10-11T04:13:30.080Z"
              },
              {
                "id": "bb9f6063-215b-4234-ac1a-bccadcf39d88",
                "stageId": "71d83d4b-9a25-4080-82ca-1f6346e5532b",
                "title": "AI-W04-D3 读写文件与with open：定位生成文件",
                "kind": "programming",
                "order": 40,
                "estimatedMinutes": 90,
                "firstStep": "写入再读回一段虚构学习记录；打印数据文件路径，在访达找到文件；对照相对路径和已提供的脚本目录写法。",
                "exercise": "内容周：4\n知识范围：with open和读写；补文件路径、UTF-8编码、运行位置与数据位置的区别。\n具体练习：写入再读回一段虚构学习记录；打印数据文件路径，在访达找到文件；对照相对路径和已提供的脚本目录写法。\n验收标准：写读内容一致，能定位文件；解释with关闭文件及UTF-8作用，换启动目录后仍用指定路径读到同一文件。\n交付物：w04_d3_file_io.py＋sample_notes.txt＋路径说明\n前置任务：AI-W04-D2\n推荐资料：https://docs.python.org/zh-cn/3/tutorial/inputoutput.html",
                "materialUrl": "https://docs.python.org/zh-cn/3/tutorial/inputoutput.html",
                "materialTitle": "Python 官方教程",
                "mastery": "unassessed",
                "updatedAt": "2026-10-11T04:13:30.080Z"
              },
              {
                "id": "24fe93bc-ea3f-4671-9361-5c83d9eb7fec",
                "stageId": "71d83d4b-9a25-4080-82ca-1f6346e5532b",
                "title": "EN-W04-S2 英语短文与听读：第4周",
                "kind": "english",
                "order": 41,
                "estimatedMinutes": 20,
                "firstStep": "复习2分钟、选段阅读8分钟、听读5分钟、复述3分钟、记录2分钟。读资源页的30—60词，圈3词；用系统朗读听：Yesterday, I read the data.（昨天我读取了数据；过去式read读/red/。），遮住文字再听。原文太难时用本周3句示例替代。",
                "exercise": "内容周：4\n知识范围：Reading and Writing Files（读写文件），只选2—4句；30—60词；句型：一般过去时：I opened/read/saved…；先尝试理解，再看中文解释\n具体练习：复习2分钟、选段阅读8分钟、听读5分钟、复述3分钟、记录2分钟。读资源页的30—60词，圈3词；用系统朗读听：Yesterday, I read the data.（昨天我读取了数据；过去式read读/red/。），遮住文字再听。原文太难时用本周3句示例替代。\n验收标准：不用逐字翻译，能用中文说出选段或3句示例的大意；听读后辨认2个关键词，再核对文字。记录一处理解变化或疑问；替代材料需标注，暂不懂的地方进入下次复习。\n交付物：w04_english_s2.md：URL/小节、3词、大意、听懂词、疑问；标注是否用示例替代\n推荐资料：https://docs.python.org/3/tutorial/inputoutput.html",
                "materialUrl": "https://docs.python.org/3/tutorial/inputoutput.html",
                "materialTitle": "Python 官方教程",
                "mastery": "unassessed",
                "updatedAt": "2026-10-11T04:13:30.080Z"
              },
              {
                "id": "965c93c7-51c4-4602-8450-ad43c6361cb7",
                "stageId": "71d83d4b-9a25-4080-82ca-1f6346e5532b",
                "title": "AI-W04-D4 try/except：非法分钟输入与报错定位",
                "kind": "programming",
                "order": 42,
                "estimatedMinutes": 90,
                "firstStep": "输入abc、空文本、-1；非数字捕获ValueError，负数单独校验；指出出错行，不使用笼统except隐藏错误。",
                "exercise": "内容周：4\n知识范围：非数字输入处理；补读Traceback报错位置，区分可预期输入错误和不能吞掉的程序错误。\n具体练习：输入abc、空文本、-1；非数字捕获ValueError，负数单独校验；指出出错行，不使用笼统except隐藏错误。\n验收标准：3个非法案例均有清晰提示；说清转换异常与负值规则的区别，并能定位原始报错行。\n交付物：w04_d4_input_validation.py＋3组错误输入结果\n前置任务：AI-W04-D3\n推荐资料：https://docs.python.org/zh-cn/3/tutorial/errors.html",
                "materialUrl": "https://docs.python.org/zh-cn/3/tutorial/errors.html",
                "materialTitle": "Python 官方教程",
                "mastery": "unassessed",
                "updatedAt": "2026-10-11T04:13:30.080Z"
              },
              {
                "id": "962f9295-95d2-4035-86e9-dbfe16e39e95",
                "stageId": "71d83d4b-9a25-4080-82ca-1f6346e5532b",
                "title": "AI-W04-D5 import / from / as 基础",
                "kind": "programming",
                "order": 43,
                "estimatedMinutes": 90,
                "firstStep": "用math.sqrt与from math import sqrt两种写法算平方根",
                "exercise": "内容周：4\n知识范围：模块 Module、import、from...import、as别名、函数名空间\n具体练习：用math.sqrt与from math import sqrt两种写法算平方根\n验收标准：能逐词解释import/from/as，为NumPy和PyTorch做准备\n交付物：w04_d5_import.py\n前置任务：AI-W04-D4\n推荐资料：https://docs.python.org/3/tutorial/",
                "materialUrl": "https://docs.python.org/3/tutorial/",
                "materialTitle": "Python 官方教程",
                "mastery": "unassessed",
                "updatedAt": "2026-10-11T04:13:30.080Z"
              },
              {
                "id": "b9f0063a-912d-4b7d-a651-4abd930e06f0",
                "stageId": "71d83d4b-9a25-4080-82ca-1f6346e5532b",
                "title": "EN-W04-S3 英语三句总结与口头解释：第4周",
                "kind": "english",
                "order": 44,
                "estimatedMinutes": 20,
                "firstStep": "复习3分钟、写句7分钟、听读2分钟、口头解释6分钟、记录2分钟。围绕实际练习写3句，再遮住文本说20—40秒。参考：I saved the result.（我保存了结果。）先自己写，再请AI或老师给一处修改及理由。",
                "exercise": "内容周：4\n知识范围：本周句型：一般过去时：I opened/read/saved…；示例只供改写，不能当成真实学习日志\n具体练习：复习3分钟、写句7分钟、听读2分钟、口头解释6分钟、记录2分钟。围绕实际练习写3句，再遮住文本说20—40秒。参考：I saved the result.（我保存了结果。）先自己写，再请AI或老师给一处修改及理由。\n验收标准：3句含一个实际做过的动作、结果或疑问，意思清楚；能借关键词口头解释20—40秒，允许停顿。标记一处修正和下周需回忆的词；录音可选，不以口音或流利程度作为唯一标准。\n交付物：w04_english_s3.md：自写3句、1处修正及理由、口述自检、Next；可选录音\n推荐资料：https://docs.python.org/3/tutorial/inputoutput.html",
                "materialUrl": "https://docs.python.org/3/tutorial/inputoutput.html",
                "materialTitle": "Python 官方教程",
                "mastery": "unassessed",
                "updatedAt": "2026-10-11T04:13:30.080Z"
              },
              {
                "id": "79e99b68-5b9f-4fd5-bba3-45899709f070",
                "stageId": "71d83d4b-9a25-4080-82ca-1f6346e5532b",
                "title": "AI-W04-D6 小项目：CSV学习记录与往返核对",
                "kind": "programming",
                "order": 45,
                "estimatedMinutes": 120,
                "firstStep": "用csv写出5条虚构记录再读回；核对表头、记录数和分钟；加入1条非法分钟，输出位置与原因。",
                "exercise": "内容周：4\n知识范围：日期/项目/分钟CSV读写；使用标准库csv处理表头与字段，避免手工拼接逗号。\n具体练习：用csv写出5条虚构记录再读回；核对表头、记录数和分钟；加入1条非法分钟，输出位置与原因。\n验收标准：5条合法记录往返一致，列/行含义可解释；非法记录被指出，原始CSV不被静默改写。\n交付物：w04_d6_csv_tracker.py＋sample_study.csv＋核对记录\n前置任务：AI-W04-D5\n推荐资料：https://docs.python.org/zh-cn/3/library/csv.html",
                "materialUrl": "https://docs.python.org/zh-cn/3/library/csv.html",
                "materialTitle": "Python 官方教程",
                "mastery": "unassessed",
                "updatedAt": "2026-10-11T04:13:30.080Z"
              },
              {
                "id": "46ff6d70-5ab1-42ab-b551-ebbde7a9f0bb",
                "stageId": "71d83d4b-9a25-4080-82ca-1f6346e5532b",
                "title": "RD-W04-S2 阅读复述与应用：第4周",
                "kind": "reading",
                "order": 46,
                "estimatedMinutes": 20,
                "firstStep": "回忆3分钟、接续阅读10分钟、短输出7分钟。写“我赞成/暂不同意…因为…”及一个适用条件，不把感觉当事实。合上资料，用3句说明“读到什么—自己的例子或判断—尚未解决的问题”，再核对一处可能误读，保存下一次位置。",
                "exercise": "内容周：4\n知识范围：有依据地赞成或反对；阅读、回忆、短输出都计入原20分钟\n具体练习：回忆3分钟、接续阅读10分钟、短输出7分钟。写“我赞成/暂不同意…因为…”及一个适用条件，不把感觉当事实。合上资料，用3句说明“读到什么—自己的例子或判断—尚未解决的问题”，再核对一处可能误读，保存下一次位置。\n验收标准：不用照抄也能复述一个观点，给出一个自己的例子或核对问题；标明原文位置、理解限度和下次位置。已有疑问未查清可继续保留，不要求同一时段读完一章或写长笔记。\n交付物：w04_reading_s2.md：3句复述、自制例子/核对问题、纠正或局限、下次位置\n推荐资料：自选书籍；不预设书名",
                "materialUrl": "",
                "materialTitle": "自选书籍；不预设书名",
                "mastery": "unassessed",
                "updatedAt": "2026-10-11T04:13:30.080Z"
              },
              {
                "id": "f1360ea9-89d6-4f4f-9b9a-5286294cfbd1",
                "stageId": "71d83d4b-9a25-4080-82ca-1f6346e5532b",
                "title": "AI-W04-D7 第1月关卡与本地Git保存版本",
                "kind": "programming",
                "order": 47,
                "estimatedMinutes": 60,
                "firstStep": "先完成15题及脚本验收，再用status/add/commit/log保存一个版本；只保存代码与虚构样例。",
                "exercise": "内容周：4\n知识范围：独立脚本和15题闭卷；在原60分钟内用10分钟完成老师提供的本地Git步骤，暂不学分支与远程。\n具体练习：先完成15题及脚本验收，再用status/add/commit/log保存一个版本；只保存代码与虚构样例。\n验收标准：闭卷≥12/15题；解释4条Git命令的作用；版本可查，个人记录未提交；未过关先复习。\n交付物：月度关卡结果＋本地Git提交记录＋简短运行说明\n前置任务：AI-W04-D6\n推荐资料：https://docs.python.org/zh-cn/3/tutorial/\nhttps://git-scm.com/book/zh/v2",
                "materialUrl": "https://docs.python.org/zh-cn/3/tutorial/",
                "materialTitle": "Python 官方教程",
                "mastery": "unassessed",
                "updatedAt": "2026-10-11T04:13:30.080Z"
              }
            ]
          },
          {
            "id": "a5d8a444-3d73-4521-8c68-ffc63b9bbbd2",
            "roadmapId": "a0582307-4fcb-4cbe-842b-c38e3b69d05f",
            "title": "第02个月 数组与计算",
            "goal": "阶段：基础\n重点内容：字典/文件；NumPy数组、shape、索引、广播\n补充：增补venv、解释器与依赖对应关系、.gitignore；用同一虚构学习表练习NumPy汇总、最少pandas清洗与一张图，数据异常处理要留下核对记录。\n交付物：学习数据矩阵统计脚本\n沿用学习数据矩阵脚本，附清洗规则与统计图。\n过关标准：手算与NumPy结果相符；能独立解释shape\nshape、汇总和手算一致；能解释缺失及重复处理。\n推进条件：pandas以Python/CSV关卡为前提，未过先手工核对。\n英语：基础句型、30–120词选段、20–40秒口述。阅读：观点/证据/疑问与3句复述。",
            "order": 1,
            "units": [
              {
                "id": "88161b85-94bd-4968-9a22-3cac6741841f",
                "stageId": "a5d8a444-3d73-4521-8c68-ffc63b9bbbd2",
                "title": "AI-W08-D1 斜率与导数：先看函数图像",
                "kind": "programming",
                "order": 36,
                "estimatedMinutes": 90,
                "firstStep": "先列x=0、1、2的函数值并画图；在x=1比较步长0.1和0.01的差商；再解释导数2x在该点的含义。",
                "exercise": "内容周：8\n知识范围：函数输入/输出、坐标、斜率；Derivative导数是局部变化率；先用f(x)=x²的数值与手绘图连接。\n具体练习：先列x=0、1、2的函数值并画图；在x=1比较步长0.1和0.01的差商；再解释导数2x在该点的含义。\n验收标准：图像/数值正确，能区分函数值与变化率；说清步长缩小时差商接近什么，单位和变量含义清楚。\n交付物：w08_d1_slope.md：函数值表、手绘图、差商与解释\n前置任务：AI-W07-D7\n推荐资料：已学知识笔记与手算练习",
                "materialUrl": "",
                "materialTitle": "已学知识笔记与手算练习",
                "mastery": "unassessed",
                "updatedAt": "2026-10-11T04:13:30.080Z"
              },
              {
                "id": "691eccf3-2edf-4661-89d5-4f6f33981e99",
                "stageId": "a5d8a444-3d73-4521-8c68-ffc63b9bbbd2",
                "title": "AI-W05-D1 NumPy安装：独立环境与np.array",
                "kind": "programming",
                "order": 0,
                "estimatedMinutes": 90,
                "firstStep": "在老师提供的步骤下建venv并安装NumPy；输出解释器路径；创建1维/2维数组；记录实际依赖，排除环境与个人数据。",
                "exercise": "内容周：5\n知识范围：1维/2维数组；安装过程补venv虚拟环境、python -m pip对应解释器、依赖与.gitignore。\n具体练习：在老师提供的步骤下建venv并安装NumPy；输出解释器路径；创建1维/2维数组；记录实际依赖，排除环境与个人数据。\n验收标准：NumPy导入成功，数组shape正确；说清环境/解释器/包关系，依赖可查，环境目录未进Git。\n交付物：w05_d1_arrays.py＋requirements.txt＋.gitignore＋环境说明\n前置任务：AI-W04-D7\n推荐资料：https://docs.python.org/zh-cn/3/tutorial/venv.html\nhttps://numpy.org/doc/stable/user/absolute_beginners.html",
                "materialUrl": "https://docs.python.org/zh-cn/3/tutorial/venv.html",
                "materialTitle": "Python 官方教程",
                "mastery": "unassessed",
                "updatedAt": "2026-10-11T04:13:30.080Z"
              },
              {
                "id": "af8dbc68-6906-4469-b369-613a3bdfd812",
                "stageId": "a5d8a444-3d73-4521-8c68-ffc63b9bbbd2",
                "title": "EN-W05-S1 英语词语与句型：第5周",
                "kind": "english",
                "order": 1,
                "estimatedMinutes": 20,
                "firstStep": "复习2分钟、词语6分钟、句型6分钟、听读4分钟、记录2分钟。保留原6词，选3词主动运用。先猜再查；例句：There are two rows.（有两行。）用系统朗读播放，跟读并替换一个词。",
                "exercise": "内容周：5\n知识范围：array, shape, dimension, index, reshape, dtype；句型：There is/are…；描述数量与形状；听读采用系统合成朗读\n具体练习：复习2分钟、词语6分钟、句型6分钟、听读4分钟、记录2分钟。保留原6词，选3词主动运用。先猜再查；例句：There are two rows.（有两行。）用系统朗读播放，跟读并替换一个词。\n验收标准：合上笔记说出至少3个重点词的意思，并用本周句型造一句与练习有关的话；能跟读示例、指出一个未听清的词。遇到困难记为待复习，不要求一次记住全部6词。\n交付物：w05_english_s1.md：6词词卡、1个自写例句、1个待复习词\n推荐资料：https://numpy.org/doc/stable/user/quickstart.html",
                "materialUrl": "https://numpy.org/doc/stable/user/quickstart.html",
                "materialTitle": "NumPy 官方入门",
                "mastery": "unassessed",
                "updatedAt": "2026-10-11T04:13:30.080Z"
              },
              {
                "id": "7f20f415-9fc9-4a13-b446-ace7c8a874a7",
                "stageId": "a5d8a444-3d73-4521-8c68-ffc63b9bbbd2",
                "title": "AI-W05-D2 shape / ndim / dtype",
                "kind": "programming",
                "order": 2,
                "estimatedMinutes": 90,
                "firstStep": "分别创建(3,), (2,3), (3,2)的数组并预测输出",
                "exercise": "内容周：5\n知识范围：数组形状 Shape、维度数 ndim、元素类型 dtype\n具体练习：分别创建(3,), (2,3), (3,2)的数组并预测输出\n验收标准：全部预测正确，区分数组维数与shape中各轴的大小\n交付物：w05_d2_shape.py\n前置任务：AI-W05-D1\n推荐资料：https://numpy.org/doc/stable/user/absolute_beginners.html",
                "materialUrl": "https://numpy.org/doc/stable/user/absolute_beginners.html",
                "materialTitle": "NumPy 官方入门",
                "mastery": "unassessed",
                "updatedAt": "2026-10-11T04:13:30.080Z"
              },
              {
                "id": "b01f9434-8fa0-4568-a9e3-607656914b18",
                "stageId": "a5d8a444-3d73-4521-8c68-ffc63b9bbbd2",
                "title": "RD-W05-S1 阅读与提问：第5周摘录",
                "kind": "reading",
                "order": 3,
                "estimatedMinutes": 20,
                "firstStep": "在20分钟内读14分钟、记录6分钟；保留书名/页码或URL/小节，只摘一两句，再写自己的理解。带着问题读：这个概念解决什么问题？输入、输出是什么？选段不含所需内容时，明确写“本段未提供”，继续保留阅读位置。",
                "exercise": "内容周：5\n知识范围：技术文档的用途与术语；优先接续正在读的书/本周资料，不要求每周换书\n具体练习：在20分钟内读14分钟、记录6分钟；保留书名/页码或URL/小节，只摘一两句，再写自己的理解。带着问题读：这个概念解决什么问题？输入、输出是什么？选段不含所需内容时，明确写“本段未提供”，继续保留阅读位置。\n验收标准：留下准确来源位置、一条短摘录和一句自己的理解；能区分原文与自己的判断，并回答至少一个阅读问题。没有证据时指出缺口，未读完不算失败；下一次从已保存位置继续。\n交付物：w05_reading_s1.md：来源/位置、短摘录、自述、问题、下次位置\n推荐资料：https://numpy.org/doc/stable/user/quickstart.html",
                "materialUrl": "https://numpy.org/doc/stable/user/quickstart.html",
                "materialTitle": "NumPy 官方入门",
                "mastery": "unassessed",
                "updatedAt": "2026-10-11T04:13:30.080Z"
              },
              {
                "id": "f308e998-18e5-4b5e-9bb2-52f4ffee2d89",
                "stageId": "a5d8a444-3d73-4521-8c68-ffc63b9bbbd2",
                "title": "AI-W05-D3 数组索引与切片",
                "kind": "programming",
                "order": 4,
                "estimatedMinutes": 90,
                "firstStep": "从3x4矩阵提取一整行、某列、2x2子阵",
                "exercise": "内容周：5\n知识范围：1维、2维索引；行与列；切片不包含右端\n具体练习：从3x4矩阵提取一整行、某列、2x2子阵\n验收标准：不查资料正确写出3种切片表达式\n交付物：w05_d3_index.py\n前置任务：AI-W05-D2\n推荐资料：https://numpy.org/doc/stable/user/absolute_beginners.html",
                "materialUrl": "https://numpy.org/doc/stable/user/absolute_beginners.html",
                "materialTitle": "NumPy 官方入门",
                "mastery": "unassessed",
                "updatedAt": "2026-10-11T04:13:30.080Z"
              },
              {
                "id": "5cca6704-f418-41b1-bc7c-4a8be7ba6416",
                "stageId": "a5d8a444-3d73-4521-8c68-ffc63b9bbbd2",
                "title": "EN-W05-S2 英语短文与听读：第5周",
                "kind": "english",
                "order": 5,
                "estimatedMinutes": 20,
                "firstStep": "复习2分钟、选段阅读8分钟、听读5分钟、复述3分钟、记录2分钟。读资源页的60—100词，圈3词；用系统朗读听：There are three columns.（有三列。），遮住文字再听。原文太难时用本周3句示例替代。",
                "exercise": "内容周：5\n知识范围：The Basics（基础），只选数组形状/类型附近的2—4句；60—100词；句型：There is/are…；描述数量与形状；先尝试理解，再看中文解释\n具体练习：复习2分钟、选段阅读8分钟、听读5分钟、复述3分钟、记录2分钟。读资源页的60—100词，圈3词；用系统朗读听：There are three columns.（有三列。），遮住文字再听。原文太难时用本周3句示例替代。\n验收标准：不用逐字翻译，能用中文说出选段或3句示例的大意；听读后辨认2个关键词，再核对文字。记录一处理解变化或疑问；替代材料需标注，暂不懂的地方进入下次复习。\n交付物：w05_english_s2.md：URL/小节、3词、大意、听懂词、疑问；标注是否用示例替代\n推荐资料：https://numpy.org/doc/stable/user/quickstart.html",
                "materialUrl": "https://numpy.org/doc/stable/user/quickstart.html",
                "materialTitle": "NumPy 官方入门",
                "mastery": "unassessed",
                "updatedAt": "2026-10-11T04:13:30.080Z"
              },
              {
                "id": "d25aca0d-363e-43ff-90c8-b5ef86fefc63",
                "stageId": "a5d8a444-3d73-4521-8c68-ffc63b9bbbd2",
                "title": "AI-W05-D4 reshape重塑与 -1",
                "kind": "programming",
                "order": 6,
                "estimatedMinutes": 90,
                "firstStep": "把12元素重塑为(3,4)/(2,6)并尝试非法形状",
                "exercise": "内容周：5\n知识范围：reshape、元素总数不变、-1自动推断\n具体练习：把12元素重塑为(3,4)/(2,6)并尝试非法形状\n验收标准：正确解释为什么 reshape(5,3)报错\n交付物：w05_d4_reshape.py\n前置任务：AI-W05-D3\n推荐资料：https://numpy.org/doc/stable/user/absolute_beginners.html",
                "materialUrl": "https://numpy.org/doc/stable/user/absolute_beginners.html",
                "materialTitle": "NumPy 官方入门",
                "mastery": "unassessed",
                "updatedAt": "2026-10-11T04:13:30.080Z"
              },
              {
                "id": "58203501-993c-4d33-84bc-3ca206f4266f",
                "stageId": "a5d8a444-3d73-4521-8c68-ffc63b9bbbd2",
                "title": "AI-W05-D5 基本统计 sum / mean / max",
                "kind": "programming",
                "order": 7,
                "estimatedMinutes": 90,
                "firstStep": "对7天时长矩阵计算每日合计、总体平均",
                "exercise": "内容周：5\n知识范围：数组元素统计、axis概念初见、向量化\n具体练习：对7天时长矩阵计算每日合计、总体平均\n验收标准：手算两项校验，并说明函数是在按什么轴算\n交付物：w05_d5_stats.py\n前置任务：AI-W05-D4\n推荐资料：https://numpy.org/doc/stable/user/absolute_beginners.html",
                "materialUrl": "https://numpy.org/doc/stable/user/absolute_beginners.html",
                "materialTitle": "NumPy 官方入门",
                "mastery": "unassessed",
                "updatedAt": "2026-10-11T04:13:30.080Z"
              },
              {
                "id": "068c9f1b-8d87-45fc-b8db-6d6f9d12d465",
                "stageId": "a5d8a444-3d73-4521-8c68-ffc63b9bbbd2",
                "title": "EN-W05-S3 英语三句总结与口头解释：第5周",
                "kind": "english",
                "order": 8,
                "estimatedMinutes": 20,
                "firstStep": "复习3分钟、写句7分钟、听读2分钟、口头解释6分钟、记录2分钟。围绕实际练习写3句，再遮住文本说20—40秒。参考：The array has six values.（这个数组有六个数值。）先自己写，再请AI或老师给一处修改及理由。",
                "exercise": "内容周：5\n知识范围：本周句型：There is/are…；描述数量与形状；示例只供改写，不能当成真实学习日志\n具体练习：复习3分钟、写句7分钟、听读2分钟、口头解释6分钟、记录2分钟。围绕实际练习写3句，再遮住文本说20—40秒。参考：The array has six values.（这个数组有六个数值。）先自己写，再请AI或老师给一处修改及理由。\n验收标准：3句含一个实际做过的动作、结果或疑问，意思清楚；能借关键词口头解释20—40秒，允许停顿。标记一处修正和下周需回忆的词；录音可选，不以口音或流利程度作为唯一标准。\n交付物：w05_english_s3.md：自写3句、1处修正及理由、口述自检、Next；可选录音\n推荐资料：https://numpy.org/doc/stable/user/quickstart.html",
                "materialUrl": "https://numpy.org/doc/stable/user/quickstart.html",
                "materialTitle": "NumPy 官方入门",
                "mastery": "unassessed",
                "updatedAt": "2026-10-11T04:13:30.080Z"
              },
              {
                "id": "af5c54af-13eb-4f91-9b1c-564ce3904746",
                "stageId": "a5d8a444-3d73-4521-8c68-ffc63b9bbbd2",
                "title": "AI-W05-D6 小项目：多项目学习时长矩阵",
                "kind": "programming",
                "order": 9,
                "estimatedMinutes": 120,
                "firstStep": "创建7×3分钟矩阵，明确行是日期、列是项目；求各项目合计与每日合计，手算两项核对。",
                "exercise": "内容周：5\n知识范围：7×3数组、各项目合计与手算；将副成果统一为Python/英语/阅读的虚构周记录。\n具体练习：创建7×3分钟矩阵，明确行是日期、列是项目；求各项目合计与每日合计，手算两项核对。\n验收标准：结果正确，准确解释(7,3)与两种汇总结果shape；真实个人记录不用作模型样本。\n交付物：w05_d6_study_matrix.py＋手算核对表\n前置任务：AI-W05-D5\n推荐资料：https://numpy.org/doc/stable/user/absolute_beginners.html",
                "materialUrl": "https://numpy.org/doc/stable/user/absolute_beginners.html",
                "materialTitle": "NumPy 官方入门",
                "mastery": "unassessed",
                "updatedAt": "2026-10-11T04:13:30.080Z"
              },
              {
                "id": "818a7098-3ce3-4369-bd5c-6cf37a592efc",
                "stageId": "a5d8a444-3d73-4521-8c68-ffc63b9bbbd2",
                "title": "RD-W05-S2 阅读复述与应用：第5周",
                "kind": "reading",
                "order": 10,
                "estimatedMinutes": 20,
                "firstStep": "回忆3分钟、接续阅读10分钟、短输出7分钟。选NumPy文档一个小节，标出三个词；各用自己的话解释一个作用。合上资料，用3句说明“读到什么—自己的例子或判断—尚未解决的问题”，再核对一处可能误读，保存下一次位置。",
                "exercise": "内容周：5\n知识范围：技术文档的用途与术语；阅读、回忆、短输出都计入原20分钟\n具体练习：回忆3分钟、接续阅读10分钟、短输出7分钟。选NumPy文档一个小节，标出三个词；各用自己的话解释一个作用。合上资料，用3句说明“读到什么—自己的例子或判断—尚未解决的问题”，再核对一处可能误读，保存下一次位置。\n验收标准：不用照抄也能复述一个观点，给出一个自己的例子或核对问题；标明原文位置、理解限度和下次位置。已有疑问未查清可继续保留，不要求同一时段读完一章或写长笔记。\n交付物：w05_reading_s2.md：3句复述、自制例子/核对问题、纠正或局限、下次位置\n推荐资料：https://numpy.org/doc/stable/user/quickstart.html",
                "materialUrl": "https://numpy.org/doc/stable/user/quickstart.html",
                "materialTitle": "NumPy 官方入门",
                "mastery": "unassessed",
                "updatedAt": "2026-10-11T04:13:30.080Z"
              },
              {
                "id": "0beaa990-1894-44bc-b498-ecb49a22a465",
                "stageId": "a5d8a444-3d73-4521-8c68-ffc63b9bbbd2",
                "title": "AI-W05-D7 NumPy第1周复习",
                "kind": "programming",
                "order": 11,
                "estimatedMinutes": 60,
                "firstStep": "闭卷画出3个数组形状并完成5道小题",
                "exercise": "内容周：5\n知识范围：array、shape、ndim、reshape、索引\n具体练习：闭卷画出3个数组形状并完成5道小题\n验收标准：至少4/5正确；能说出reshape元素守恒\n交付物：w05_review.md\n前置任务：AI-W05-D6\n推荐资料：https://numpy.org/doc/stable/user/absolute_beginners.html",
                "materialUrl": "https://numpy.org/doc/stable/user/absolute_beginners.html",
                "materialTitle": "NumPy 官方入门",
                "mastery": "unassessed",
                "updatedAt": "2026-10-11T04:13:30.080Z"
              },
              {
                "id": "96411d88-631c-4feb-96de-a6c707f7ad71",
                "stageId": "a5d8a444-3d73-4521-8c68-ffc63b9bbbd2",
                "title": "AI-W06-D1 NumPy逐元素运算",
                "kind": "programming",
                "order": 12,
                "estimatedMinutes": 90,
                "firstStep": "比较[1,2]+[3,4] 与 np.array加法结果",
                "exercise": "内容周：6\n知识范围：加减乘除；array和list行为区别\n具体练习：比较[1,2]+[3,4] 与 np.array加法结果\n验收标准：能说明为何数组加法不同于列表拼接\n交付物：w06_d1_elementwise.py\n前置任务：AI-W05-D7\n推荐资料：https://numpy.org/doc/stable/user/absolute_beginners.html",
                "materialUrl": "https://numpy.org/doc/stable/user/absolute_beginners.html",
                "materialTitle": "NumPy 官方入门",
                "mastery": "unassessed",
                "updatedAt": "2026-10-11T04:13:30.080Z"
              },
              {
                "id": "0f119daa-b808-40f2-b224-c26385e81a4c",
                "stageId": "a5d8a444-3d73-4521-8c68-ffc63b9bbbd2",
                "title": "EN-W06-S1 英语词语与句型：第6周",
                "kind": "english",
                "order": 13,
                "estimatedMinutes": 20,
                "firstStep": "复习2分钟、词语6分钟、句型6分钟、听读4分钟、记录2分钟。保留原6词，选3词主动运用。先猜再查；例句：First, I check the shape.（首先，我检查形状。）用系统朗读播放，跟读并替换一个词。",
                "exercise": "内容周：6\n知识范围：axis, broadcast, matrix, dot, random, seed；句型：First… Then… Finally…；听读采用系统合成朗读\n具体练习：复习2分钟、词语6分钟、句型6分钟、听读4分钟、记录2分钟。保留原6词，选3词主动运用。先猜再查；例句：First, I check the shape.（首先，我检查形状。）用系统朗读播放，跟读并替换一个词。\n验收标准：合上笔记说出至少3个重点词的意思，并用本周句型造一句与练习有关的话；能跟读示例、指出一个未听清的词。遇到困难记为待复习，不要求一次记住全部6词。\n交付物：w06_english_s1.md：6词词卡、1个自写例句、1个待复习词\n推荐资料：https://numpy.org/doc/stable/user/quickstart.html",
                "materialUrl": "https://numpy.org/doc/stable/user/quickstart.html",
                "materialTitle": "NumPy 官方入门",
                "mastery": "unassessed",
                "updatedAt": "2026-10-11T04:13:30.080Z"
              },
              {
                "id": "d9aaf6d8-9e9e-4421-bca5-2c978806caf0",
                "stageId": "a5d8a444-3d73-4521-8c68-ffc63b9bbbd2",
                "title": "AI-W06-D2 广播 Broadcasting",
                "kind": "programming",
                "order": 14,
                "estimatedMinutes": 90,
                "firstStep": "将(3,2)数组加上(2,)数组；判断3组shape能否广播",
                "exercise": "内容周：6\n知识范围：广播规则；维度对齐；常见不匹配错误\n具体练习：将(3,2)数组加上(2,)数组；判断3组shape能否广播\n验收标准：能说出至少两条广播规则，3组判断正确\n交付物：w06_d2_broadcast.py\n前置任务：AI-W06-D1\n推荐资料：https://numpy.org/doc/stable/user/absolute_beginners.html",
                "materialUrl": "https://numpy.org/doc/stable/user/absolute_beginners.html",
                "materialTitle": "NumPy 官方入门",
                "mastery": "unassessed",
                "updatedAt": "2026-10-11T04:13:30.080Z"
              },
              {
                "id": "46b1ca16-97b5-47d6-bada-8aec4d686785",
                "stageId": "a5d8a444-3d73-4521-8c68-ffc63b9bbbd2",
                "title": "RD-W06-S1 阅读与提问：第6周摘录",
                "kind": "reading",
                "order": 15,
                "estimatedMinutes": 20,
                "firstStep": "在20分钟内读14分钟、记录6分钟；保留书名/页码或URL/小节，只摘一两句，再写自己的理解。带着问题读：能用一个小例子说明吗？有没有不符合条件的例子？选段不含所需内容时，明确写“本段未提供”，继续保留阅读位置。",
                "exercise": "内容周：6\n知识范围：概念和自己的例子；优先接续正在读的书/本周资料，不要求每周换书\n具体练习：在20分钟内读14分钟、记录6分钟；保留书名/页码或URL/小节，只摘一两句，再写自己的理解。带着问题读：能用一个小例子说明吗？有没有不符合条件的例子？选段不含所需内容时，明确写“本段未提供”，继续保留阅读位置。\n验收标准：留下准确来源位置、一条短摘录和一句自己的理解；能区分原文与自己的判断，并回答至少一个阅读问题。没有证据时指出缺口，未读完不算失败；下一次从已保存位置继续。\n交付物：w06_reading_s1.md：来源/位置、短摘录、自述、问题、下次位置\n推荐资料：https://numpy.org/doc/stable/user/quickstart.html",
                "materialUrl": "https://numpy.org/doc/stable/user/quickstart.html",
                "materialTitle": "NumPy 官方入门",
                "mastery": "unassessed",
                "updatedAt": "2026-10-11T04:13:30.080Z"
              },
              {
                "id": "33400a02-45f5-4782-aaca-283342943fd6",
                "stageId": "a5d8a444-3d73-4521-8c68-ffc63b9bbbd2",
                "title": "AI-W06-D3 axis=0 / axis=1",
                "kind": "programming",
                "order": 16,
                "estimatedMinutes": 90,
                "firstStep": "对3x4数据分别按axis 0、1求和并检查形状",
                "exercise": "内容周：6\n知识范围：轴 Axis、按列/按行聚合；sum/mean\n具体练习：对3x4数据分别按axis 0、1求和并检查形状\n验收标准：解释axis=0为什么得到按列结果\n交付物：w06_d3_axis.py\n前置任务：AI-W06-D2\n推荐资料：https://numpy.org/doc/stable/user/absolute_beginners.html",
                "materialUrl": "https://numpy.org/doc/stable/user/absolute_beginners.html",
                "materialTitle": "NumPy 官方入门",
                "mastery": "unassessed",
                "updatedAt": "2026-10-11T04:13:30.080Z"
              },
              {
                "id": "5642fd95-8f15-4325-b548-3996167ece07",
                "stageId": "a5d8a444-3d73-4521-8c68-ffc63b9bbbd2",
                "title": "EN-W06-S2 英语短文与听读：第6周",
                "kind": "english",
                "order": 17,
                "estimatedMinutes": 20,
                "firstStep": "复习2分钟、选段阅读8分钟、听读5分钟、复述3分钟、记录2分钟。读资源页的60—100词，圈3词；用系统朗读听：Then, I add the arrays.（然后，我把数组相加。），遮住文字再听。原文太难时用本周3句示例替代。",
                "exercise": "内容周：6\n知识范围：Basic Operations（基本运算），选一个例子旁的说明；60—100词；句型：First… Then… Finally…；先尝试理解，再看中文解释\n具体练习：复习2分钟、选段阅读8分钟、听读5分钟、复述3分钟、记录2分钟。读资源页的60—100词，圈3词；用系统朗读听：Then, I add the arrays.（然后，我把数组相加。），遮住文字再听。原文太难时用本周3句示例替代。\n验收标准：不用逐字翻译，能用中文说出选段或3句示例的大意；听读后辨认2个关键词，再核对文字。记录一处理解变化或疑问；替代材料需标注，暂不懂的地方进入下次复习。\n交付物：w06_english_s2.md：URL/小节、3词、大意、听懂词、疑问；标注是否用示例替代\n推荐资料：https://numpy.org/doc/stable/user/quickstart.html",
                "materialUrl": "https://numpy.org/doc/stable/user/quickstart.html",
                "materialTitle": "NumPy 官方入门",
                "mastery": "unassessed",
                "updatedAt": "2026-10-11T04:13:30.080Z"
              },
              {
                "id": "ce116dda-5ad3-489e-9f09-310602af355c",
                "stageId": "a5d8a444-3d73-4521-8c68-ffc63b9bbbd2",
                "title": "AI-W06-D4 点积与矩阵乘法",
                "kind": "programming",
                "order": 18,
                "estimatedMinutes": 90,
                "firstStep": "分别计算向量点积和(2,3)@(3,2)，手算1个元素",
                "exercise": "内容周：6\n知识范围：dot、@、matmul；内积/矩阵积概念\n具体练习：分别计算向量点积和(2,3)@(3,2)，手算1个元素\n验收标准：能指出为何(2,3)@(2,3)不符合矩阵乘法规则\n交付物：w06_d4_matmul.py\n前置任务：AI-W06-D3\n推荐资料：https://numpy.org/doc/stable/user/absolute_beginners.html",
                "materialUrl": "https://numpy.org/doc/stable/user/absolute_beginners.html",
                "materialTitle": "NumPy 官方入门",
                "mastery": "unassessed",
                "updatedAt": "2026-10-11T04:13:30.080Z"
              },
              {
                "id": "57194cde-c5e4-41f9-abb8-a41d1e1f159e",
                "stageId": "a5d8a444-3d73-4521-8c68-ffc63b9bbbd2",
                "title": "AI-W06-D5 随机数与复现",
                "kind": "programming",
                "order": 19,
                "estimatedMinutes": 90,
                "firstStep": "固定随机种子生成同样的一组假数据两次",
                "exercise": "内容周：6\n知识范围：随机种子 Seed、np.random；可重复实验\n具体练习：固定随机种子生成同样的一组假数据两次\n验收标准：两次结果一致，知道为何模型实验需要Seed\n交付物：w06_d5_random.py\n前置任务：AI-W06-D4\n推荐资料：https://numpy.org/doc/stable/user/absolute_beginners.html",
                "materialUrl": "https://numpy.org/doc/stable/user/absolute_beginners.html",
                "materialTitle": "NumPy 官方入门",
                "mastery": "unassessed",
                "updatedAt": "2026-10-11T04:13:30.080Z"
              },
              {
                "id": "e61aaeb2-ae90-4258-abf5-76c68c24742d",
                "stageId": "a5d8a444-3d73-4521-8c68-ffc63b9bbbd2",
                "title": "EN-W06-S3 英语三句总结与口头解释：第6周",
                "kind": "english",
                "order": 20,
                "estimatedMinutes": 20,
                "firstStep": "复习3分钟、写句7分钟、听读2分钟、口头解释6分钟、记录2分钟。围绕实际练习写3句，再遮住文本说20—40秒。参考：Finally, I print the result.（最后，我输出结果。）先自己写，再请AI或老师给一处修改及理由。",
                "exercise": "内容周：6\n知识范围：本周句型：First… Then… Finally…；示例只供改写，不能当成真实学习日志\n具体练习：复习3分钟、写句7分钟、听读2分钟、口头解释6分钟、记录2分钟。围绕实际练习写3句，再遮住文本说20—40秒。参考：Finally, I print the result.（最后，我输出结果。）先自己写，再请AI或老师给一处修改及理由。\n验收标准：3句含一个实际做过的动作、结果或疑问，意思清楚；能借关键词口头解释20—40秒，允许停顿。标记一处修正和下周需回忆的词；录音可选，不以口音或流利程度作为唯一标准。\n交付物：w06_english_s3.md：自写3句、1处修正及理由、口述自检、Next；可选录音\n推荐资料：https://numpy.org/doc/stable/user/quickstart.html",
                "materialUrl": "https://numpy.org/doc/stable/user/quickstart.html",
                "materialTitle": "NumPy 官方入门",
                "mastery": "unassessed",
                "updatedAt": "2026-10-11T04:13:30.080Z"
              },
              {
                "id": "a7029dbc-867f-4845-b41c-798192317d68",
                "stageId": "a5d8a444-3d73-4521-8c68-ffc63b9bbbd2",
                "title": "AI-W06-D6 小项目：向量化学习时长分析",
                "kind": "programming",
                "order": 21,
                "estimatedMinutes": 120,
                "firstStep": "用NumPy计算每日/各项目总分钟；与第2周循环版核对；比较前3天与后3天平均，说明略去中间一天。",
                "exercise": "内容周：6\n知识范围：向量化、均值与变化比较；以同一虚构周记录替换成绩案例，避免新增第二个项目。\n具体练习：用NumPy计算每日/各项目总分钟；与第2周循环版核对；比较前3天与后3天平均，说明略去中间一天。\n验收标准：主体使用数组运算，两版结果一致；比较口径明确，能解释各轴与均值，不能从时长推断掌握程度。\n交付物：w06_d6_study_numpy.py＋循环/数组核对表\n前置任务：AI-W06-D5\n推荐资料：https://numpy.org/doc/stable/user/absolute_beginners.html",
                "materialUrl": "https://numpy.org/doc/stable/user/absolute_beginners.html",
                "materialTitle": "NumPy 官方入门",
                "mastery": "unassessed",
                "updatedAt": "2026-10-11T04:13:30.080Z"
              },
              {
                "id": "8282a131-0613-46c7-90ae-e27a59b31f4c",
                "stageId": "a5d8a444-3d73-4521-8c68-ffc63b9bbbd2",
                "title": "RD-W06-S2 阅读复述与应用：第6周",
                "kind": "reading",
                "order": 22,
                "estimatedMinutes": 20,
                "firstStep": "回忆3分钟、接续阅读10分钟、短输出7分钟。写一个自制的小数组例子和一个不适用的情况，解释它们的区别。合上资料，用3句说明“读到什么—自己的例子或判断—尚未解决的问题”，再核对一处可能误读，保存下一次位置。",
                "exercise": "内容周：6\n知识范围：概念和自己的例子；阅读、回忆、短输出都计入原20分钟\n具体练习：回忆3分钟、接续阅读10分钟、短输出7分钟。写一个自制的小数组例子和一个不适用的情况，解释它们的区别。合上资料，用3句说明“读到什么—自己的例子或判断—尚未解决的问题”，再核对一处可能误读，保存下一次位置。\n验收标准：不用照抄也能复述一个观点，给出一个自己的例子或核对问题；标明原文位置、理解限度和下次位置。已有疑问未查清可继续保留，不要求同一时段读完一章或写长笔记。\n交付物：w06_reading_s2.md：3句复述、自制例子/核对问题、纠正或局限、下次位置\n推荐资料：https://numpy.org/doc/stable/user/quickstart.html",
                "materialUrl": "https://numpy.org/doc/stable/user/quickstart.html",
                "materialTitle": "NumPy 官方入门",
                "mastery": "unassessed",
                "updatedAt": "2026-10-11T04:13:30.080Z"
              },
              {
                "id": "7a852f8e-4bd0-4ff4-96c7-b0b7ccbd8073",
                "stageId": "a5d8a444-3d73-4521-8c68-ffc63b9bbbd2",
                "title": "AI-W06-D7 NumPy总结与可复现错误图谱",
                "kind": "programming",
                "order": 23,
                "estimatedMinutes": 60,
                "firstStep": "完成4题后，整理2个实际数组错误；每个保留最少输入和出错行，先预测修正后的shape再运行。",
                "exercise": "内容周：6\n知识范围：4道shape/广播闭卷题；将错误记录规范为类型、位置、值或shape、原因、最小修复。\n具体练习：完成4题后，整理2个实际数组错误；每个保留最少输入和出错行，先预测修正后的shape再运行。\n验收标准：闭卷≥3/4题；2个错误可重现且修复；解释修复原因，不只复制报错或答案。\n交付物：w06_error_notes.md＋2个最小错误示例\n前置任务：AI-W06-D6\n推荐资料：https://numpy.org/doc/stable/user/absolute_beginners.html",
                "materialUrl": "https://numpy.org/doc/stable/user/absolute_beginners.html",
                "materialTitle": "NumPy 官方入门",
                "mastery": "unassessed",
                "updatedAt": "2026-10-11T04:13:30.080Z"
              },
              {
                "id": "299bdc9d-1d3f-4e36-91eb-275bc6fa083a",
                "stageId": "a5d8a444-3d73-4521-8c68-ffc63b9bbbd2",
                "title": "AI-W07-D1 向量与矩阵的语言",
                "kind": "programming",
                "order": 24,
                "estimatedMinutes": 90,
                "firstStep": "把二维列表画成矩阵，标注rows与columns",
                "exercise": "内容周：7\n知识范围：vector、matrix、scalar；行/列/shape\n具体练习：把二维列表画成矩阵，标注rows与columns\n验收标准：准确写出5个对象的shape\n交付物：w07_d1_vectors.md\n前置任务：AI-W06-D7\n推荐资料：已学知识笔记与手算练习",
                "materialUrl": "",
                "materialTitle": "已学知识笔记与手算练习",
                "mastery": "unassessed",
                "updatedAt": "2026-10-11T04:13:30.080Z"
              },
              {
                "id": "ca3b4aac-bde3-41b7-bbc5-6cde09e4d5eb",
                "stageId": "a5d8a444-3d73-4521-8c68-ffc63b9bbbd2",
                "title": "EN-W07-S1 英语词语与句型：第7周",
                "kind": "english",
                "order": 25,
                "estimatedMinutes": 20,
                "firstStep": "复习2分钟、词语6分钟、句型6分钟、听读4分钟、记录2分钟。保留原6词，选3词主动运用。先猜再查；例句：A matrix can transform a vector.（矩阵可以变换向量。）用系统朗读播放，跟读并替换一个词。",
                "exercise": "内容周：7\n知识范围：vector, matrix, input, output, weight, bias；句型：We use… to…；说明用途；听读采用系统合成朗读\n具体练习：复习2分钟、词语6分钟、句型6分钟、听读4分钟、记录2分钟。保留原6词，选3词主动运用。先猜再查；例句：A matrix can transform a vector.（矩阵可以变换向量。）用系统朗读播放，跟读并替换一个词。\n验收标准：合上笔记说出至少3个重点词的意思，并用本周句型造一句与练习有关的话；能跟读示例、指出一个未听清的词。遇到困难记为待复习，不要求一次记住全部6词。\n交付物：w07_english_s1.md：6词词卡、1个自写例句、1个待复习词\n推荐资料：https://d2l.ai/chapter_preliminaries/linear-algebra.html",
                "materialUrl": "https://d2l.ai/chapter_preliminaries/linear-algebra.html",
                "materialTitle": "动手学深度学习",
                "mastery": "unassessed",
                "updatedAt": "2026-10-11T04:13:30.080Z"
              },
              {
                "id": "91ad7a26-eeb0-4878-b696-56d0d6bce689",
                "stageId": "a5d8a444-3d73-4521-8c68-ffc63b9bbbd2",
                "title": "AI-W07-D2 矩阵乘法的维度规则",
                "kind": "programming",
                "order": 26,
                "estimatedMinutes": 90,
                "firstStep": "判断8组矩阵相乘是否合法并写出输出shape",
                "exercise": "内容周：7\n知识范围：(m,n)@(n,p)->(m,p)；内维相等\n具体练习：判断8组矩阵相乘是否合法并写出输出shape\n验收标准：至少7/8组准确，能说清内维为什么必须相等\n交付物：w07_d2_multiply.py\n前置任务：AI-W07-D1\n推荐资料：已学知识笔记与手算练习",
                "materialUrl": "",
                "materialTitle": "已学知识笔记与手算练习",
                "mastery": "unassessed",
                "updatedAt": "2026-10-11T04:13:30.080Z"
              },
              {
                "id": "c225d054-36c6-4802-bd8e-331e0e938fa5",
                "stageId": "a5d8a444-3d73-4521-8c68-ffc63b9bbbd2",
                "title": "RD-W07-S1 阅读与提问：第7周摘录",
                "kind": "reading",
                "order": 27,
                "estimatedMinutes": 20,
                "firstStep": "在20分钟内读14分钟、记录6分钟；保留书名/页码或URL/小节，只摘一两句，再写自己的理解。带着问题读：文字定义如何对应到本周代码？输入、输出维度各是什么？选段不含所需内容时，明确写“本段未提供”，继续保留阅读位置。",
                "exercise": "内容周：7\n知识范围：把矩阵概念与练习连接；优先接续正在读的书/本周资料，不要求每周换书\n具体练习：在20分钟内读14分钟、记录6分钟；保留书名/页码或URL/小节，只摘一两句，再写自己的理解。带着问题读：文字定义如何对应到本周代码？输入、输出维度各是什么？选段不含所需内容时，明确写“本段未提供”，继续保留阅读位置。\n验收标准：留下准确来源位置、一条短摘录和一句自己的理解；能区分原文与自己的判断，并回答至少一个阅读问题。没有证据时指出缺口，未读完不算失败；下一次从已保存位置继续。\n交付物：w07_reading_s1.md：来源/位置、短摘录、自述、问题、下次位置\n推荐资料：https://d2l.ai/chapter_preliminaries/linear-algebra.html",
                "materialUrl": "https://d2l.ai/chapter_preliminaries/linear-algebra.html",
                "materialTitle": "动手学深度学习",
                "mastery": "unassessed",
                "updatedAt": "2026-10-11T04:13:30.080Z"
              },
              {
                "id": "164b6968-4b54-4abc-8d80-98bb386d94a6",
                "stageId": "a5d8a444-3d73-4521-8c68-ffc63b9bbbd2",
                "title": "AI-W07-D3 线性层特征数：先用NumPy理解X@W+b",
                "kind": "programming",
                "order": 28,
                "estimatedMinutes": 90,
                "firstStep": "画X(2,3)、W(3,5)、b(5,)；用NumPy计算X@W+b；预测输出(2,5)，说明batch、输入/输出特征。",
                "exercise": "内容周：7\n知识范围：Linear(3,5)的输入输出含义；先用NumPy计算，PyTorch名称只作后续对应，不要求新装torch。\n具体练习：画X(2,3)、W(3,5)、b(5,)；用NumPy计算X@W+b；预测输出(2,5)，说明batch、输入/输出特征。\n验收标准：运行前shape预测正确；说明矩阵乘法与偏置广播；能对照Linear(3,5)含义。\n交付物：w07_d3_linear_numpy.py＋手绘shape图\n前置任务：AI-W07-D2\n推荐资料：https://numpy.org/doc/stable/user/absolute_beginners.html",
                "materialUrl": "https://numpy.org/doc/stable/user/absolute_beginners.html",
                "materialTitle": "NumPy 官方入门",
                "mastery": "unassessed",
                "updatedAt": "2026-10-11T04:13:30.080Z"
              },
              {
                "id": "517a7cdd-af27-40d8-82db-e0c5cf8ad16d",
                "stageId": "a5d8a444-3d73-4521-8c68-ffc63b9bbbd2",
                "title": "EN-W07-S2 英语短文与听读：第7周",
                "kind": "english",
                "order": 29,
                "estimatedMinutes": 20,
                "firstStep": "复习2分钟、选段阅读8分钟、听读5分钟、复述3分钟、记录2分钟。读资源页的60—100词，圈3词；用系统朗读听：We use it to compute the output.（我们用它计算输出。），遮住文字再听。原文太难时用本周3句示例替代。",
                "exercise": "内容周：7\n知识范围：Vectors/Matrices（向量/矩阵），只选定义附近2—4句；60—100词；句型：We use… to…；说明用途；先尝试理解，再看中文解释\n具体练习：复习2分钟、选段阅读8分钟、听读5分钟、复述3分钟、记录2分钟。读资源页的60—100词，圈3词；用系统朗读听：We use it to compute the output.（我们用它计算输出。），遮住文字再听。原文太难时用本周3句示例替代。\n验收标准：不用逐字翻译，能用中文说出选段或3句示例的大意；听读后辨认2个关键词，再核对文字。记录一处理解变化或疑问；替代材料需标注，暂不懂的地方进入下次复习。\n交付物：w07_english_s2.md：URL/小节、3词、大意、听懂词、疑问；标注是否用示例替代\n推荐资料：https://d2l.ai/chapter_preliminaries/linear-algebra.html",
                "materialUrl": "https://d2l.ai/chapter_preliminaries/linear-algebra.html",
                "materialTitle": "动手学深度学习",
                "mastery": "unassessed",
                "updatedAt": "2026-10-11T04:13:30.080Z"
              },
              {
                "id": "d430410a-70b2-4b97-ac8a-26ff87a761d3",
                "stageId": "a5d8a444-3d73-4521-8c68-ffc63b9bbbd2",
                "title": "AI-W07-D4 转置 Transpose 与矩阵变换",
                "kind": "programming",
                "order": 30,
                "estimatedMinutes": 90,
                "firstStep": "将2x3转置为3x2，用NumPy检验",
                "exercise": "内容周：7\n知识范围：transpose、.T；shape如何交换\n具体练习：将2x3转置为3x2，用NumPy检验\n验收标准：能说出转置前后shape，解释何时要转置\n交付物：w07_d4_transpose.py\n前置任务：AI-W07-D3\n推荐资料：已学知识笔记与手算练习",
                "materialUrl": "",
                "materialTitle": "已学知识笔记与手算练习",
                "mastery": "unassessed",
                "updatedAt": "2026-10-11T04:13:30.080Z"
              },
              {
                "id": "1d88130f-4192-4c86-8867-e71b01d311f9",
                "stageId": "a5d8a444-3d73-4521-8c68-ffc63b9bbbd2",
                "title": "AI-W07-D5 线性层参数量：权重与偏置",
                "kind": "programming",
                "order": 31,
                "estimatedMinutes": 90,
                "firstStep": "画W与b；手算3×5+5=20、5×2+2=12；用NumPy size核对，解释输出数决定偏置数量。",
                "exercise": "内容周：7\n知识范围：Linear(3,5)、Linear(5,2)参数量；用NumPy数组和手算说明，不提前依赖PyTorch。\n具体练习：画W与b；手算3×5+5=20、5×2+2=12；用NumPy size核对，解释输出数决定偏置数量。\n验收标准：两层参数量均正确，能解释每一项来源；知道NumPy演示权重方向与PyTorch存储方向可以不同。\n交付物：w07_d5_parameter_count.py＋两层参数手算\n前置任务：AI-W07-D4\n推荐资料：https://numpy.org/doc/stable/user/absolute_beginners.html",
                "materialUrl": "https://numpy.org/doc/stable/user/absolute_beginners.html",
                "materialTitle": "NumPy 官方入门",
                "mastery": "unassessed",
                "updatedAt": "2026-10-11T04:13:30.080Z"
              },
              {
                "id": "20463287-9fbb-40cf-8967-e843fad13aca",
                "stageId": "a5d8a444-3d73-4521-8c68-ffc63b9bbbd2",
                "title": "EN-W07-S3 英语三句总结与口头解释：第7周",
                "kind": "english",
                "order": 32,
                "estimatedMinutes": 20,
                "firstStep": "复习3分钟、写句7分钟、听读2分钟、口头解释6分钟、记录2分钟。围绕实际练习写3句，再遮住文本说20—40秒。参考：I can explain one example.（我能解释一个例子。）先自己写，再请AI或老师给一处修改及理由。",
                "exercise": "内容周：7\n知识范围：本周句型：We use… to…；说明用途；示例只供改写，不能当成真实学习日志\n具体练习：复习3分钟、写句7分钟、听读2分钟、口头解释6分钟、记录2分钟。围绕实际练习写3句，再遮住文本说20—40秒。参考：I can explain one example.（我能解释一个例子。）先自己写，再请AI或老师给一处修改及理由。\n验收标准：3句含一个实际做过的动作、结果或疑问，意思清楚；能借关键词口头解释20—40秒，允许停顿。标记一处修正和下周需回忆的词；录音可选，不以口音或流利程度作为唯一标准。\n交付物：w07_english_s3.md：自写3句、1处修正及理由、口述自检、Next；可选录音\n推荐资料：https://d2l.ai/chapter_preliminaries/linear-algebra.html",
                "materialUrl": "https://d2l.ai/chapter_preliminaries/linear-algebra.html",
                "materialTitle": "动手学深度学习",
                "mastery": "unassessed",
                "updatedAt": "2026-10-11T04:13:30.080Z"
              },
              {
                "id": "dbf88ac6-277e-48b7-9ac4-6c0e53dc8df8",
                "stageId": "a5d8a444-3d73-4521-8c68-ffc63b9bbbd2",
                "title": "AI-W07-D6 小项目：NumPy形状追踪器",
                "kind": "programming",
                "order": 33,
                "estimatedMinutes": 120,
                "firstStep": "用NumPy连接两次线性变换，先写每层shape再运行；将第一层输入改为(8,4)，定位不匹配处。",
                "exercise": "内容周：7\n知识范围：(8,3)→(8,5)→(8,2)形状链；先用X@W+b演示两层，加入最小错误输入定位。\n具体练习：用NumPy连接两次线性变换，先写每层shape再运行；将第一层输入改为(8,4)，定位不匹配处。\n验收标准：正确链输出(8,2)；不运行也能推导；指出错误输入哪两个维度不相等，修复后正常。\n交付物：w07_d6_shape_tracker.py＋最小错误示例\n前置任务：AI-W07-D5\n推荐资料：https://numpy.org/doc/stable/user/absolute_beginners.html",
                "materialUrl": "https://numpy.org/doc/stable/user/absolute_beginners.html",
                "materialTitle": "NumPy 官方入门",
                "mastery": "unassessed",
                "updatedAt": "2026-10-11T04:13:30.080Z"
              },
              {
                "id": "805b4816-a5d8-443a-803e-1fac7279b22d",
                "stageId": "a5d8a444-3d73-4521-8c68-ffc63b9bbbd2",
                "title": "RD-W07-S2 阅读复述与应用：第7周",
                "kind": "reading",
                "order": 34,
                "estimatedMinutes": 20,
                "firstStep": "回忆3分钟、接续阅读10分钟、短输出7分钟。标出定义来源，画一个2维例子，写一句它与实际练习的联系。合上资料，用3句说明“读到什么—自己的例子或判断—尚未解决的问题”，再核对一处可能误读，保存下一次位置。",
                "exercise": "内容周：7\n知识范围：把矩阵概念与练习连接；阅读、回忆、短输出都计入原20分钟\n具体练习：回忆3分钟、接续阅读10分钟、短输出7分钟。标出定义来源，画一个2维例子，写一句它与实际练习的联系。合上资料，用3句说明“读到什么—自己的例子或判断—尚未解决的问题”，再核对一处可能误读，保存下一次位置。\n验收标准：不用照抄也能复述一个观点，给出一个自己的例子或核对问题；标明原文位置、理解限度和下次位置。已有疑问未查清可继续保留，不要求同一时段读完一章或写长笔记。\n交付物：w07_reading_s2.md：3句复述、自制例子/核对问题、纠正或局限、下次位置\n推荐资料：https://d2l.ai/chapter_preliminaries/linear-algebra.html",
                "materialUrl": "https://d2l.ai/chapter_preliminaries/linear-algebra.html",
                "materialTitle": "动手学深度学习",
                "mastery": "unassessed",
                "updatedAt": "2026-10-11T04:13:30.080Z"
              },
              {
                "id": "4e38b599-84aa-4b68-b5f6-8937f2c7227e",
                "stageId": "a5d8a444-3d73-4521-8c68-ffc63b9bbbd2",
                "title": "AI-W07-D7 线代与PyTorch衔接检查",
                "kind": "programming",
                "order": 35,
                "estimatedMinutes": 60,
                "firstStep": "口述从输入到输出的维度变化；复习以前做过的Shape题",
                "exercise": "内容周：7\n知识范围：向量、矩阵、@、Transpose、shape、参数量\n具体练习：口述从输入到输出的维度变化；复习以前做过的Shape题\n验收标准：5道随机shape题至少4题正确；不熟练则延长复习\n交付物：w07_review.md\n前置任务：AI-W07-D6\n推荐资料：已学知识笔记与手算练习",
                "materialUrl": "",
                "materialTitle": "已学知识笔记与手算练习",
                "mastery": "unassessed",
                "updatedAt": "2026-10-11T04:13:30.080Z"
              },
              {
                "id": "843398b7-ef07-4769-b01e-3722e8920e2b",
                "stageId": "a5d8a444-3d73-4521-8c68-ffc63b9bbbd2",
                "title": "EN-W08-S1 英语词语与句型：第8周",
                "kind": "english",
                "order": 37,
                "estimatedMinutes": 20,
                "firstStep": "复习2分钟、词语6分钟、句型6分钟、听读4分钟、记录2分钟。原6词，选3词主动运用。先猜；例句：I check the gradient because the loss is not decreasing.（损失没下降，所以我检查梯度。）用系统朗读播放，跟读并替换一个词。",
                "exercise": "内容周：8\n知识范围：derivative, gradient, loss, learning rate, descent, chain rule；句型：because…；说明原因；听读采用系统合成朗读\n具体练习：复习2分钟、词语6分钟、句型6分钟、听读4分钟、记录2分钟。原6词，选3词主动运用。先猜；例句：I check the gradient because the loss is not decreasing.（损失没下降，所以我检查梯度。）用系统朗读播放，跟读并替换一个词。\n验收标准：合上笔记说出至少3个重点词的意思，并用本周句型造一句与练习有关的话；能跟读示例、指出一个未听清的词。遇到困难记为待复习，不要求一次记住全部6词。\n交付物：w08_english_s1.md：6词词卡、1个自写例句、1个待复习词\n推荐资料：https://d2l.ai/chapter_preliminaries/calculus.html",
                "materialUrl": "https://d2l.ai/chapter_preliminaries/calculus.html",
                "materialTitle": "动手学深度学习",
                "mastery": "unassessed",
                "updatedAt": "2026-10-11T04:13:30.080Z"
              },
              {
                "id": "42938295-8ac8-4490-b0e1-6a2f1f5780c8",
                "stageId": "a5d8a444-3d73-4521-8c68-ffc63b9bbbd2",
                "title": "AI-W08-D2 求导规则与链式法则",
                "kind": "programming",
                "order": 38,
                "estimatedMinutes": 90,
                "firstStep": "手算x²与(2x+1)²的导数步骤",
                "exercise": "内容周：8\n知识范围：幂函数求导、chain rule；复合函数\n具体练习：手算x²与(2x+1)²的导数步骤\n验收标准：推导无跳步；解释链式法则内外层\n交付物：w08_d2_chainrule.md\n前置任务：AI-W08-D1\n推荐资料：已学知识笔记与手算练习",
                "materialUrl": "",
                "materialTitle": "已学知识笔记与手算练习",
                "mastery": "unassessed",
                "updatedAt": "2026-10-11T04:13:30.080Z"
              },
              {
                "id": "97121965-06d2-42de-b045-b30c2c3b1764",
                "stageId": "a5d8a444-3d73-4521-8c68-ffc63b9bbbd2",
                "title": "RD-W08-S1 阅读与提问：第8周摘录",
                "kind": "reading",
                "order": 39,
                "estimatedMinutes": 20,
                "firstStep": "在20分钟内读14分钟、记录6分钟；保留书名/页码或URL/小节，只摘一两句，再写自己的理解。带着问题读：这条建议支持什么做法？作者提供了什么依据？我如何小规模尝试？选段不含所需内容时，明确写“本段未提供”，继续保留阅读位置。",
                "exercise": "内容周：8\n知识范围：学习方法与自己的尝试；优先接续正在读的书/本周资料，不要求每周换书\n具体练习：在20分钟内读14分钟、记录6分钟；保留书名/页码或URL/小节，只摘一两句，再写自己的理解。带着问题读：这条建议支持什么做法？作者提供了什么依据？我如何小规模尝试？选段不含所需内容时，明确写“本段未提供”，继续保留阅读位置。\n验收标准：留下准确来源位置、一条短摘录和一句自己的理解；能区分原文与自己的判断，并回答至少一个阅读问题。没有证据时指出缺口，未读完不算失败；下一次从已保存位置继续。\n交付物：w08_reading_s1.md：来源/位置、短摘录、自述、问题、下次位置\n推荐资料：https://www.learningscientists.org/downloadable-materials",
                "materialUrl": "https://www.learningscientists.org/downloadable-materials",
                "materialTitle": "学习科学复习材料",
                "mastery": "unassessed",
                "updatedAt": "2026-10-11T04:13:30.080Z"
              },
              {
                "id": "050bf68e-944a-4ad6-a074-103c0af28acc",
                "stageId": "a5d8a444-3d73-4521-8c68-ffc63b9bbbd2",
                "title": "AI-W08-D3 偏导数与梯度 Gradient",
                "kind": "programming",
                "order": 40,
                "estimatedMinutes": 90,
                "firstStep": "手算L(w,b)=(w-2)²+(b-1)²的梯度",
                "exercise": "内容周：8\n知识范围：多个参数、partial derivative、gradient向量\n具体练习：手算L(w,b)=(w-2)²+(b-1)²的梯度\n验收标准：能指出对w求偏导时b看作常数\n交付物：w08_d3_gradient.md\n前置任务：AI-W08-D2\n推荐资料：已学知识笔记与手算练习",
                "materialUrl": "",
                "materialTitle": "已学知识笔记与手算练习",
                "mastery": "unassessed",
                "updatedAt": "2026-10-11T04:13:30.080Z"
              },
              {
                "id": "bf444dca-1145-4609-afcb-17cfd8e68a6a",
                "stageId": "a5d8a444-3d73-4521-8c68-ffc63b9bbbd2",
                "title": "EN-W08-S2 英语短文与听读：第8周",
                "kind": "english",
                "order": 41,
                "estimatedMinutes": 20,
                "firstStep": "复习2分钟、选段阅读8分钟、听读5分钟、复述3分钟、记录2分钟。读资源页的60—100词，圈3词；用系统朗读听：The learning rate controls the step size.（学习率控制步长。），遮住文字再听。原文太难时用本周3句示例替代。",
                "exercise": "内容周：8\n知识范围：Derivatives and Differentiation（导数），只选解释段；60—100词；句型：because…；说明原因；先尝试理解，再看中文解释\n具体练习：复习2分钟、选段阅读8分钟、听读5分钟、复述3分钟、记录2分钟。读资源页的60—100词，圈3词；用系统朗读听：The learning rate controls the step size.（学习率控制步长。），遮住文字再听。原文太难时用本周3句示例替代。\n验收标准：不用逐字翻译，能用中文说出选段或3句示例的大意；听读后辨认2个关键词，再核对文字。记录一处理解变化或疑问；替代材料需标注，暂不懂的地方进入下次复习。\n交付物：w08_english_s2.md：URL/小节、3词、大意、听懂词、疑问；标注是否用示例替代\n推荐资料：https://d2l.ai/chapter_preliminaries/calculus.html",
                "materialUrl": "https://d2l.ai/chapter_preliminaries/calculus.html",
                "materialTitle": "动手学深度学习",
                "mastery": "unassessed",
                "updatedAt": "2026-10-11T04:13:30.080Z"
              },
              {
                "id": "4ca11873-4c67-4537-a83b-c6e641a62a9f",
                "stageId": "a5d8a444-3d73-4521-8c68-ffc63b9bbbd2",
                "title": "AI-W08-D4 损失函数 MSE",
                "kind": "programming",
                "order": 42,
                "estimatedMinutes": 90,
                "firstStep": "给3组真实值和预测值，手算MSE再用Python计算",
                "exercise": "内容周：8\n知识范围：模型预测、误差、均方误差 MSE\n具体练习：给3组真实值和预测值，手算MSE再用Python计算\n验收标准：结果匹配；说清为何平方误差后取均值\n交付物：w08_d4_loss.py\n前置任务：AI-W08-D3\n推荐资料：已学知识笔记与手算练习",
                "materialUrl": "",
                "materialTitle": "已学知识笔记与手算练习",
                "mastery": "unassessed",
                "updatedAt": "2026-10-11T04:13:30.080Z"
              },
              {
                "id": "b45afe5b-b003-4c26-858e-61236da8e356",
                "stageId": "a5d8a444-3d73-4521-8c68-ffc63b9bbbd2",
                "title": "AI-W08-D5 梯度下降 Gradient Descent",
                "kind": "programming",
                "order": 43,
                "estimatedMinutes": 90,
                "firstStep": "选w=0、目标w=2手算3步梯度下降",
                "exercise": "内容周：8\n知识范围：学习率lr、参数更新w=w-lr*grad\n具体练习：选w=0、目标w=2手算3步梯度下降\n验收标准：每一步方向正确；能解释学习率过大可能震荡\n交付物：w08_d5_gd.md\n前置任务：AI-W08-D4\n推荐资料：已学知识笔记与手算练习",
                "materialUrl": "",
                "materialTitle": "已学知识笔记与手算练习",
                "mastery": "unassessed",
                "updatedAt": "2026-10-11T04:13:30.080Z"
              },
              {
                "id": "0efd7c42-591a-4477-b0e3-76079a441ad6",
                "stageId": "a5d8a444-3d73-4521-8c68-ffc63b9bbbd2",
                "title": "EN-W08-S3 英语三句总结与口头解释：第8周",
                "kind": "english",
                "order": 44,
                "estimatedMinutes": 20,
                "firstStep": "复习3分钟、写句7分钟、听读2分钟、口头解释6分钟、记录2分钟。围绕实际练习写3句，再遮住文本说20—40秒。参考：I need to review the chain rule.（我需要复习链式法则。）先自己写，再请AI或老师给一处修改及理由。",
                "exercise": "内容周：8\n知识范围：本周句型：because…；说明原因；示例只供改写，不能当成真实学习日志\n具体练习：复习3分钟、写句7分钟、听读2分钟、口头解释6分钟、记录2分钟。围绕实际练习写3句，再遮住文本说20—40秒。参考：I need to review the chain rule.（我需要复习链式法则。）先自己写，再请AI或老师给一处修改及理由。\n验收标准：3句含一个实际做过的动作、结果或疑问，意思清楚；能借关键词口头解释20—40秒，允许停顿。标记一处修正和下周需回忆的词；录音可选，不以口音或流利程度作为唯一标准。\n交付物：w08_english_s3.md：自写3句、1处修正及理由、口述自检、Next；可选录音\n推荐资料：https://d2l.ai/chapter_preliminaries/calculus.html",
                "materialUrl": "https://d2l.ai/chapter_preliminaries/calculus.html",
                "materialTitle": "动手学深度学习",
                "mastery": "unassessed",
                "updatedAt": "2026-10-11T04:13:30.080Z"
              },
              {
                "id": "629368d7-bd18-4242-acc5-ed8008e16890",
                "stageId": "a5d8a444-3d73-4521-8c68-ffc63b9bbbd2",
                "title": "AI-W08-D6 小项目：拟合直线与AI代码核验",
                "kind": "programming",
                "order": 45,
                "estimatedMinutes": 120,
                "firstStep": "固定合成数据拟合直线；先手算1轮更新，再运行10轮；若采用AI提示，说明修改的行与预期，核对实际结果。",
                "exercise": "内容周：8\n知识范围：纯Python/NumPy梯度下降与10轮Loss；补固定模拟数据、控制变量和对AI修改的验证。\n具体练习：固定合成数据拟合直线；先手算1轮更新，再运行10轮；若采用AI提示，说明修改的行与预期，核对实际结果。\n验收标准：Loss总体下降，更新语句可逐行解释；手算首轮与程序一致；AI建议有验证记录，不能以能运行代替理解。\n交付物：w08_d6_fit_line.py＋Loss表＋手算与AI核验说明\n前置任务：AI-W08-D5\n推荐资料：https://numpy.org/doc/stable/user/absolute_beginners.html",
                "materialUrl": "https://numpy.org/doc/stable/user/absolute_beginners.html",
                "materialTitle": "NumPy 官方入门",
                "mastery": "unassessed",
                "updatedAt": "2026-10-11T04:13:30.080Z"
              },
              {
                "id": "ec074cad-c798-457b-8cef-58b6a121644d",
                "stageId": "a5d8a444-3d73-4521-8c68-ffc63b9bbbd2",
                "title": "RD-W08-S2 阅读复述与应用：第8周",
                "kind": "reading",
                "order": 46,
                "estimatedMinutes": 20,
                "firstStep": "回忆3分钟、接续阅读10分钟、短输出7分钟。选择提取练习或间隔复习的一条建议，写一次可执行尝试和观察指标。合上资料，用3句说明“读到什么—自己的例子或判断—尚未解决的问题”，再核对一处可能误读，保存下一次位置。",
                "exercise": "内容周：8\n知识范围：学习方法与自己的尝试；阅读、回忆、短输出都计入原20分钟\n具体练习：回忆3分钟、接续阅读10分钟、短输出7分钟。选择提取练习或间隔复习的一条建议，写一次可执行尝试和观察指标。合上资料，用3句说明“读到什么—自己的例子或判断—尚未解决的问题”，再核对一处可能误读，保存下一次位置。\n验收标准：不用照抄也能复述一个观点，给出一个自己的例子或核对问题；标明原文位置、理解限度和下次位置。已有疑问未查清可继续保留，不要求同一时段读完一章或写长笔记。\n交付物：w08_reading_s2.md：3句复述、自制例子/核对问题、纠正或局限、下次位置\n推荐资料：https://www.learningscientists.org/downloadable-materials",
                "materialUrl": "https://www.learningscientists.org/downloadable-materials",
                "materialTitle": "学习科学复习材料",
                "mastery": "unassessed",
                "updatedAt": "2026-10-11T04:13:30.080Z"
              },
              {
                "id": "94e42dab-da54-4005-97ed-d31b9d6f2002",
                "stageId": "a5d8a444-3d73-4521-8c68-ffc63b9bbbd2",
                "title": "AI-W08-D7 微积分与优化复盘",
                "kind": "programming",
                "order": 47,
                "estimatedMinutes": 60,
                "firstStep": "闭卷复述梯度下降一轮循环的因果关系",
                "exercise": "内容周：8\n知识范围：导数、链式法则、梯度、MSE、lr\n具体练习：闭卷复述梯度下降一轮循环的因果关系\n验收标准：能手算1轮参数更新并解释每个符号\n交付物：w08_review.md\n前置任务：AI-W08-D6\n推荐资料：已学知识笔记与手算练习",
                "materialUrl": "",
                "materialTitle": "已学知识笔记与手算练习",
                "mastery": "unassessed",
                "updatedAt": "2026-10-11T04:13:30.080Z"
              }
            ]
          },
          {
            "id": "a5bc6b9a-ba20-4374-bcaf-a7337447689e",
            "roadmapId": "a0582307-4fcb-4cbe-842b-c38e3b69d05f",
            "title": "第03个月 数学+最小神经网络",
            "goal": "阶段：基础\n重点内容：线性代数、梯度、统计；PyTorch前向与训练\n补充：增补README、数据来源、基础检查、训练/验证/测试边界和简单基线；预测仍用独立合成数据，学习统计工具保留为副成果，不新增第二个大项目。\n交付物：基础阶段综合预测项目\n原综合预测项目附配置、基线、报告和运行说明。\n过关标准：训练可复现；闭卷回答shape/梯度/训练流程\n可复现、无数据泄漏；循环/函数/CSV/shape关卡通过。\n推进条件：基础未过延长巩固，不按月份强行进入机器学习。\n英语：基础句型、30–120词选段、20–40秒口述。阅读：观点/证据/疑问与3句复述。",
            "order": 2,
            "units": [
              {
                "id": "7504be6d-6aa9-45e8-83fe-a354ca0c08ad",
                "stageId": "a5bc6b9a-ba20-4374-bcaf-a7337447689e",
                "title": "AI-W10-D5 前向传播 Forward pass",
                "kind": "programming",
                "order": 19,
                "estimatedMinutes": 90,
                "firstStep": "喂入(4,3)的张量，预测结果(4,2)并核对",
                "exercise": "内容周：10\n知识范围：model(x)、输入与输出、预测值\n具体练习：喂入(4,3)的张量，预测结果(4,2)并核对\n验收标准：能自己预测输出shape，并辨认错误输入维度\n交付物：w10_d5_forward.py\n前置任务：AI-W10-D4\n推荐资料：https://pytorch.org/tutorials/beginner/basics/intro.html",
                "materialUrl": "https://pytorch.org/tutorials/beginner/basics/intro.html",
                "materialTitle": "PyTorch 官方教程",
                "mastery": "unassessed",
                "updatedAt": "2026-10-11T04:13:30.080Z"
              },
              {
                "id": "7fdacd4c-c769-4294-b28a-190330009906",
                "stageId": "a5bc6b9a-ba20-4374-bcaf-a7337447689e",
                "title": "AI-W09-D1 平均值/方差/标准差",
                "kind": "programming",
                "order": 0,
                "estimatedMinutes": 90,
                "firstStep": "手算5个数的均值和方差，再用NumPy验证",
                "exercise": "内容周：9\n知识范围：mean、variance、standard deviation\n具体练习：手算5个数的均值和方差，再用NumPy验证\n验收标准：说出方差与波动关系，明确总体/样本方差区别\n交付物：w09_d1_stats.py\n前置任务：AI-W08-D7\n推荐资料：已学知识笔记与手算练习",
                "materialUrl": "",
                "materialTitle": "已学知识笔记与手算练习",
                "mastery": "unassessed",
                "updatedAt": "2026-10-11T04:13:30.080Z"
              },
              {
                "id": "8a892313-8320-412a-b9c7-c5ce732de027",
                "stageId": "a5bc6b9a-ba20-4374-bcaf-a7337447689e",
                "title": "EN-W09-S1 英语词语与句型：第9周",
                "kind": "english",
                "order": 1,
                "estimatedMinutes": 20,
                "firstStep": "复习2分钟、词语6分钟、句型6分钟、听读4分钟、记录2分钟。保留原6词，选3词主动运用。先猜再查；例句：This sample has ten values.（这个样本有十个数值。）用系统朗读播放，跟读并替换一个词。",
                "exercise": "内容周：9\n知识范围：mean, variance, standard deviation, normal distribution, sample, probability；句型：higher/lower than…；比较并说明范围；听读采用系统合成朗读\n具体练习：复习2分钟、词语6分钟、句型6分钟、听读4分钟、记录2分钟。保留原6词，选3词主动运用。先猜再查；例句：This sample has ten values.（这个样本有十个数值。）用系统朗读播放，跟读并替换一个词。\n验收标准：合上笔记说出至少3个重点词的意思，并用本周句型造一句与练习有关的话；能跟读示例、指出一个未听清的词。遇到困难记为待复习，不要求一次记住全部6词。\n交付物：w09_english_s1.md：6词词卡、1个自写例句、1个待复习词\n推荐资料：https://d2l.ai/chapter_preliminaries/probability.html",
                "materialUrl": "https://d2l.ai/chapter_preliminaries/probability.html",
                "materialTitle": "动手学深度学习",
                "mastery": "unassessed",
                "updatedAt": "2026-10-11T04:13:30.080Z"
              },
              {
                "id": "c549e50e-32db-4afc-93b1-dc74566560de",
                "stageId": "a5bc6b9a-ba20-4374-bcaf-a7337447689e",
                "title": "AI-W09-D2 概率与条件频率：从计数开始",
                "kind": "programming",
                "order": 2,
                "estimatedMinutes": 90,
                "firstStep": "列10条虚构记录及两种标签；先算全部样本事件频率，再只选某标签计算条件频率；写清分子/分母和样本范围。",
                "exercise": "内容周：9\n知识范围：Probability概率、事件与条件；用虚构小表计算样本频率和条件频率，分母随条件改变；小样本频率不直接当作总体理论概率。\n具体练习：列10条虚构记录及两种标签；先算全部样本事件频率，再只选某标签计算条件频率；写清分子/分母和样本范围。\n验收标准：两种频率手算正确；解释条件变化为何改变分母；零个符合条件的样本保持不可计算，不写概率0。\n交付物：w09_d2_probability.md：10条样本、分子/分母与解释\n前置任务：AI-W09-D1\n推荐资料：已学知识笔记与手算练习",
                "materialUrl": "",
                "materialTitle": "已学知识笔记与手算练习",
                "mastery": "unassessed",
                "updatedAt": "2026-10-11T04:13:30.080Z"
              },
              {
                "id": "99b31a19-49ac-419c-8e74-5d7d7383f3c2",
                "stageId": "a5bc6b9a-ba20-4374-bcaf-a7337447689e",
                "title": "RD-W09-S1 阅读与提问：第9周摘录",
                "kind": "reading",
                "order": 3,
                "estimatedMinutes": 20,
                "firstStep": "在20分钟内读14分钟、记录6分钟；保留书名/页码或URL/小节，只摘一两句，再写自己的理解。带着问题读：样本从哪里来？分母是什么？平均数隐藏了什么？相关是否被说成因果？选段不含所需内容时，明确写“本段未提供”，继续保留阅读位置。",
                "exercise": "内容周：9\n知识范围：统计判断的局限；优先接续正在读的书/本周资料，不要求每周换书\n具体练习：在20分钟内读14分钟、记录6分钟；保留书名/页码或URL/小节，只摘一两句，再写自己的理解。带着问题读：样本从哪里来？分母是什么？平均数隐藏了什么？相关是否被说成因果？选段不含所需内容时，明确写“本段未提供”，继续保留阅读位置。\n验收标准：留下准确来源位置、一条短摘录和一句自己的理解；能区分原文与自己的判断，并回答至少一个阅读问题。没有证据时指出缺口，未读完不算失败；下一次从已保存位置继续。\n交付物：w09_reading_s1.md：来源/位置、短摘录、自述、问题、下次位置\n推荐资料：https://d2l.ai/chapter_preliminaries/probability.html",
                "materialUrl": "https://d2l.ai/chapter_preliminaries/probability.html",
                "materialTitle": "动手学深度学习",
                "mastery": "unassessed",
                "updatedAt": "2026-10-11T04:13:30.080Z"
              },
              {
                "id": "c21c894b-bde0-4562-a1b2-e2894e71c2d0",
                "stageId": "a5bc6b9a-ba20-4374-bcaf-a7337447689e",
                "title": "AI-W09-D3 正态分布 Normal Distribution",
                "kind": "programming",
                "order": 4,
                "estimatedMinutes": 90,
                "firstStep": "将3个观测值代入z=(x-mean)/std手算",
                "exercise": "内容周：9\n知识范围：钟形曲线、均值、标准差、标准化z-score\n具体练习：将3个观测值代入z=(x-mean)/std手算\n验收标准：解释z-score正负与距离均值多少标准差\n交付物：w09_d3_normal.py\n前置任务：AI-W09-D2\n推荐资料：已学知识笔记与手算练习",
                "materialUrl": "",
                "materialTitle": "已学知识笔记与手算练习",
                "mastery": "unassessed",
                "updatedAt": "2026-10-11T04:13:30.080Z"
              },
              {
                "id": "5fd8a51b-1532-4b98-b108-fcdc1174949f",
                "stageId": "a5bc6b9a-ba20-4374-bcaf-a7337447689e",
                "title": "EN-W09-S2 英语短文与听读：第9周",
                "kind": "english",
                "order": 5,
                "estimatedMinutes": 20,
                "firstStep": "复习2分钟、选段阅读8分钟、听读5分钟、复述3分钟、记录2分钟。读资源页的80—120词，圈3词；用系统朗读听：Its mean is higher than five.（它的平均值大于5。），遮住文字再听。原文太难时用本周3句示例替代。",
                "exercise": "内容周：9\n知识范围：Random Variables（随机变量），只选定义或例子旁一段；80—120词；句型：higher/lower than…；比较并说明范围；先尝试理解，再看中文解释\n具体练习：复习2分钟、选段阅读8分钟、听读5分钟、复述3分钟、记录2分钟。读资源页的80—120词，圈3词；用系统朗读听：Its mean is higher than five.（它的平均值大于5。），遮住文字再听。原文太难时用本周3句示例替代。\n验收标准：不用逐字翻译，能用中文说出选段或3句示例的大意；听读后辨认2个关键词，再核对文字。记录一处理解变化或疑问；替代材料需标注，暂不懂的地方进入下次复习。\n交付物：w09_english_s2.md：URL/小节、3词、大意、听懂词、疑问；标注是否用示例替代\n推荐资料：https://d2l.ai/chapter_preliminaries/probability.html",
                "materialUrl": "https://d2l.ai/chapter_preliminaries/probability.html",
                "materialTitle": "动手学深度学习",
                "mastery": "unassessed",
                "updatedAt": "2026-10-11T04:13:30.080Z"
              },
              {
                "id": "6d707a66-e986-43d6-aa1c-57f375a52a3f",
                "stageId": "a5bc6b9a-ba20-4374-bcaf-a7337447689e",
                "title": "AI-W09-D4 抽样与偏差 Sampling Bias",
                "kind": "programming",
                "order": 6,
                "estimatedMinutes": 90,
                "firstStep": "比较均衡和偏斜抽样所得的均值与结论",
                "exercise": "内容周：9\n知识范围：随机样本、偏差、数据泄漏概念\n具体练习：比较均衡和偏斜抽样所得的均值与结论\n验收标准：能举例解释为什么样本代表性重要\n交付物：w09_d4_sampling.md\n前置任务：AI-W09-D3\n推荐资料：已学知识笔记与手算练习",
                "materialUrl": "",
                "materialTitle": "已学知识笔记与手算练习",
                "mastery": "unassessed",
                "updatedAt": "2026-10-11T04:13:30.080Z"
              },
              {
                "id": "0a33155b-1601-4246-b6c5-a03505ed20c6",
                "stageId": "a5bc6b9a-ba20-4374-bcaf-a7337447689e",
                "title": "AI-W09-D5 训练/验证/测试集与泄漏检查",
                "kind": "programming",
                "order": 7,
                "estimatedMinutes": 90,
                "firstStep": "将30条模拟样本分18/6/6并列ID；判断说明中的3个泄漏例子；解释预处理、调参和最终评估各自使用哪份数据。",
                "exercise": "内容周：9\n知识范围：30条模拟样本分18/6/6及用途；补数据泄漏直觉、同一记录不得跨集合、测试集不用于调参。先划分集合；如有标准化，只用训练集计算均值/标准差，其余集合应用同一规则。\n具体练习：将30条模拟样本分18/6/6并列ID；判断说明中的3个泄漏例子；解释预处理、调参和最终评估各自使用哪份数据。\n验收标准：集合无重叠、数量正确；3个例子判断正确；解释不得利用测试结果反复改模型。\n交付物：w09_d5_split_notes.md＋样本ID分组表\n前置任务：AI-W09-D4\n推荐资料：https://scikit-learn.org/stable/common_pitfalls.html#data-leakage",
                "materialUrl": "https://scikit-learn.org/stable/common_pitfalls.html#data-leakage",
                "materialTitle": "scikit-learn 数据边界与常见错误",
                "mastery": "unassessed",
                "updatedAt": "2026-10-11T04:13:30.080Z"
              },
              {
                "id": "395cd3dd-578b-45f7-b391-2467c41108e4",
                "stageId": "a5bc6b9a-ba20-4374-bcaf-a7337447689e",
                "title": "EN-W09-S3 英语三句总结与口头解释：第9周",
                "kind": "english",
                "order": 8,
                "estimatedMinutes": 20,
                "firstStep": "复习3分钟、写句7分钟、听读2分钟、口头解释6分钟、记录2分钟。围绕实际练习写3句，再遮住文本说20—40秒。参考：The result may change with a new sample.（换一个样本，结果可能改变。）先自己写，再请AI或老师给一处修改及理由。",
                "exercise": "内容周：9\n知识范围：本周句型：higher/lower than…；比较并说明范围；示例只供改写，不能当成真实学习日志\n具体练习：复习3分钟、写句7分钟、听读2分钟、口头解释6分钟、记录2分钟。围绕实际练习写3句，再遮住文本说20—40秒。参考：The result may change with a new sample.（换一个样本，结果可能改变。）先自己写，再请AI或老师给一处修改及理由。\n验收标准：3句含一个实际做过的动作、结果或疑问，意思清楚；能借关键词口头解释20—40秒，允许停顿。标记一处修正和下周需回忆的词；录音可选，不以口音或流利程度作为唯一标准。\n交付物：w09_english_s3.md：自写3句、1处修正及理由、口述自检、Next；可选录音\n推荐资料：https://d2l.ai/chapter_preliminaries/probability.html",
                "materialUrl": "https://d2l.ai/chapter_preliminaries/probability.html",
                "materialTitle": "动手学深度学习",
                "mastery": "unassessed",
                "updatedAt": "2026-10-11T04:13:30.080Z"
              },
              {
                "id": "f87c8169-28cd-4d3e-82ff-62fff1fab9af",
                "stageId": "a5bc6b9a-ba20-4374-bcaf-a7337447689e",
                "title": "AI-W09-D6 小数据集探索：可选pandas清洗与一张图",
                "kind": "programming",
                "order": 9,
                "estimatedMinutes": 120,
                "firstStep": "读取给定CSV；同ID且字段完全一致保留一条，字段冲突标记核对；标记缺失/非法分钟，按项目汇总画柱形图；基础未过用手工/NumPy分析。",
                "exercise": "内容周：9\n知识范围：一页探索报告和3条数据观察；基础关卡已过时，在原120分钟内用已准备CSV与最少pandas操作替换手工分析。选pandas路线时先在第5周同一环境检查pandas/Matplotlib，按说明安装与验证；这段时间计入原任务，可拆分继续。\n具体练习：读取给定CSV；同ID且字段完全一致保留一条，字段冲突标记核对；标记缺失/非法分钟，按项目汇总画柱形图；基础未过用手工/NumPy分析。\n验收标准：前后行数、异常处理和3项手算一致；图有标题/分钟单位；3条观察有证据，缺失不填0，不推断学习能力。\n交付物：w09_d6_eda.py＋clean_sample.csv＋summary.png＋一页报告\n前置任务：AI-W09-D5\n推荐资料：https://pandas.pydata.org/docs/getting_started/intro_tutorials/index.html\nhttps://matplotlib.org/stable/tutorials/pyplot.html",
                "materialUrl": "https://pandas.pydata.org/docs/getting_started/intro_tutorials/index.html",
                "materialTitle": "pandas 官方入门",
                "mastery": "unassessed",
                "updatedAt": "2026-10-11T04:13:30.080Z"
              },
              {
                "id": "f7018bdb-d869-44b7-8350-c990c752002e",
                "stageId": "a5bc6b9a-ba20-4374-bcaf-a7337447689e",
                "title": "RD-W09-S2 阅读复述与应用：第9周",
                "kind": "reading",
                "order": 10,
                "estimatedMinutes": 20,
                "firstStep": "回忆3分钟、接续阅读10分钟、短输出7分钟。选一个带数字的观点，写一个可能误区和一个核对问题；不凭印象下结论。合上资料，用3句说明“读到什么—自己的例子或判断—尚未解决的问题”，再核对一处可能误读，保存下一次位置。",
                "exercise": "内容周：9\n知识范围：统计判断的局限；阅读、回忆、短输出都计入原20分钟\n具体练习：回忆3分钟、接续阅读10分钟、短输出7分钟。选一个带数字的观点，写一个可能误区和一个核对问题；不凭印象下结论。合上资料，用3句说明“读到什么—自己的例子或判断—尚未解决的问题”，再核对一处可能误读，保存下一次位置。\n验收标准：不用照抄也能复述一个观点，给出一个自己的例子或核对问题；标明原文位置、理解限度和下次位置。已有疑问未查清可继续保留，不要求同一时段读完一章或写长笔记。\n交付物：w09_reading_s2.md：3句复述、自制例子/核对问题、纠正或局限、下次位置\n推荐资料：https://d2l.ai/chapter_preliminaries/probability.html",
                "materialUrl": "https://d2l.ai/chapter_preliminaries/probability.html",
                "materialTitle": "动手学深度学习",
                "mastery": "unassessed",
                "updatedAt": "2026-10-11T04:13:30.080Z"
              },
              {
                "id": "22ea030b-2831-44e5-ab5d-d5c27ae8c5bf",
                "stageId": "a5bc6b9a-ba20-4374-bcaf-a7337447689e",
                "title": "AI-W09-D7 统计基础闭卷检查",
                "kind": "programming",
                "order": 11,
                "estimatedMinutes": 60,
                "firstStep": "10道概念小题+2道计算题并整理错题",
                "exercise": "内容周：9\n知识范围：均值、方差、概率、正态分布、数据泄漏\n具体练习：10道概念小题+2道计算题并整理错题\n验收标准：12题至少10题过关；必要时复习后再推进\n交付物：w09_review.md\n前置任务：AI-W09-D6\n推荐资料：已学知识笔记与手算练习",
                "materialUrl": "",
                "materialTitle": "已学知识笔记与手算练习",
                "mastery": "unassessed",
                "updatedAt": "2026-10-11T04:13:30.080Z"
              },
              {
                "id": "f0e2bf26-a7f9-4683-90e8-d71415087609",
                "stageId": "a5bc6b9a-ba20-4374-bcaf-a7337447689e",
                "title": "AI-W10-D1 PyTorch Tensor：环境检查与数组对照",
                "kind": "programming",
                "order": 12,
                "estimatedMinutes": 90,
                "firstStep": "激活原环境，未安装时按说明与官方Mac安装入口安装torch；运行import torch并记录版本。创建(2,3) Tensor、做基本运算并逐行注释；安装与验证计入原90分钟，可拆分继续。",
                "exercise": "内容周：10\n知识范围：先使用第5周的同一虚拟环境，核对解释器和PyTorch导入；再学torch.tensor、dtype、shape，与NumPy ndarray比较。\n具体练习：激活原环境，未安装时按说明与官方Mac安装入口安装torch；运行import torch并记录版本。创建(2,3) Tensor、做基本运算并逐行注释；安装与验证计入原90分钟，可拆分继续。\n验收标准：确认解释器来自当前虚拟环境，PyTorch导入成功；不看笔记解释Tensor与数组的相似点/区别，预测shape正确。\n交付物：w10_d1_tensor.py＋当前解释器路径和torch版本记录\n前置任务：AI-W09-D7\n推荐资料：https://pytorch.org/get-started/locally/\nhttps://docs.pytorch.org/tutorials/beginner/basics/intro.html",
                "materialUrl": "https://pytorch.org/get-started/locally/",
                "materialTitle": "PyTorch 官方教程",
                "mastery": "unassessed",
                "updatedAt": "2026-10-11T04:13:30.080Z"
              },
              {
                "id": "532696f0-5446-42f9-8e0f-b7e42e72264a",
                "stageId": "a5bc6b9a-ba20-4374-bcaf-a7337447689e",
                "title": "EN-W10-S1 英语词语与句型：第10周",
                "kind": "english",
                "order": 13,
                "estimatedMinutes": 20,
                "firstStep": "复习2分钟、词语6分钟、句型6分钟、听读4分钟、记录2分钟。保留原6词，选3词主动运用。先猜再查；例句：I need to check the tensor shape.（我需要检查张量形状。）用系统朗读播放，跟读并替换一个词。",
                "exercise": "内容周：10\n知识范围：Tensor, batch, feature, layer, activation, forward；句型：I need to…；How do I…?；听读采用系统合成朗读\n具体练习：复习2分钟、词语6分钟、句型6分钟、听读4分钟、记录2分钟。保留原6词，选3词主动运用。先猜再查；例句：I need to check the tensor shape.（我需要检查张量形状。）用系统朗读播放，跟读并替换一个词。\n验收标准：合上笔记说出至少3个重点词的意思，并用本周句型造一句与练习有关的话；能跟读示例、指出一个未听清的词。遇到困难记为待复习，不要求一次记住全部6词。\n交付物：w10_english_s1.md：6词词卡、1个自写例句、1个待复习词\n推荐资料：https://docs.pytorch.org/tutorials/beginner/basics/tensorqs_tutorial.html",
                "materialUrl": "https://docs.pytorch.org/tutorials/beginner/basics/tensorqs_tutorial.html",
                "materialTitle": "PyTorch 官方教程",
                "mastery": "unassessed",
                "updatedAt": "2026-10-11T04:13:30.080Z"
              },
              {
                "id": "edb9f5d9-6255-4557-81b2-c8511555f122",
                "stageId": "a5bc6b9a-ba20-4374-bcaf-a7337447689e",
                "title": "AI-W10-D2 Batch与Features再巩固",
                "kind": "programming",
                "order": 14,
                "estimatedMinutes": 90,
                "firstStep": "画出(1,3)、(8,3)、(8,5)含义并做shape推理",
                "exercise": "内容周：10\n知识范围：batch size、feature、张量维度含义\n具体练习：画出(1,3)、(8,3)、(8,5)含义并做shape推理\n验收标准：连续5道shape题>=4题正确；理解而非背结论\n交付物：w10_d2_batch.md\n前置任务：AI-W10-D1\n推荐资料：https://pytorch.org/tutorials/beginner/basics/intro.html",
                "materialUrl": "https://pytorch.org/tutorials/beginner/basics/intro.html",
                "materialTitle": "PyTorch 官方教程",
                "mastery": "unassessed",
                "updatedAt": "2026-10-11T04:13:30.080Z"
              },
              {
                "id": "a2bb71a4-de07-48e4-97b6-1a9713a39010",
                "stageId": "a5bc6b9a-ba20-4374-bcaf-a7337447689e",
                "title": "RD-W10-S1 阅读与提问：第10周摘录",
                "kind": "reading",
                "order": 15,
                "estimatedMinutes": 20,
                "firstStep": "在20分钟内读14分钟、记录6分钟；保留书名/页码或URL/小节，只摘一两句，再写自己的理解。带着问题读：代码块输入什么？预期输出是什么？我能预测一处结果吗？选段不含所需内容时，明确写“本段未提供”，继续保留阅读位置。",
                "exercise": "内容周：10\n知识范围：阅读初级PyTorch教程；优先接续正在读的书/本周资料，不要求每周换书\n具体练习：在20分钟内读14分钟、记录6分钟；保留书名/页码或URL/小节，只摘一两句，再写自己的理解。带着问题读：代码块输入什么？预期输出是什么？我能预测一处结果吗？选段不含所需内容时，明确写“本段未提供”，继续保留阅读位置。\n验收标准：留下准确来源位置、一条短摘录和一句自己的理解；能区分原文与自己的判断，并回答至少一个阅读问题。没有证据时指出缺口，未读完不算失败；下一次从已保存位置继续。\n交付物：w10_reading_s1.md：来源/位置、短摘录、自述、问题、下次位置\n推荐资料：https://docs.pytorch.org/tutorials/beginner/basics/tensorqs_tutorial.html",
                "materialUrl": "https://docs.pytorch.org/tutorials/beginner/basics/tensorqs_tutorial.html",
                "materialTitle": "PyTorch 官方教程",
                "mastery": "unassessed",
                "updatedAt": "2026-10-11T04:13:30.080Z"
              },
              {
                "id": "d69ee47f-dc69-45c7-9d4f-7eea6ec79fdb",
                "stageId": "a5bc6b9a-ba20-4374-bcaf-a7337447689e",
                "title": "AI-W10-D3 逐行解释nn.Linear与查官方文档",
                "kind": "programming",
                "order": 16,
                "estimatedMinutes": 90,
                "firstStep": "找到Linear官方页的参数/输入/输出；实例化Linear(3,5)，打印weight/bias shape，逐词解释并对照第7周NumPy。",
                "exercise": "内容周：10\n知识范围：Linear(3,5)、weight和bias shape；补查官方构造参数与输入输出形状，不展开整个文档体系。\n具体练习：找到Linear官方页的参数/输入/输出；实例化Linear(3,5)，打印weight/bias shape，逐词解释并对照第7周NumPy。\n验收标准：解释参数、weight(5,3)、bias(5,)和输入输出；说清PyTorch权重存储与NumPy示意的转置关系。\n交付物：w10_d3_linear.py＋官方页链接＋术语对照\n前置任务：AI-W10-D2\n推荐资料：https://docs.pytorch.org/docs/stable/generated/torch.nn.Linear.html",
                "materialUrl": "https://docs.pytorch.org/docs/stable/generated/torch.nn.Linear.html",
                "materialTitle": "PyTorch 官方教程",
                "mastery": "unassessed",
                "updatedAt": "2026-10-11T04:13:30.080Z"
              },
              {
                "id": "202e48f8-efae-448b-a1e1-0361c5d19d57",
                "stageId": "a5bc6b9a-ba20-4374-bcaf-a7337447689e",
                "title": "EN-W10-S2 英语短文与听读：第10周",
                "kind": "english",
                "order": 17,
                "estimatedMinutes": 20,
                "firstStep": "复习2分钟、选段阅读8分钟、听读5分钟、复述3分钟、记录2分钟。读资源页的80—120词，圈3词；用系统朗读听：How do I change the shape?（我怎样改变形状？），遮住文字再听。原文太难时用本周3句示例替代。",
                "exercise": "内容周：10\n知识范围：Initializing a Tensor（创建张量），只选说明和一个代码块；80—120词；句型：I need to…；How do I…?；先尝试理解，再看中文解释\n具体练习：复习2分钟、选段阅读8分钟、听读5分钟、复述3分钟、记录2分钟。读资源页的80—120词，圈3词；用系统朗读听：How do I change the shape?（我怎样改变形状？），遮住文字再听。原文太难时用本周3句示例替代。\n验收标准：不用逐字翻译，能用中文说出选段或3句示例的大意；听读后辨认2个关键词，再核对文字。记录一处理解变化或疑问；替代材料需标注，暂不懂的地方进入下次复习。\n交付物：w10_english_s2.md：URL/小节、3词、大意、听懂词、疑问；标注是否用示例替代\n推荐资料：https://docs.pytorch.org/tutorials/beginner/basics/tensorqs_tutorial.html",
                "materialUrl": "https://docs.pytorch.org/tutorials/beginner/basics/tensorqs_tutorial.html",
                "materialTitle": "PyTorch 官方教程",
                "mastery": "unassessed",
                "updatedAt": "2026-10-11T04:13:30.080Z"
              },
              {
                "id": "b1e2c9bf-42e9-434f-aeef-7f85b4faffcb",
                "stageId": "a5bc6b9a-ba20-4374-bcaf-a7337447689e",
                "title": "AI-W10-D4 nn.Sequential 与 nn.ReLU",
                "kind": "programming",
                "order": 18,
                "estimatedMinutes": 90,
                "firstStep": "创建3->5->2网络，逐行中文注释并打印输出形状",
                "exercise": "内容周：10\n知识范围：顺序模型 Sequential、非线性激活 ReLU\n具体练习：创建3->5->2网络，逐行中文注释并打印输出形状\n验收标准：能够解释ReLU为什么不改变shape\n交付物：w10_d4_mlp.py\n前置任务：AI-W10-D3\n推荐资料：https://pytorch.org/tutorials/beginner/basics/intro.html",
                "materialUrl": "https://pytorch.org/tutorials/beginner/basics/intro.html",
                "materialTitle": "PyTorch 官方教程",
                "mastery": "unassessed",
                "updatedAt": "2026-10-11T04:13:30.080Z"
              },
              {
                "id": "54a1eb55-8aa7-4e2d-9d56-18a4dd5c08f5",
                "stageId": "a5bc6b9a-ba20-4374-bcaf-a7337447689e",
                "title": "EN-W10-S3 英语三句总结与口头解释：第10周",
                "kind": "english",
                "order": 20,
                "estimatedMinutes": 20,
                "firstStep": "复习3分钟、写句7分钟、听读2分钟、口头解释6分钟、记录2分钟。围绕实际练习写3句，再遮住文本说20—40秒。参考：I can use reshape.（我可以使用reshape。）先自己写，再请AI或老师给一处修改及理由。",
                "exercise": "内容周：10\n知识范围：本周句型：I need to…；How do I…?；示例只供改写，不能当成真实学习日志\n具体练习：复习3分钟、写句7分钟、听读2分钟、口头解释6分钟、记录2分钟。围绕实际练习写3句，再遮住文本说20—40秒。参考：I can use reshape.（我可以使用reshape。）先自己写，再请AI或老师给一处修改及理由。\n验收标准：3句含一个实际做过的动作、结果或疑问，意思清楚；能借关键词口头解释20—40秒，允许停顿。标记一处修正和下周需回忆的词；录音可选，不以口音或流利程度作为唯一标准。\n交付物：w10_english_s3.md：自写3句、1处修正及理由、口述自检、Next；可选录音\n推荐资料：https://docs.pytorch.org/tutorials/beginner/basics/tensorqs_tutorial.html",
                "materialUrl": "https://docs.pytorch.org/tutorials/beginner/basics/tensorqs_tutorial.html",
                "materialTitle": "PyTorch 官方教程",
                "mastery": "unassessed",
                "updatedAt": "2026-10-11T04:13:30.080Z"
              },
              {
                "id": "dc916c7c-9354-4745-b6e4-299ac4aed2ed",
                "stageId": "a5bc6b9a-ba20-4374-bcaf-a7337447689e",
                "title": "AI-W10-D6 小项目：最小MLP与运行说明",
                "kind": "programming",
                "order": 21,
                "estimatedMinutes": 120,
                "firstStep": "独立写3→5→2网络；README写环境、运行命令和预期shape；按说明再次运行，用虚构张量测试。",
                "exercise": "内容周：10\n知识范围：独立可运行MLP、中文注释及术语；在同一任务内写最短运行说明，不额外做安装器或网页。\n具体练习：独立写3→5→2网络；README写环境、运行命令和预期shape；按说明再次运行，用虚构张量测试。\n验收标准：脚本可运行且逐行可解释；输出符合预测；README步骤和实际运行一致。\n交付物：w10_d6_mlp.py＋README.md＋依赖更新\n前置任务：AI-W10-D5\n推荐资料：https://docs.pytorch.org/tutorials/beginner/basics/intro.html",
                "materialUrl": "https://docs.pytorch.org/tutorials/beginner/basics/intro.html",
                "materialTitle": "PyTorch 官方教程",
                "mastery": "unassessed",
                "updatedAt": "2026-10-11T04:13:30.080Z"
              },
              {
                "id": "85b5d84a-2240-4b1e-84e2-dfd72db93337",
                "stageId": "a5bc6b9a-ba20-4374-bcaf-a7337447689e",
                "title": "RD-W10-S2 阅读复述与应用：第10周",
                "kind": "reading",
                "order": 22,
                "estimatedMinutes": 20,
                "firstStep": "回忆3分钟、接续阅读10分钟、短输出7分钟。读一个张量例子，先预测形状，再检查资料；写下一个预测和依据。合上资料，用3句说明“读到什么—自己的例子或判断—尚未解决的问题”，再核对一处可能误读，保存下一次位置。",
                "exercise": "内容周：10\n知识范围：阅读初级PyTorch教程；阅读、回忆、短输出都计入原20分钟\n具体练习：回忆3分钟、接续阅读10分钟、短输出7分钟。读一个张量例子，先预测形状，再检查资料；写下一个预测和依据。合上资料，用3句说明“读到什么—自己的例子或判断—尚未解决的问题”，再核对一处可能误读，保存下一次位置。\n验收标准：不用照抄也能复述一个观点，给出一个自己的例子或核对问题；标明原文位置、理解限度和下次位置。已有疑问未查清可继续保留，不要求同一时段读完一章或写长笔记。\n交付物：w10_reading_s2.md：3句复述、自制例子/核对问题、纠正或局限、下次位置\n推荐资料：https://docs.pytorch.org/tutorials/beginner/basics/tensorqs_tutorial.html",
                "materialUrl": "https://docs.pytorch.org/tutorials/beginner/basics/tensorqs_tutorial.html",
                "materialTitle": "PyTorch 官方教程",
                "mastery": "unassessed",
                "updatedAt": "2026-10-11T04:13:30.080Z"
              },
              {
                "id": "e0edc050-c567-4b26-844d-53e6dc6d36e1",
                "stageId": "a5bc6b9a-ba20-4374-bcaf-a7337447689e",
                "title": "AI-W10-D7 PyTorch结构闭卷复盘",
                "kind": "programming",
                "order": 23,
                "estimatedMinutes": 60,
                "firstStep": "不看资料重写3->5->2网络并口述运算路径",
                "exercise": "内容周：10\n知识范围：Tensor、shape、batch、nn模块、forward\n具体练习：不看资料重写3->5->2网络并口述运算路径\n验收标准：运行结果与预期shape一致；不会解释的行标待复习\n交付物：w10_review.md\n前置任务：AI-W10-D6\n推荐资料：https://pytorch.org/tutorials/beginner/basics/intro.html",
                "materialUrl": "https://pytorch.org/tutorials/beginner/basics/intro.html",
                "materialTitle": "PyTorch 官方教程",
                "mastery": "unassessed",
                "updatedAt": "2026-10-11T04:13:30.080Z"
              },
              {
                "id": "03dbc247-bbe1-464a-aad7-883caed8b761",
                "stageId": "a5bc6b9a-ba20-4374-bcaf-a7337447689e",
                "title": "AI-W11-D1 Autograd自动求导复盘",
                "kind": "programming",
                "order": 24,
                "estimatedMinutes": 90,
                "firstStep": "构造y=w²并求导，w=3时手算对照grad=6",
                "exercise": "内容周：11\n知识范围：requires_grad、计算图、loss.backward()\n具体练习：构造y=w²并求导，w=3时手算对照grad=6\n验收标准：解释requires_grad、backward和.grad每个词\n交付物：w11_d1_autograd.py\n前置任务：AI-W10-D7\n推荐资料：https://pytorch.org/tutorials/beginner/basics/intro.html",
                "materialUrl": "https://pytorch.org/tutorials/beginner/basics/intro.html",
                "materialTitle": "PyTorch 官方教程",
                "mastery": "unassessed",
                "updatedAt": "2026-10-11T04:13:30.080Z"
              },
              {
                "id": "acf6dbc1-d9ca-4da2-bc5a-44d4cba5bee3",
                "stageId": "a5bc6b9a-ba20-4374-bcaf-a7337447689e",
                "title": "EN-W11-S1 英语词语与句型：第11周",
                "kind": "english",
                "order": 25,
                "estimatedMinutes": 20,
                "firstStep": "复习2分钟、词语6分钟、句型6分钟、听读4分钟、记录2分钟。原6词，选3词主动运用。先猜；例句：We should clear the gradients before the next backward pass.（下一次反向传播前应清空梯度。）用系统朗读播放，跟读并替换一词。",
                "exercise": "内容周：11\n知识范围：autograd, backward, optimizer, epoch, training loop, gradient；句型：should…；before/after…；说明检查步骤；听读采用系统合成朗读。本例每轮不做梯度累积，才在本轮反向传播前清空梯度。\n具体练习：复习2分钟、词语6分钟、句型6分钟、听读4分钟、记录2分钟。原6词，选3词主动运用。先猜；例句：We should clear the gradients before the next backward pass.（下一次反向传播前应清空梯度。）用系统朗读播放，跟读并替换一词。\n验收标准：合上笔记说出至少3个重点词的意思，并用本周句型造一句与练习有关的话；能跟读示例、指出一个未听清的词。遇到困难记为待复习，不要求一次记住全部6词。\n交付物：w11_english_s1.md：6词词卡、1个自写例句、1个待复习词\n推荐资料：https://docs.pytorch.org/tutorials/beginner/basics/optimization_tutorial.html",
                "materialUrl": "https://docs.pytorch.org/tutorials/beginner/basics/optimization_tutorial.html",
                "materialTitle": "PyTorch 官方教程",
                "mastery": "unassessed",
                "updatedAt": "2026-10-11T04:13:30.080Z"
              },
              {
                "id": "9ee0935a-444b-4fa8-a124-675e4741c287",
                "stageId": "a5bc6b9a-ba20-4374-bcaf-a7337447689e",
                "title": "AI-W11-D2 反向传播 Backpropagation",
                "kind": "programming",
                "order": 26,
                "estimatedMinutes": 90,
                "firstStep": "手画一层线性模型从Loss到w、b的传播箭头",
                "exercise": "内容周：11\n知识范围：链式法则在层间传递；梯度方向\n具体练习：手画一层线性模型从Loss到w、b的传播箭头\n验收标准：能说明为何参数需要梯度、Loss从哪来\n交付物：w11_d2_backprop.md\n前置任务：AI-W11-D1\n推荐资料：https://pytorch.org/tutorials/beginner/basics/intro.html",
                "materialUrl": "https://pytorch.org/tutorials/beginner/basics/intro.html",
                "materialTitle": "PyTorch 官方教程",
                "mastery": "unassessed",
                "updatedAt": "2026-10-11T04:13:30.080Z"
              },
              {
                "id": "e15177c0-88c2-4202-895c-8d264885b68f",
                "stageId": "a5bc6b9a-ba20-4374-bcaf-a7337447689e",
                "title": "RD-W11-S1 阅读与提问：第11周摘录",
                "kind": "reading",
                "order": 27,
                "estimatedMinutes": 20,
                "firstStep": "在20分钟内读14分钟、记录6分钟；保留书名/页码或URL/小节，只摘一两句，再写自己的理解。带着问题读：改了哪个变量？保持了什么？如何判断结果不是偶然？选段不含所需内容时，明确写“本段未提供”，继续保留阅读位置。",
                "exercise": "内容周：11\n知识范围：实验方法与公平比较；优先接续正在读的书/本周资料，不要求每周换书\n具体练习：在20分钟内读14分钟、记录6分钟；保留书名/页码或URL/小节，只摘一两句，再写自己的理解。带着问题读：改了哪个变量？保持了什么？如何判断结果不是偶然？选段不含所需内容时，明确写“本段未提供”，继续保留阅读位置。\n验收标准：留下准确来源位置、一条短摘录和一句自己的理解；能区分原文与自己的判断，并回答至少一个阅读问题。没有证据时指出缺口，未读完不算失败；下一次从已保存位置继续。\n交付物：w11_reading_s1.md：来源/位置、短摘录、自述、问题、下次位置\n推荐资料：https://docs.pytorch.org/tutorials/beginner/basics/optimization_tutorial.html",
                "materialUrl": "https://docs.pytorch.org/tutorials/beginner/basics/optimization_tutorial.html",
                "materialTitle": "PyTorch 官方教程",
                "mastery": "unassessed",
                "updatedAt": "2026-10-11T04:13:30.080Z"
              },
              {
                "id": "41f38381-f2ad-4a4a-afe6-d8d140ee50a5",
                "stageId": "a5bc6b9a-ba20-4374-bcaf-a7337447689e",
                "title": "AI-W11-D3 zero_grad / step",
                "kind": "programming",
                "order": 28,
                "estimatedMinutes": 90,
                "firstStep": "写2轮更新并比较不清梯度导致的差异",
                "exercise": "内容周：11\n知识范围：梯度累积、optimizer.zero_grad、optimizer.step\n具体练习：写2轮更新并比较不清梯度导致的差异\n验收标准：解释zero_grad与step分别在什么时刻运行\n交付物：w11_d3_optimizer.py\n前置任务：AI-W11-D2\n推荐资料：https://pytorch.org/tutorials/beginner/basics/intro.html",
                "materialUrl": "https://pytorch.org/tutorials/beginner/basics/intro.html",
                "materialTitle": "PyTorch 官方教程",
                "mastery": "unassessed",
                "updatedAt": "2026-10-11T04:13:30.080Z"
              },
              {
                "id": "4b94b9d7-8f5e-4091-96d4-12902466e281",
                "stageId": "a5bc6b9a-ba20-4374-bcaf-a7337447689e",
                "title": "EN-W11-S2 英语短文与听读：第11周",
                "kind": "english",
                "order": 29,
                "estimatedMinutes": 20,
                "firstStep": "复习2分钟、选段阅读8分钟、听读5分钟、复述3分钟、记录2分钟。读资源页的80—120词，圈3词；用系统朗读听：We compute the gradients with backward.（我们用backward计算梯度。），遮住文字再听。原文太难时用本周3句示例替代。",
                "exercise": "内容周：11\n知识范围：Optimization Loop（优化循环），只选3个步骤旁的说明；80—120词；句型：should…；before/after…；说明检查步骤；先尝试理解，再看中文解释\n具体练习：复习2分钟、选段阅读8分钟、听读5分钟、复述3分钟、记录2分钟。读资源页的80—120词，圈3词；用系统朗读听：We compute the gradients with backward.（我们用backward计算梯度。），遮住文字再听。原文太难时用本周3句示例替代。\n验收标准：不用逐字翻译，能用中文说出选段或3句示例的大意；听读后辨认2个关键词，再核对文字。记录一处理解变化或疑问；替代材料需标注，暂不懂的地方进入下次复习。\n交付物：w11_english_s2.md：URL/小节、3词、大意、听懂词、疑问；标注是否用示例替代\n推荐资料：https://docs.pytorch.org/tutorials/beginner/basics/optimization_tutorial.html",
                "materialUrl": "https://docs.pytorch.org/tutorials/beginner/basics/optimization_tutorial.html",
                "materialTitle": "PyTorch 官方教程",
                "mastery": "unassessed",
                "updatedAt": "2026-10-11T04:13:30.080Z"
              },
              {
                "id": "7ab97413-18f2-491b-9059-a92eeca96d72",
                "stageId": "a5bc6b9a-ba20-4374-bcaf-a7337447689e",
                "title": "AI-W11-D4 完整训练循环 Training loop",
                "kind": "programming",
                "order": 30,
                "estimatedMinutes": 90,
                "firstStep": "运行20轮简单回归，记录每5轮Loss",
                "exercise": "内容周：11\n知识范围：forward->loss->zero_grad->backward->step\n具体练习：运行20轮简单回归，记录每5轮Loss\n验收标准：能独立写出正确顺序，并逐行解释变量与函数\n交付物：w11_d4_train.py\n前置任务：AI-W11-D3\n推荐资料：https://pytorch.org/tutorials/beginner/basics/intro.html",
                "materialUrl": "https://pytorch.org/tutorials/beginner/basics/intro.html",
                "materialTitle": "PyTorch 官方教程",
                "mastery": "unassessed",
                "updatedAt": "2026-10-11T04:13:30.080Z"
              },
              {
                "id": "75397ea8-b15c-4caf-ba19-afd133848051",
                "stageId": "a5bc6b9a-ba20-4374-bcaf-a7337447689e",
                "title": "AI-W11-D5 Loss观察与单变量实验记录",
                "kind": "programming",
                "order": 31,
                "estimatedMinutes": 90,
                "firstStep": "固定模拟数据、初始条件与轮数，只改学习率；记录每5轮Loss，并写实际观察与可能原因。",
                "exercise": "内容周：11\n知识范围：两种学习率对照；补相同数据/种子/轮数，记录配置，避免同时改多个因素。\n具体练习：固定模拟数据、初始条件与轮数，只改学习率；记录每5轮Loss，并写实际观察与可能原因。\n验收标准：对照条件一致，学习率和Loss记录完整；结论只解释本次实验，不夸大到所有模型。\n交付物：w11_d5_lr_compare.py＋experiment_log.csv\n前置任务：AI-W11-D4\n推荐资料：https://docs.pytorch.org/tutorials/beginner/basics/intro.html",
                "materialUrl": "https://docs.pytorch.org/tutorials/beginner/basics/intro.html",
                "materialTitle": "PyTorch 官方教程",
                "mastery": "unassessed",
                "updatedAt": "2026-10-11T04:13:30.080Z"
              },
              {
                "id": "5a38b402-6fa8-411a-97ff-745f788d5c62",
                "stageId": "a5bc6b9a-ba20-4374-bcaf-a7337447689e",
                "title": "EN-W11-S3 英语三句总结与口头解释：第11周",
                "kind": "english",
                "order": 32,
                "estimatedMinutes": 20,
                "firstStep": "复习3分钟、写句7分钟、听读2分钟、口头解释6分钟、记录2分钟。围绕实际练习写3句，再遮住文本说20—40秒。参考：Then, the optimizer updates the parameters.（然后优化器更新参数。）先自己写，再请AI或老师给一处修改及理由。",
                "exercise": "内容周：11\n知识范围：本周句型：should…；before/after…；说明检查步骤；示例只供改写，不能当成真实学习日志\n具体练习：复习3分钟、写句7分钟、听读2分钟、口头解释6分钟、记录2分钟。围绕实际练习写3句，再遮住文本说20—40秒。参考：Then, the optimizer updates the parameters.（然后优化器更新参数。）先自己写，再请AI或老师给一处修改及理由。\n验收标准：3句含一个实际做过的动作、结果或疑问，意思清楚；能借关键词口头解释20—40秒，允许停顿。标记一处修正和下周需回忆的词；录音可选，不以口音或流利程度作为唯一标准。\n交付物：w11_english_s3.md：自写3句、1处修正及理由、口述自检、Next；可选录音\n推荐资料：https://docs.pytorch.org/tutorials/beginner/basics/optimization_tutorial.html",
                "materialUrl": "https://docs.pytorch.org/tutorials/beginner/basics/optimization_tutorial.html",
                "materialTitle": "PyTorch 官方教程",
                "mastery": "unassessed",
                "updatedAt": "2026-10-11T04:13:30.080Z"
              },
              {
                "id": "a4aa3a35-ebe0-4cc3-b677-85622a97855e",
                "stageId": "a5bc6b9a-ba20-4374-bcaf-a7337447689e",
                "title": "AI-W11-D6 小项目：独立训练回归与复现核验",
                "kind": "programming",
                "order": 33,
                "estimatedMinutes": 120,
                "firstStep": "独立写训练循环并标注zero_grad/forward/loss/backward/step；同设置再跑一次，记录参数与Loss。",
                "exercise": "内容周：11\n知识范围：y≈2x+1模拟回归；补训练顺序自查、固定种子/配置、AI代码逐行验证。\n具体练习：独立写训练循环并标注zero_grad/forward/loss/backward/step；同设置再跑一次，记录参数与Loss。\n验收标准：顺序正确，参数接近模拟目标且Loss下降；同设置结果可复现；能解释每一步，个人学习CSV不参与预测。\n交付物：w11_d6_regression.py＋配置/种子＋两次结果\n前置任务：AI-W11-D5\n推荐资料：https://docs.pytorch.org/tutorials/beginner/basics/intro.html",
                "materialUrl": "https://docs.pytorch.org/tutorials/beginner/basics/intro.html",
                "materialTitle": "PyTorch 官方教程",
                "mastery": "unassessed",
                "updatedAt": "2026-10-11T04:13:30.080Z"
              },
              {
                "id": "d9b88c0b-907a-44cc-9ab5-ea8a902148ad",
                "stageId": "a5bc6b9a-ba20-4374-bcaf-a7337447689e",
                "title": "RD-W11-S2 阅读复述与应用：第11周",
                "kind": "reading",
                "order": 34,
                "estimatedMinutes": 20,
                "firstStep": "回忆3分钟、接续阅读10分钟、短输出7分钟。从教程选一个训练建议，写对照设置、评价方法和一项可能干扰因素。合上资料，用3句说明“读到什么—自己的例子或判断—尚未解决的问题”，再核对一处可能误读，保存下一次位置。",
                "exercise": "内容周：11\n知识范围：实验方法与公平比较；阅读、回忆、短输出都计入原20分钟\n具体练习：回忆3分钟、接续阅读10分钟、短输出7分钟。从教程选一个训练建议，写对照设置、评价方法和一项可能干扰因素。合上资料，用3句说明“读到什么—自己的例子或判断—尚未解决的问题”，再核对一处可能误读，保存下一次位置。\n验收标准：不用照抄也能复述一个观点，给出一个自己的例子或核对问题；标明原文位置、理解限度和下次位置。已有疑问未查清可继续保留，不要求同一时段读完一章或写长笔记。\n交付物：w11_reading_s2.md：3句复述、自制例子/核对问题、纠正或局限、下次位置\n推荐资料：https://docs.pytorch.org/tutorials/beginner/basics/optimization_tutorial.html",
                "materialUrl": "https://docs.pytorch.org/tutorials/beginner/basics/optimization_tutorial.html",
                "materialTitle": "PyTorch 官方教程",
                "mastery": "unassessed",
                "updatedAt": "2026-10-11T04:13:30.080Z"
              },
              {
                "id": "bffcc48d-bea0-4771-9f8f-d76e49682366",
                "stageId": "a5bc6b9a-ba20-4374-bcaf-a7337447689e",
                "title": "AI-W11-D7 Autograd训练关卡",
                "kind": "programming",
                "order": 35,
                "estimatedMinutes": 60,
                "firstStep": "闭卷写出5步训练循环并回答梯度累积问题",
                "exercise": "内容周：11\n知识范围：计算图、反向传播、优化器、训练循环\n具体练习：闭卷写出5步训练循环并回答梯度累积问题\n验收标准：步骤顺序100%正确；说得清为什么要zero_grad\n交付物：w11_review.md\n前置任务：AI-W11-D6\n推荐资料：https://pytorch.org/tutorials/beginner/basics/intro.html",
                "materialUrl": "https://pytorch.org/tutorials/beginner/basics/intro.html",
                "materialTitle": "PyTorch 官方教程",
                "mastery": "unassessed",
                "updatedAt": "2026-10-11T04:13:30.080Z"
              },
              {
                "id": "cd25da66-e63f-4225-baa9-8c6e74562c16",
                "stageId": "a5bc6b9a-ba20-4374-bcaf-a7337447689e",
                "title": "AI-W12-D1 模拟预测综合项目：目标与范围",
                "kind": "programming",
                "order": 36,
                "estimatedMinutes": 90,
                "firstStep": "用半页写模拟数据来源、输入/输出、评估和限制；列原有脚本可复用部分，明确本周不做新界面或真实能力预测。",
                "exercise": "内容周：12\n知识范围：预测主目标；明确只做一个最小模拟回归项目，学习统计脚本作为前期副成果，不叠加第二个必做项目。\n具体练习：用半页写模拟数据来源、输入/输出、评估和限制；列原有脚本可复用部分，明确本周不做新界面或真实能力预测。\n验收标准：目标可量化，范围能在本周预算内完成；模拟/真实数据清楚分离；前置未过则延长基础。\n交付物：w12_project_plan.md\n前置任务：AI-W11-D7\n推荐资料：https://docs.pytorch.org/tutorials/beginner/basics/intro.html",
                "materialUrl": "https://docs.pytorch.org/tutorials/beginner/basics/intro.html",
                "materialTitle": "PyTorch 官方教程",
                "mastery": "unassessed",
                "updatedAt": "2026-10-11T04:13:30.080Z"
              },
              {
                "id": "def3dde3-b985-4419-ba6c-e5faae849515",
                "stageId": "a5bc6b9a-ba20-4374-bcaf-a7337447689e",
                "title": "EN-W12-S1 英语词语与句型：第12周",
                "kind": "english",
                "order": 37,
                "estimatedMinutes": 20,
                "firstStep": "复习2分钟、词语6分钟、句型6分钟、听读4分钟、记录2分钟。保留原6词，选3词主动运用。先猜再查；例句：This result shows that the code runs.（这个结果表明代码能运行。）用系统朗读播放，跟读并替换一个词。",
                "exercise": "内容周：12\n知识范围：evaluation, evidence, baseline, result, limitation, next step；句型：… shows…；However…；Next, I will…；听读采用系统合成朗读\n具体练习：复习2分钟、词语6分钟、句型6分钟、听读4分钟、记录2分钟。保留原6词，选3词主动运用。先猜再查；例句：This result shows that the code runs.（这个结果表明代码能运行。）用系统朗读播放，跟读并替换一个词。\n验收标准：合上笔记说出至少3个重点词的意思，并用本周句型造一句与练习有关的话；能跟读示例、指出一个未听清的词。遇到困难记为待复习，不要求一次记住全部6词。\n交付物：w12_english_s1.md：6词词卡、1个自写例句、1个待复习词\n推荐资料：https://docs.pytorch.org/tutorials/beginner/basics/intro.html",
                "materialUrl": "https://docs.pytorch.org/tutorials/beginner/basics/intro.html",
                "materialTitle": "PyTorch 官方教程",
                "mastery": "unassessed",
                "updatedAt": "2026-10-11T04:13:30.080Z"
              },
              {
                "id": "b4bc0d0e-14f7-4e18-99c1-518ef9406e0e",
                "stageId": "a5bc6b9a-ba20-4374-bcaf-a7337447689e",
                "title": "AI-W12-D2 模拟数据整理、自查与复用清洗",
                "kind": "programming",
                "order": 38,
                "estimatedMinutes": 90,
                "firstStep": "整理≥30条合成回归样本；检查列、类型、空值、重复及shape；写切分与来源，数据放在独立模拟目录。",
                "exercise": "内容周：12\n知识范围：≥30样本、shape/空值/切分；复用已有清洗方法，资料与数据文件有来源说明，不新增pandas课程。\n具体练习：整理≥30条合成回归样本；检查列、类型、空值、重复及shape；写切分与来源，数据放在独立模拟目录。\n验收标准：样本数、shape和切分正确；异常处理有说明，个人记录未混入；训练/验证/测试ID不重叠。\n交付物：model_demo.csv＋data_notes.md＋清洗自查结果\n前置任务：AI-W12-D1\n推荐资料：https://pandas.pydata.org/docs/getting_started/intro_tutorials/index.html\nhttps://docs.pytorch.org/tutorials/beginner/basics/intro.html",
                "materialUrl": "https://pandas.pydata.org/docs/getting_started/intro_tutorials/index.html",
                "materialTitle": "pandas 官方入门",
                "mastery": "unassessed",
                "updatedAt": "2026-10-11T04:13:30.080Z"
              },
              {
                "id": "89ee738f-855a-4352-a031-15f92f494321",
                "stageId": "a5bc6b9a-ba20-4374-bcaf-a7337447689e",
                "title": "RD-W12-S1 阅读与提问：第12周摘录",
                "kind": "reading",
                "order": 39,
                "estimatedMinutes": 20,
                "firstStep": "在20分钟内读14分钟、记录6分钟；保留书名/页码或URL/小节，只摘一两句，再写自己的理解。带着问题读：哪条观点我能独立解释？哪条曾误解？哪些问题仍未解决？选段不含所需内容时，明确写“本段未提供”，继续保留阅读位置。",
                "exercise": "内容周：12\n知识范围：回顾与证据清单；优先接续正在读的书/本周资料，不要求每周换书\n具体练习：在20分钟内读14分钟、记录6分钟；保留书名/页码或URL/小节，只摘一两句，再写自己的理解。带着问题读：哪条观点我能独立解释？哪条曾误解？哪些问题仍未解决？选段不含所需内容时，明确写“本段未提供”，继续保留阅读位置。\n验收标准：留下准确来源位置、一条短摘录和一句自己的理解；能区分原文与自己的判断，并回答至少一个阅读问题。没有证据时指出缺口，未读完不算失败；下一次从已保存位置继续。\n交付物：w12_reading_s1.md：来源/位置、短摘录、自述、问题、下次位置\n推荐资料：自选书籍；不预设书名",
                "materialUrl": "",
                "materialTitle": "自选书籍；不预设书名",
                "mastery": "unassessed",
                "updatedAt": "2026-10-11T04:13:30.080Z"
              },
              {
                "id": "75a316f5-58fd-4821-824b-227fdfa90a54",
                "stageId": "a5bc6b9a-ba20-4374-bcaf-a7337447689e",
                "title": "AI-W12-D3 构建最小模型",
                "kind": "programming",
                "order": 40,
                "estimatedMinutes": 90,
                "firstStep": "独立实现模型、打印参数量与输出shape",
                "exercise": "内容周：12\n知识范围：选择Linear或小MLP；逐行解释import与模型层\n具体练习：独立实现模型、打印参数量与输出shape\n验收标准：能手算shape与参数数；代码可运行\n交付物：w12_d3_model.py\n前置任务：AI-W12-D2\n推荐资料：https://pytorch.org/tutorials/beginner/basics/intro.html",
                "materialUrl": "https://pytorch.org/tutorials/beginner/basics/intro.html",
                "materialTitle": "PyTorch 官方教程",
                "mastery": "unassessed",
                "updatedAt": "2026-10-11T04:13:30.080Z"
              },
              {
                "id": "58123a60-6844-4519-87de-15227274206a",
                "stageId": "a5bc6b9a-ba20-4374-bcaf-a7337447689e",
                "title": "EN-W12-S2 英语短文与听读：第12周",
                "kind": "english",
                "order": 41,
                "estimatedMinutes": 20,
                "firstStep": "复习2分钟、选段阅读8分钟、听读5分钟、复述3分钟、记录2分钟。读资源页的80—120词，圈3词；用系统朗读听：However, one run is not enough.（不过，一次运行还不够。），遮住文字再听。原文太难时用本周3句示例替代。",
                "exercise": "内容周：12\n知识范围：回看自己实际用过的一个教程小节；80—120词；句型：… shows…；However…；Next, I will…；先尝试理解，再看中文解释\n具体练习：复习2分钟、选段阅读8分钟、听读5分钟、复述3分钟、记录2分钟。读资源页的80—120词，圈3词；用系统朗读听：However, one run is not enough.（不过，一次运行还不够。），遮住文字再听。原文太难时用本周3句示例替代。\n验收标准：不用逐字翻译，能用中文说出选段或3句示例的大意；听读后辨认2个关键词，再核对文字。记录一处理解变化或疑问；替代材料需标注，暂不懂的地方进入下次复习。\n交付物：w12_english_s2.md：URL/小节、3词、大意、听懂词、疑问；标注是否用示例替代\n推荐资料：https://docs.pytorch.org/tutorials/beginner/basics/intro.html",
                "materialUrl": "https://docs.pytorch.org/tutorials/beginner/basics/intro.html",
                "materialTitle": "PyTorch 官方教程",
                "mastery": "unassessed",
                "updatedAt": "2026-10-11T04:13:30.080Z"
              },
              {
                "id": "b2ebd6a0-bb99-48f6-b6b8-9be579e187a7",
                "stageId": "a5bc6b9a-ba20-4374-bcaf-a7337447689e",
                "title": "AI-W12-D4 训练、基线与合理评估",
                "kind": "programming",
                "order": 42,
                "estimatedMinutes": 90,
                "firstStep": "固定配置训练；用训练标签平均做均值基线，比较验证MSE；选定设置后计算一次最终测试MSE；核对预处理只使用训练统计量。",
                "exercise": "内容周：12\n知识范围：训练Loss/验证指标和无泄漏；补简单均值预测基线，测试集仅用于最终评估，不另开复杂模型。均值基线取训练目标均值；标准化参数只在训练集拟合，再应用验证/测试。\n具体练习：固定配置训练；用训练标签平均做均值基线，比较验证MSE；选定设置后计算一次最终测试MSE；核对预处理只使用训练统计量。\n验收标准：指标计算正确，有基线与可复现配置；无集合重叠，不以测试集调参；模型未超基线也如实记录。\n交付物：w12_train.py＋metrics.csv＋配置说明\n前置任务：AI-W12-D3\n推荐资料：https://docs.pytorch.org/tutorials/beginner/basics/intro.html\nhttps://scikit-learn.org/stable/common_pitfalls.html#data-leakage",
                "materialUrl": "https://docs.pytorch.org/tutorials/beginner/basics/intro.html",
                "materialTitle": "PyTorch 官方教程",
                "mastery": "unassessed",
                "updatedAt": "2026-10-11T04:13:30.080Z"
              },
              {
                "id": "eabe43a3-00eb-4fc1-9532-1177bf0bbf83",
                "stageId": "a5bc6b9a-ba20-4374-bcaf-a7337447689e",
                "title": "AI-W12-D5 中英术语报告与可运行README",
                "kind": "programming",
                "order": 43,
                "estimatedMinutes": 90,
                "firstStep": "写输入/输出、Loss、指标、难点与10术语；附环境/命令/预期结果；说明这是合成数据教学演示。",
                "exercise": "内容周：12\n知识范围：1–2页报告和≥10术语；把运行步骤、数据来源、结果与局限合并进原报告时间，不额外要求长文。\n具体练习：写输入/输出、Loss、指标、难点与10术语；附环境/命令/预期结果；说明这是合成数据教学演示。\n验收标准：报告用自己的话说明，有来源与结果；术语≥10对；运行说明可复现，未声称预测个人掌握程度。\n交付物：w12_report.md＋README.md\n前置任务：AI-W12-D4\n推荐资料：https://docs.pytorch.org/tutorials/beginner/basics/intro.html",
                "materialUrl": "https://docs.pytorch.org/tutorials/beginner/basics/intro.html",
                "materialTitle": "PyTorch 官方教程",
                "mastery": "unassessed",
                "updatedAt": "2026-10-11T04:13:30.080Z"
              },
              {
                "id": "6df015f9-37a5-4046-aec3-b03b8a12ff10",
                "stageId": "a5bc6b9a-ba20-4374-bcaf-a7337447689e",
                "title": "EN-W12-S3 英语三句总结与口头解释：第12周",
                "kind": "english",
                "order": 44,
                "estimatedMinutes": 20,
                "firstStep": "复习3分钟、写句7分钟、听读2分钟、口头解释6分钟、记录2分钟。围绕实际练习写3句，再遮住文本说20—40秒。参考：Next, I will test another input.（接下来，我会测试另一个输入。）先自己写，再请AI或老师给一处修改及理由。",
                "exercise": "内容周：12\n知识范围：本周句型：… shows…；However…；Next, I will…；示例只供改写，不能当成真实学习日志\n具体练习：复习3分钟、写句7分钟、听读2分钟、口头解释6分钟、记录2分钟。围绕实际练习写3句，再遮住文本说20—40秒。参考：Next, I will test another input.（接下来，我会测试另一个输入。）先自己写，再请AI或老师给一处修改及理由。\n验收标准：3句含一个实际做过的动作、结果或疑问，意思清楚；能借关键词口头解释20—40秒，允许停顿。标记一处修正和下周需回忆的词；录音可选，不以口音或流利程度作为唯一标准。\n交付物：w12_english_s3.md：自写3句、1处修正及理由、口述自检、Next；可选录音\n推荐资料：https://docs.pytorch.org/tutorials/beginner/basics/intro.html",
                "materialUrl": "https://docs.pytorch.org/tutorials/beginner/basics/intro.html",
                "materialTitle": "PyTorch 官方教程",
                "mastery": "unassessed",
                "updatedAt": "2026-10-11T04:13:30.080Z"
              },
              {
                "id": "c3ac73d3-5ead-402d-a502-cb3adcebb63d",
                "stageId": "a5bc6b9a-ba20-4374-bcaf-a7337447689e",
                "title": "AI-W12-D6 阶段演示与5个关键检查",
                "kind": "programming",
                "order": 45,
                "estimatedMinutes": 120,
                "firstStep": "演示从数据到预测；手算一个shape/参数量；检查数据数目、无重叠、输出shape、指标手算、重复运行5项。",
                "exercise": "内容周：12\n知识范围：演示、手算shape/参数量与五项检查；沿用原脚本与断言，不另建测试框架。\n具体练习：演示从数据到预测；手算一个shape/参数量；检查数据数目、无重叠、输出shape、指标手算、重复运行5项。\n验收标准：五项检查均正确：数据数目核对、训练/验证/测试无重叠、输出shape正确、一小组指标手算一致、相同配置重复运行符合预期；能解释各项原因，并说明一个实际限制。\n交付物：演示记录＋5项检查表＋最终脚本\n前置任务：AI-W12-D5\n推荐资料：https://docs.pytorch.org/tutorials/beginner/basics/intro.html",
                "materialUrl": "https://docs.pytorch.org/tutorials/beginner/basics/intro.html",
                "materialTitle": "PyTorch 官方教程",
                "mastery": "unassessed",
                "updatedAt": "2026-10-11T04:13:30.080Z"
              },
              {
                "id": "f7eabecb-314b-46cf-8e81-baa2a49f8ba1",
                "stageId": "a5bc6b9a-ba20-4374-bcaf-a7337447689e",
                "title": "RD-W12-S2 阅读复述与应用：第12周",
                "kind": "reading",
                "order": 46,
                "estimatedMinutes": 20,
                "firstStep": "回忆3分钟、接续阅读10分钟、短输出7分钟。回看笔记，只选三条：一条能解释、一条改正过、一条待查；均附来源。合上资料，用3句说明“读到什么—自己的例子或判断—尚未解决的问题”，再核对一处可能误读，保存下一次位置。",
                "exercise": "内容周：12\n知识范围：回顾与证据清单；阅读、回忆、短输出都计入原20分钟\n具体练习：回忆3分钟、接续阅读10分钟、短输出7分钟。回看笔记，只选三条：一条能解释、一条改正过、一条待查；均附来源。合上资料，用3句说明“读到什么—自己的例子或判断—尚未解决的问题”，再核对一处可能误读，保存下一次位置。\n验收标准：不用照抄也能复述一个观点，给出一个自己的例子或核对问题；标明原文位置、理解限度和下次位置。已有疑问未查清可继续保留，不要求同一时段读完一章或写长笔记。\n交付物：w12_reading_s2.md：3句复述、自制例子/核对问题、纠正或局限、下次位置\n推荐资料：自选书籍；不预设书名",
                "materialUrl": "",
                "materialTitle": "自选书籍；不预设书名",
                "mastery": "unassessed",
                "updatedAt": "2026-10-11T04:13:30.080Z"
              },
              {
                "id": "ac8f16bc-1a62-4d87-bb9e-86ca930366fc",
                "stageId": "a5bc6b9a-ba20-4374-bcaf-a7337447689e",
                "title": "AI-W12-D7 12周验收与基础关卡决定",
                "kind": "programming",
                "order": 47,
                "estimatedMinutes": 60,
                "firstStep": "回看错误清单；各抽1个循环、函数、文件/表格、shape、切分问题；据结果安排巩固或下一阶段。",
                "exercise": "内容周：12\n知识范围：错题复盘与进入第4月决定；补独立运行、调错、CSV清洗、shape、切分五类证据。\n具体练习：回看错误清单；各抽1个循环、函数、文件/表格、shape、切分问题；据结果安排巩固或下一阶段。\n验收标准：能独立解释与完成关键检查才升级；未过项写具体补练，不能按日期自动算掌握。\n交付物：w12_mastery_review.md＋下阶段决定\n前置任务：AI-W12-D6\n推荐资料：https://docs.python.org/zh-cn/3/tutorial/\nhttps://docs.pytorch.org/tutorials/beginner/basics/intro.html",
                "materialUrl": "https://docs.python.org/zh-cn/3/tutorial/",
                "materialTitle": "Python 官方教程",
                "mastery": "unassessed",
                "updatedAt": "2026-10-11T04:13:30.080Z"
              }
            ]
          },
          {
            "id": "6b617f64-14bd-446e-bbd1-6e406a3f7cc2",
            "roadmapId": "a0582307-4fcb-4cbe-842b-c38e3b69d05f",
            "title": "第04个月 回归模型",
            "goal": "阶段：经典机器学习\n重点内容：线性回归、岭回归、训练与测试\n补充：在原回归项目中补数据字典、缺失/重复处理和均值基线；穿插SQLite单表SELECT、WHERE、ORDER BY、GROUP BY，用虚构学习记录对照CSV汇总。\n交付物：一个带训练/测试的回归Notebook\n原回归Notebook附数据自查；保存一组SQL查询。\n过关标准：解释MSE与过拟合；训练与测试分离\n训练测试分离，指标与基线对照；SQL和CSV汇总一致。\n推进条件：先会清洗表格再学SQL；暂不讲数据库服务部署。\n英语：短README、40–60秒讲输入/动作/结果。阅读：核对数字、来源与反例。",
            "order": 3,
            "units": []
          },
          {
            "id": "56f668b0-725f-4ccb-8fc9-05118d4d10d2",
            "roadmapId": "a0582307-4fcb-4cbe-842b-c38e3b69d05f",
            "title": "第05个月 分类基础",
            "goal": "阶段：经典机器学习\n重点内容：逻辑回归、分类指标、交叉验证\n补充：在分类项目中补类别分布、误分类与阈值解释；前移最简单的只读HTTP接口学习，理解GET、状态码、JSON、超时，使用公开或本地样例且不写入外部系统。\n交付物：二分类任务与混淆矩阵报告\n原分类报告附错误分析及短API读取练习。\n过关标准：能解释精确率/召回率及适用场景\n分类指标口径明确；合法响应可读，超时/错误有提示。\n推进条件：函数、文件和异常处理已掌握；不把密钥写进代码。\n英语：短README、40–60秒讲输入/动作/结果。阅读：核对数字、来源与反例。",
            "order": 4,
            "units": []
          },
          {
            "id": "d6888982-bdbc-4578-b117-e9e375cb433e",
            "roadmapId": "a0582307-4fcb-4cbe-842b-c38e3b69d05f",
            "title": "第06个月 树/集成/聚类",
            "goal": "阶段：经典机器学习\n重点内容：决策树、随机森林、K-means及模型选择\n补充：在端到端机器学习项目中补SQLite两表关系与简单JOIN、数据完整性；穿插GitHub仓库与README、依赖重建、个人数据排除，保持原模型选择主线。\n交付物：经典ML端到端预测项目\n原端到端项目附数据关系说明与重建步骤。\n过关标准：比较至少3个基线，记录指标与误差分析\n关联汇总无重复放大；新目录按README可运行。\n推进条件：先掌握单表查询；Git仅补项目交付所需操作。\n英语：短README、40–60秒讲输入/动作/结果。阅读：核对数字、来源与反例。",
            "order": 5,
            "units": []
          },
          {
            "id": "dce24568-0ef2-41bf-91ae-ae97ff3d2df4",
            "roadmapId": "a0582307-4fcb-4cbe-842b-c38e3b69d05f",
            "title": "第07个月 反向传播强化",
            "goal": "阶段：深度学习\n重点内容：链式法则、Autograd、计算图\n补充：在反向传播强化中补最小复现、数值对照与形状断言；沿用固定配置和实验记录，遇到AI建议先手算或构造小例子验证，再修改原推导或代码。\n交付物：手算+代码复现简易反传\n原简易反传复现附断言、手算和错误示例。\n过关标准：梯度手算和自动微分相符\n关键梯度与手算一致，错误输入可定位与说明。\n推进条件：数学与数组关卡通过；不以自动求导替代理解。\n英语：实际项目文档、5–8句项目介绍。阅读：用小例子解释概念，写100–200字。",
            "order": 6,
            "units": []
          },
          {
            "id": "aeec41bd-4110-4a09-9706-1f761e0b7801",
            "roadmapId": "a0582307-4fcb-4cbe-842b-c38e3b69d05f",
            "title": "第08个月 优化方法",
            "goal": "阶段：深度学习\n重点内容：SGD、Adam、学习率调度\n补充：在优化器对照中补控制变量、统一数据切分和初始化、训练与验证曲线；记录运行环境、参数和种子，AI给出的优化解释须通过本次对照结果核验。\n交付物：同一任务的优化器对照实验\n原优化器实验附配置与对照记录。\n过关标准：控制变量，解释Loss收敛差异\n比较条件一致；能解释结果与局限，不只列Loss。\n推进条件：每次先只改一个变量，避免同时堆叠调参技巧。\n英语：实际项目文档、5–8句项目介绍。阅读：用小例子解释概念，写100–200字。",
            "order": 7,
            "units": []
          },
          {
            "id": "f08c3453-beed-46aa-a763-cadb7687f365",
            "roadmapId": "a0582307-4fcb-4cbe-842b-c38e3b69d05f",
            "title": "第09个月 卷积神经网络CNN",
            "goal": "阶段：深度学习\n重点内容：卷积核、池化、特征图、shape\n补充：在CNN项目中补输入预处理和标签自查、形状追踪、数据来源；区分训练和验证流程，保存典型误分类样例及基线，把工程检查嵌入原图像训练任务。\n交付物：训练小型CNN模型\n原CNN项目附数据说明、shape表与误分类样例。\n过关标准：能预测feature map shape并解释卷积作用\n无训练验证混用；输入/输出可解释，错误可追查。\n推进条件：先理解批次与特征；使用小数据和有限训练轮数。\n英语：实际项目文档、5–8句项目介绍。阅读：用小例子解释概念，写100–200字。",
            "order": 8,
            "units": []
          },
          {
            "id": "58012a89-6457-465d-a21c-f174a31ad4ca",
            "roadmapId": "a0582307-4fcb-4cbe-842b-c38e3b69d05f",
            "title": "第10个月 正则化与数据增强",
            "goal": "阶段：深度学习\n重点内容：dropout、权重衰减、augment\n补充：在正则化和数据增强实验中补验证集固定、增强只用于训练、对照条件一致；结合过拟合曲线检查改动效果，记录失败实验，避免只选择最好的一次报告。\n交付物：改善CNN泛化实验\n原泛化实验附对照条件与失败/成功记录。\n过关标准：有独立验证集与消融记录\n增强边界正确；结论由验证指标和错误样例支持。\n推进条件：沿用第9月数据，不额外开新数据集扩大范围。\n英语：实际项目文档、5–8句项目介绍。阅读：用小例子解释概念，写100–200字。",
            "order": 9,
            "units": []
          },
          {
            "id": "1303bb81-82b4-4675-995c-30e8c3bd509d",
            "roadmapId": "a0582307-4fcb-4cbe-842b-c38e3b69d05f",
            "title": "第11个月 迁移学习与调参",
            "goal": "阶段：深度学习\n重点内容：预训练特征、冻结层、超参数探索\n补充：在迁移学习与调参中补预训练模型来源、许可和输入要求，记录冻结层与可训练参数；调参预算预先限定，用验证集选择设置，保留基线和资源消耗记录。\n交付物：迁移学习图像分类练习\n原迁移学习练习附模型来源与调参对照。\n过关标准：至少2次受控调参并留下记录\n冻结/解冻可解释；测试集未参与选择，来源可查。\n推进条件：先做一组最小对照，不追求大规模参数搜索。\n英语：实际项目文档、5–8句项目介绍。阅读：用小例子解释概念，写100–200字。",
            "order": 10,
            "units": []
          },
          {
            "id": "738de189-62cc-462a-b6fa-6e903ad583c4",
            "roadmapId": "a0582307-4fcb-4cbe-842b-c38e3b69d05f",
            "title": "第12个月 深度学习阶段项目",
            "goal": "阶段：深度学习\n重点内容：图像分类、评估、错误样例分析\n补充：在深度学习阶段项目中补独立环境重建、输入验证和运行说明；汇总基线、切分、指标、错误样例与局限，将既有图像项目打磨成可复现作品而非新增项目。\n交付物：可复现图像分类项目\n原图像分类作品附README、配置、测试与报告。\n过关标准：代码/README/评估图/误差分析完整\n按文档能复现，关键检查通过，结论与实验一致。\n推进条件：未过泛化和数据边界检查则继续巩固。\n英语：实际项目文档、5–8句项目介绍。阅读：用小例子解释概念，写100–200字。",
            "order": 11,
            "units": []
          },
          {
            "id": "81f2b483-3fee-4de5-ad9d-28e146eb5244",
            "roadmapId": "a0582307-4fcb-4cbe-842b-c38e3b69d05f",
            "title": "第13个月 文本表示与分词",
            "goal": "阶段：大模型\n重点内容：Tokenization、embedding、文本预处理\n补充：在文本表示与分词中补文本编码、重复与缺失、来源和许可；保存小型可核对的文本样例，观察分词和向量shape，若读取接口则沿用超时与错误处理。\n交付物：分词与向量表示小练习\n原分词练习附样例数据说明与shape检查。\n过关标准：解释token与词不总是一一对应\n样例可重复处理，分词结果及维度能解释。\n推进条件：使用非敏感公开/虚构文本，不默认上传个人笔记。\n英语：短技术原文/摘要、90–120秒介绍。阅读：一次读论文一部分，比较观点。",
            "order": 12,
            "units": []
          },
          {
            "id": "517e4dfc-de51-45bf-8ba5-c935fe72fae8",
            "roadmapId": "a0582307-4fcb-4cbe-842b-c38e3b69d05f",
            "title": "第14个月 注意力机制Attention",
            "goal": "阶段：大模型\n重点内容：Q/K/V、缩放点积注意力\n补充：在注意力实现中补小矩阵手算、输出shape和数值稳定性核对；给出正确与错误输入的最小例子，AI解释仅作提示，Q/K/V与缩放关系由自己推导说明。\n交付物：NumPy实现简易attention\n原attention实现附手算、断言与错误示例。\n过关标准：手算至少1个小矩阵输出\n计算与手算相符，shape正确，错误原因可定位。\n推进条件：先用小矩阵理解再扩展，不堆叠模型框架。\n英语：短技术原文/摘要、90–120秒介绍。阅读：一次读论文一部分，比较观点。",
            "order": 13,
            "units": []
          },
          {
            "id": "8b0eebb6-022e-4504-90a0-ffbf998e51a4",
            "roadmapId": "a0582307-4fcb-4cbe-842b-c38e3b69d05f",
            "title": "第15个月 Transformer结构",
            "goal": "阶段：大模型\n重点内容：位置编码、多头注意力、残差\n补充：在Transformer block中补模块输入输出约定、mask与残差shape检查；保持已有配置和种子，写最短运行说明，用固定小张量核验各步骤后再组合模块。\n交付物：用PyTorch搭建简化Transformer block\n原block实现附模块图、shape表与检查脚本。\n过关标准：讲清各层输入输出shape\n模块检查通过，mask与残差行为能逐步解释。\n推进条件：注意力关卡通过才组合；不以大模型调用替代推导。\n英语：短技术原文/摘要、90–120秒介绍。阅读：一次读论文一部分，比较观点。",
            "order": 14,
            "units": []
          },
          {
            "id": "e20ba967-b6e8-4f4b-b03c-31d1de0d2ebb",
            "roadmapId": "a0582307-4fcb-4cbe-842b-c38e3b69d05f",
            "title": "第16个月 小型语言模型",
            "goal": "阶段：大模型\n重点内容：自回归预测、交叉熵、训练过程\n补充：在玩具语言模型中补语料来源、训练与验证分离、困惑度或损失口径、文本生成设置与局限；记录算力和训练预算，输出样例不可作为可靠事实回答。\n交付物：训练玩具级字符模型\n原字符模型附配置、语料说明及生成样例报告。\n过关标准：能够解释训练目标与生成过程\n可复现，验证指标清晰，能说明模型能力边界。\n推进条件：控制数据与模型规模，保持在个人资源预算内。\n英语：短技术原文/摘要、90–120秒介绍。阅读：一次读论文一部分，比较观点。",
            "order": 15,
            "units": []
          },
          {
            "id": "8ddcac7f-b35d-4697-af90-8ee94d79102d",
            "roadmapId": "a0582307-4fcb-4cbe-842b-c38e3b69d05f",
            "title": "第17个月 微调与评估",
            "goal": "阶段：大模型\n重点内容：Fine-tuning、LoRA、数据质量、基线\n补充：在微调中补数据质量抽查、许可、重复与评测集隔离；先固定基座和评测再比微调效果，记录失败例子、成本和参数，不只展示几个最好看的回答。\n交付物：小模型微调对照\n原微调对照附评测集说明、失败例子与成本。\n过关标准：记录效果、代价、失败样例\n前后使用同一评测口径，无评测数据泄漏。\n推进条件：先小模型和小样本验证，再决定扩大训练。\n英语：短技术原文/摘要、90–120秒介绍。阅读：一次读论文一部分，比较观点。",
            "order": 16,
            "units": []
          },
          {
            "id": "4a17617a-89fe-4cc2-ac90-d726f59c4b81",
            "roadmapId": "a0582307-4fcb-4cbe-842b-c38e3b69d05f",
            "title": "第18个月 RAG应用",
            "goal": "阶段：大模型\n重点内容：检索、分块、引用、检索评估\n补充：在RAG应用中补引用可追查、检索与生成分开评测、未找到证据时的回答方式；给出固定问题集和错误例子，检查文档内容不可变成执行指令或自动保存授权。\n交付物：可评估的问答小应用\n原问答应用附引用、固定评测与失败样例。\n过关标准：回答附来源；测试20道题并分析误答\n来源可核对，问题集可重复评测，失败如实记录。\n推进条件：先只读学习资料；保存计划与进度仍需用户确认。\n英语：短技术原文/摘要、90–120秒介绍。阅读：一次读论文一部分，比较观点。",
            "order": 17,
            "units": []
          },
          {
            "id": "704c55b1-5098-4c31-9ff1-71951094b48d",
            "roadmapId": "a0582307-4fcb-4cbe-842b-c38e3b69d05f",
            "title": "第19个月 服务封装",
            "goal": "阶段：AI工程\n重点内容：API、FastAPI、数据验证\n补充：在FastAPI服务封装中补请求与响应字段、输入验证、异常返回、权限和密钥配置；复用已有模拟预测或问答功能，明确读取与写入边界，不扩展多套服务。\n交付物：封装预测/LLM推理接口\n原API附字段说明、输入检查及接口测试。\n过关标准：本地接口可被请求与测试\n合法输入正确返回，非法输入清晰报错，密钥不入源码。\n推进条件：只在接口确有需要时加入授权和状态管理。\n英语：实验小结与2分钟解释。阅读：对照、指标、证据能支持的范围。",
            "order": 18,
            "units": []
          },
          {
            "id": "c56a91ba-02a3-48da-9ce1-a04774b9a7e2",
            "roadmapId": "a0582307-4fcb-4cbe-842b-c38e3b69d05f",
            "title": "第20个月 容器和部署",
            "goal": "阶段：AI工程\n重点内容：Docker、环境与依赖、日志\n补充：在Docker部署中补日志、健康检查、数据持久化、备份恢复及版本回退；依赖与配置可重建，部署前后核对原有数据，用同一服务进行演示与验收。\n交付物：部署一个可访问的demo\n原部署demo附部署步骤、备份恢复与回退记录。\n过关标准：完成运行手册和故障排查步骤\n服务可访问、错误可定位，恢复演练通过且数据一致。\n推进条件：先本地验证；不把能打开网页当全部部署验收。\n英语：实验小结与2分钟解释。阅读：对照、指标、证据能支持的范围。",
            "order": 19,
            "units": []
          },
          {
            "id": "abae967a-3ec3-492b-9fd8-51669cca7e31",
            "roadmapId": "a0582307-4fcb-4cbe-842b-c38e3b69d05f",
            "title": "第21个月 推理优化",
            "goal": "阶段：AI工程\n重点内容：Batching、缓存、延迟、吞吐\n补充：在推理优化中补一致输入和硬件、预热、延迟分布、吞吐与资源口径；比较缓存和批处理前后效果，检查缓存正确性与结果一致，保留性能与质量的权衡。\n交付物：推理前后性能对照\n原性能对照附测试条件、结果与局限。\n过关标准：测量延迟/内存，并记录质量变化\n重复测量口径一致，优化未破坏输入输出正确性。\n推进条件：先测瓶颈再改代码，不提前采用复杂分布式方案。\n英语：实验小结与2分钟解释。阅读：对照、指标、证据能支持的范围。",
            "order": 20,
            "units": []
          },
          {
            "id": "b56729f5-5af2-494e-9f15-18388b82906c",
            "roadmapId": "a0582307-4fcb-4cbe-842b-c38e3b69d05f",
            "title": "第22个月 实验管理MLOps",
            "goal": "阶段：AI工程\n重点内容：配置管理、版本、实验跟踪\n补充：在实验管理中把此前配置、依赖、Git、数据说明和种子整理成可复现流水线；补产物命名、运行状态和失败恢复，用轻量方案完成一次从输入到报告的重跑。\n交付物：可复现实验流水线\n原实验流水线附输入/版本/产物关联与重跑记录。\n过关标准：同输入可重现主要指标，记录模型版本\n一次重跑可得到可核对结果，失败位置和版本可追查。\n推进条件：只引入当前项目用得上的工具，避免平台堆叠。\n英语：实验小结与2分钟解释。阅读：对照、指标、证据能支持的范围。",
            "order": 21,
            "units": []
          },
          {
            "id": "c721d5a6-6291-446a-8f39-e5e7e8074c94",
            "roadmapId": "a0582307-4fcb-4cbe-842b-c38e3b69d05f",
            "title": "第23个月 训练扩展与算力",
            "goal": "阶段：AI工程\n重点内容：GPU基础、显存、分布式概念\n补充：在算力与训练扩展中补显存、时间和费用预算、资源监测与失败诊断；使用相同任务比较不同batch，记录OOM边界，分布式先学概念再按确有需求做小实验。\n交付物：测量不同batch的显存和吞吐\n原显存/吞吐测量附配置、边界和预算。\n过关标准：能解释瓶颈和基本trade-off\n能解释batch变化的资源与性能结果及测量限制。\n推进条件：单设备流程稳定后再研究扩展，避免先购置算力。\n英语：实验小结与2分钟解释。阅读：对照、指标、证据能支持的范围。",
            "order": 22,
            "units": []
          },
          {
            "id": "98bbb824-dc55-4603-affa-a3c1743915de",
            "roadmapId": "a0582307-4fcb-4cbe-842b-c38e3b69d05f",
            "title": "第24个月 专项系统项目",
            "goal": "阶段：AI工程\n重点内容：方向选择：CV/NLP/LLM应用中择一\n补充：在专项系统中补需求范围、数据与权限边界、日志和备份、固定验收用例；把现有方向作品整理为一个能演示、能重建、能定位错误的系统，继续保持单一主体。\n交付物：上线可演示的完整AI系统\n原AI系统附操作说明、验收结果与恢复记录。\n过关标准：API+测试+日志+README可验证\n完整流程可演示，关键失败可诊断，数据可恢复。\n推进条件：择一方向深做，不同时开启CV/NLP/LLM三个项目。\n英语：实验小结与2分钟解释。阅读：对照、指标、证据能支持的范围。",
            "order": 23,
            "units": []
          },
          {
            "id": "96a5142d-c468-4292-8723-ff0441c523cb",
            "roadmapId": "a0582307-4fcb-4cbe-842b-c38e3b69d05f",
            "title": "第25个月 科研阅读方法",
            "goal": "阶段：科研与论文\n重点内容：论文结构、问题、贡献、实验\n补充：在科研阅读中补文献来源与版本、任务/基线/数据/指标/局限的结构化摘录；将论文结论和自己的复现结果区分，利用现有英语练习解释关键句而不另加大作业。\n交付物：精读3篇相关论文\n原3篇精读附证据表与未解决问题。\n过关标准：每篇写问题/方法/证据/局限\n贡献和实验能用自己的话说明，结论可回查原文。\n推进条件：先选与已有作品相关论文，不以读完数量代替理解。\n英语：分段写英文README、3分钟介绍。阅读：2–3份材料的来源与分歧比较。",
            "order": 24,
            "units": []
          },
          {
            "id": "f9d01082-c4ab-45f5-864d-8b78dc60cb07",
            "roadmapId": "a0582307-4fcb-4cbe-842b-c38e3b69d05f",
            "title": "第26个月 专题文献地图",
            "goal": "阶段：科研与论文\n重点内容：筛选主线论文与公开基准\n补充：在文献地图中补基准版本、数据许可、评价口径和可比性；记录方法之间继承与差异，避免把不同切分或算力下的数字直接排名，保留来源与筛选理由。\n交付物：形成带年代与类别的文献图谱\n原文献地图附基准口径与筛选记录。\n过关标准：识别关键基线和公开数据集\n关键比较有共同口径，不可比结果注明原因。\n推进条件：以一个窄主题为主线，先保证地图可核查。\n英语：分段写英文README、3分钟介绍。阅读：2–3份材料的来源与分歧比较。",
            "order": 25,
            "units": []
          },
          {
            "id": "1322aee3-dddb-4263-b9bc-401e59187c4a",
            "roadmapId": "a0582307-4fcb-4cbe-842b-c38e3b69d05f",
            "title": "第27个月 复现选题",
            "goal": "阶段：科研与论文\n重点内容：难度评估、算力预算、代码检查\n补充：在复现选题中补代码许可、依赖年龄、数据获取、算力预算和最小成功定义；先跑官方小样例再决定复现范围，列出阻塞和替代方案，不自动扩展论文全部实验。\n交付物：确定1篇可复现论文和计划\n原复现计划附小样例结果与风险/预算表。\n过关标准：有范围、预算、验收指标\n选题可获取数据和代码，最小验证及预算明确。\n推进条件：正式复现前先确认个人资源可以承担。\n英语：分段写英文README、3分钟介绍。阅读：2–3份材料的来源与分歧比较。",
            "order": 26,
            "units": []
          },
          {
            "id": "63b10b8c-4caa-4c9c-87d5-ce0cba8bd190",
            "roadmapId": "a0582307-4fcb-4cbe-842b-c38e3b69d05f",
            "title": "第28个月 复现实验环境",
            "goal": "阶段：科研与论文\n重点内容：环境锁定、数据流程、seed\n补充：在复现实验环境中补依赖锁定、数据校验、版本记录、配置和产物路径；首次baseline后完成最短重跑说明，原始数据保持可追查，个人敏感数据不混入实验。\n交付物：复现baseline第一次运行\n原baseline运行附环境、数据校验与重跑说明。\n过关标准：记录环境和可重现步骤\n同配置可重跑，版本和数据来源完整，错误可定位。\n推进条件：先跑通最小数据，再扩展完整规模。\n英语：分段写英文README、3分钟介绍。阅读：2–3份材料的来源与分歧比较。",
            "order": 27,
            "units": []
          },
          {
            "id": "74d87261-1150-4a70-a4dc-c34899f70b9a",
            "roadmapId": "a0582307-4fcb-4cbe-842b-c38e3b69d05f",
            "title": "第29个月 基线稳定性",
            "goal": "阶段：科研与论文\n重点内容：重复实验、方差、seed敏感性\n补充：在基线稳定性中补种子列表、重复实验条件、均值与波动，以及失败运行的处理规则；三个种子都保留结果，不因最好一次接近论文数字就认定完整复现。\n交付物：重复3次基线实验\n原3次基线实验附条件、均值/波动及失败记录。\n过关标准：指标波动有解释并和原文对照\n重复条件一致，差异与论文口径和局限说得清。\n推进条件：基线不稳定先定位原因，不急于加入改进方法。\n英语：分段写英文README、3分钟介绍。阅读：2–3份材料的来源与分歧比较。",
            "order": 28,
            "units": []
          },
          {
            "id": "956487b2-3c46-43f6-aa3e-e2c8b1b40188",
            "roadmapId": "a0582307-4fcb-4cbe-842b-c38e3b69d05f",
            "title": "第30个月 消融与误差分析",
            "goal": "阶段：科研与论文\n重点内容：Ablation、错误分类、控制变量\n补充：在消融中补一次只改一个因素、等预算对照与错误样例；提前写比较指标和实验表，保留负结果，通过控制变量说明哪个改变产生何种效果，不只罗列分数。\n交付物：2个消融实验表\n原2个消融表附控制变量、错误分析及负结果。\n过关标准：只更改目标变量并解释差异\n消融可重跑，变化归因与实验条件一致。\n推进条件：基线稳定后再消融，避免同时修改多个模块。\n英语：分段写英文README、3分钟介绍。阅读：2–3份材料的来源与分歧比较。",
            "order": 29,
            "units": []
          },
          {
            "id": "e1589586-35e8-4e5f-b7c1-d1540437642e",
            "roadmapId": "a0582307-4fcb-4cbe-842b-c38e3b69d05f",
            "title": "第31个月 研究假设",
            "goal": "阶段：科研与论文\n重点内容：从局限发现可证伪想法\n补充：在研究假设中补可证伪条件、预期结果和失败解释；从已有误差分析提出一个窄问题，明确最小测试与资源预算，AI可以建议假设但证据和判断由自己核验。\n交付物：提出1个可测试研究假设\n原研究假设附最小实验与可证伪标准。\n过关标准：写出对照、测量指标和失败条件\n假设可以被具体结果支持或否定，变量与指标明确。\n推进条件：先做小实验判断价值，不把新颖描述当成果。\n英语：分段写摘要，3–5分钟作品介绍。阅读：形成可追溯的证据清单。",
            "order": 30,
            "units": []
          },
          {
            "id": "4430fbaf-02d5-458d-b273-4311aaa58f97",
            "roadmapId": "a0582307-4fcb-4cbe-842b-c38e3b69d05f",
            "title": "第32个月 改进方案实现",
            "goal": "阶段：科研与论文\n重点内容：从最小实验开始实现改动\n补充：在改进实现中补最小示例、输入输出约定、关键断言与版本保存；沿用稳定基线和配置，单独记录新增模块及资源开销，先证明可运行再进入大规模对照。\n交付物：新方法可跑通最小数据\n原最小新方法附测试、配置及变更说明。\n过关标准：有版本对比和失败记录\n关键测试通过，基线未被意外改变，开销可量化。\n推进条件：一次实现一项改动，不堆叠未经检验的AI代码。\n英语：分段写摘要，3–5分钟作品介绍。阅读：形成可追溯的证据清单。",
            "order": 31,
            "units": []
          },
          {
            "id": "64d6390c-dcbf-4214-b110-84cd8b6e11aa",
            "roadmapId": "a0582307-4fcb-4cbe-842b-c38e3b69d05f",
            "title": "第33个月 对照与统计检验",
            "goal": "阶段：科研与论文\n重点内容：重复跑、置信区间、显著性直觉\n补充：在对照与统计中补重复条件、置信区间的解释、效应大小与资源成本；报告全部预先约定结果和失败运行规则，谨慎说明小样本显著性，不挑最有利种子。\n交付物：对照结果表+可信度分析\n原对照结果表附统计口径、成本与可信度说明。\n过关标准：不过度宣称显著改善\n比较公平、结果可复现，结论强度与证据匹配。\n推进条件：先确认统计方法适合数据与实验设计。\n英语：分段写摘要，3–5分钟作品介绍。阅读：形成可追溯的证据清单。",
            "order": 32,
            "units": []
          },
          {
            "id": "50376b69-4b54-46be-9f80-949e7bf444fa",
            "roadmapId": "a0582307-4fcb-4cbe-842b-c38e3b69d05f",
            "title": "第34个月 科研写作",
            "goal": "阶段：科研与论文\n重点内容：摘要、方法、实验、局限\n补充：在科研写作中补主张到图表/实验/来源的对应关系、方法可重跑说明和限制；摘要与结论只能覆盖实际证据，术语统一，AI辅助改写后逐项核验事实和引用。\n交付物：6~10页技术报告初稿\n原6–10页初稿附证据对应与复现说明。\n过关标准：可追溯数据与图，说明局限\n图表、数字、来源一致，无超出实验的结论。\n推进条件：先写清实际结果，不为完整故事掩盖负结果。\n英语：分段写摘要，3–5分钟作品介绍。阅读：形成可追溯的证据清单。",
            "order": 33,
            "units": []
          },
          {
            "id": "adac4ff5-ffc1-4365-bad3-2f1f0e4781f6",
            "roadmapId": "a0582307-4fcb-4cbe-842b-c38e3b69d05f",
            "title": "第35个月 可复现发布",
            "goal": "阶段：科研与论文\n重点内容：代码清理、README、许可意识\n补充：在可复现发布中补代码许可、数据许可、敏感信息检查、依赖及运行命令、发布版本与产物关联；用干净目录演练一次，公开与私有范围按本人意愿确定。\n交付物：公开或私有完整复现仓库\n原复现仓库附许可、版本、README与干净重跑。\n过关标准：别人可按步骤运行（如环境允许）\n仓库可重建，无个人数据或密钥，引用完整。\n推进条件：先做可审阅交付，再按授权选择发布范围。\n英语：分段写摘要，3–5分钟作品介绍。阅读：形成可追溯的证据清单。",
            "order": 34,
            "units": []
          },
          {
            "id": "c5c12bad-fa16-4e9f-958b-be694ae8ab04",
            "roadmapId": "a0582307-4fcb-4cbe-842b-c38e3b69d05f",
            "title": "第36个月 研究里程碑复盘",
            "goal": "阶段：科研与论文\n重点内容：汇总复现/改进/证据；选下一主题\n补充：在研究里程碑复盘中补可独立完成的能力证据、持续卡点、作品可重建状态与下一阶段预算；将复现、改进、负结果和工程交付汇总，路线调整依据实际掌握。\n交付物：最终科研报告与作品集更新\n原最终报告与作品集附能力证据及下一阶段计划。\n过关标准：研究结论有证据，下一轮假设明确\n研究和工程成果可核查，下一主题有前置和预算。\n推进条件：月数是方向不是硬截止，未过关项继续补练。\n英语：分段写摘要，3–5分钟作品介绍。阅读：形成可追溯的证据清单。",
            "order": 35,
            "units": []
          }
        ]
      }
    ],
    "availability": [
      {
        "date": "2026-10-11T00:00:00.000Z",
        "shift": "night",
        "availableMinutes": 60,
        "reviewMinutes": 20,
        "startTime": "18:50",
        "reason": "",
        "updatedAt": "2026-10-11T10:47:05.187Z"
      }
    ],
    "previews": [],
    "masteryChecks": [],
    "reviewCards": [],
    "reviewAttempts": [],
    "drafts": [
      {
        "id": "learning-rolling-v1",
        "version": 1,
        "content": {
          "days": [
            {
              "date": "2026-10-11",
              "shift": "night",
              "reason": "预计班次，可换班或改为放假；沿用原试学预算供核对，含英语15分钟、阅读20分钟，复习计入总量。开始时间待填写。",
              "startTime": "",
              "reviewMinutes": 10,
              "availableMinutes": 80
            },
            {
              "date": "2026-10-12",
              "shift": "rest1",
              "reason": "预计班次，可换班或改为放假；沿用原试学预算供核对，含英语15分钟、阅读20分钟，复习计入总量。开始时间待填写。",
              "startTime": "",
              "reviewMinutes": 10,
              "availableMinutes": 100
            },
            {
              "date": "2026-10-13",
              "shift": "rest2",
              "reason": "预计班次，可换班或改为放假；沿用原试学预算供核对，含英语15分钟、阅读20分钟，复习计入总量。开始时间待填写。",
              "startTime": "",
              "reviewMinutes": 10,
              "availableMinutes": 130
            },
            {
              "date": "2026-10-14",
              "shift": "day",
              "reason": "预计班次，可换班或改为放假；沿用原试学预算供核对，含英语15分钟、阅读20分钟，复习计入总量。开始时间待填写。",
              "startTime": "",
              "reviewMinutes": 10,
              "availableMinutes": 80
            },
            {
              "date": "2026-10-15",
              "shift": "night",
              "reason": "预计班次，可换班或改为放假；沿用原试学预算供核对，含英语15分钟、阅读20分钟，复习计入总量。开始时间待填写。",
              "startTime": "",
              "reviewMinutes": 10,
              "availableMinutes": 80
            },
            {
              "date": "2026-10-16",
              "shift": "rest1",
              "reason": "预计班次，可换班或改为放假；沿用原试学预算供核对，含英语15分钟、阅读20分钟，复习计入总量。开始时间待填写。",
              "startTime": "",
              "reviewMinutes": 10,
              "availableMinutes": 100
            },
            {
              "date": "2026-10-17",
              "shift": "rest2",
              "reason": "预计班次，可换班或改为放假；沿用原试学预算供核对，含英语15分钟、阅读20分钟，复习计入总量。开始时间待填写。",
              "startTime": "",
              "reviewMinutes": 10,
              "availableMinutes": 130
            }
          ],
          "start": "2026-10-11",
          "horizon": 7,
          "roadmapId": "a0582307-4fcb-4cbe-842b-c38e3b69d05f"
        },
        "updatedAt": "2026-10-11T04:13:30.198Z"
      },
      {
        "id": "trace-plan-source-20261011",
        "version": 1,
        "content": {
          "title": "AI学习计划 36个月方向与12周内容",
          "stages": [
            {
              "month": 1,
              "title": "第01个月 编程起步",
              "unitsCount": 48
            },
            {
              "month": 2,
              "title": "第02个月 数组与计算",
              "unitsCount": 48
            },
            {
              "month": 3,
              "title": "第03个月 数学+最小神经网络",
              "unitsCount": 48
            },
            {
              "month": 4,
              "title": "第04个月 回归模型",
              "unitsCount": 0
            },
            {
              "month": 5,
              "title": "第05个月 分类基础",
              "unitsCount": 0
            },
            {
              "month": 6,
              "title": "第06个月 树/集成/聚类",
              "unitsCount": 0
            },
            {
              "month": 7,
              "title": "第07个月 反向传播强化",
              "unitsCount": 0
            },
            {
              "month": 8,
              "title": "第08个月 优化方法",
              "unitsCount": 0
            },
            {
              "month": 9,
              "title": "第09个月 卷积神经网络CNN",
              "unitsCount": 0
            },
            {
              "month": 10,
              "title": "第10个月 正则化与数据增强",
              "unitsCount": 0
            },
            {
              "month": 11,
              "title": "第11个月 迁移学习与调参",
              "unitsCount": 0
            },
            {
              "month": 12,
              "title": "第12个月 深度学习阶段项目",
              "unitsCount": 0
            },
            {
              "month": 13,
              "title": "第13个月 文本表示与分词",
              "unitsCount": 0
            },
            {
              "month": 14,
              "title": "第14个月 注意力机制Attention",
              "unitsCount": 0
            },
            {
              "month": 15,
              "title": "第15个月 Transformer结构",
              "unitsCount": 0
            },
            {
              "month": 16,
              "title": "第16个月 小型语言模型",
              "unitsCount": 0
            },
            {
              "month": 17,
              "title": "第17个月 微调与评估",
              "unitsCount": 0
            },
            {
              "month": 18,
              "title": "第18个月 RAG应用",
              "unitsCount": 0
            },
            {
              "month": 19,
              "title": "第19个月 服务封装",
              "unitsCount": 0
            },
            {
              "month": 20,
              "title": "第20个月 容器和部署",
              "unitsCount": 0
            },
            {
              "month": 21,
              "title": "第21个月 推理优化",
              "unitsCount": 0
            },
            {
              "month": 22,
              "title": "第22个月 实验管理MLOps",
              "unitsCount": 0
            },
            {
              "month": 23,
              "title": "第23个月 训练扩展与算力",
              "unitsCount": 0
            },
            {
              "month": 24,
              "title": "第24个月 专项系统项目",
              "unitsCount": 0
            },
            {
              "month": 25,
              "title": "第25个月 科研阅读方法",
              "unitsCount": 0
            },
            {
              "month": 26,
              "title": "第26个月 专题文献地图",
              "unitsCount": 0
            },
            {
              "month": 27,
              "title": "第27个月 复现选题",
              "unitsCount": 0
            },
            {
              "month": 28,
              "title": "第28个月 复现实验环境",
              "unitsCount": 0
            },
            {
              "month": 29,
              "title": "第29个月 基线稳定性",
              "unitsCount": 0
            },
            {
              "month": 30,
              "title": "第30个月 消融与误差分析",
              "unitsCount": 0
            },
            {
              "month": 31,
              "title": "第31个月 研究假设",
              "unitsCount": 0
            },
            {
              "month": 32,
              "title": "第32个月 改进方案实现",
              "unitsCount": 0
            },
            {
              "month": 33,
              "title": "第33个月 对照与统计检验",
              "unitsCount": 0
            },
            {
              "month": 34,
              "title": "第34个月 科研写作",
              "unitsCount": 0
            },
            {
              "month": 35,
              "title": "第35个月 可复现发布",
              "unitsCount": 0
            },
            {
              "month": 36,
              "title": "第36个月 研究里程碑复盘",
              "unitsCount": 0
            }
          ],
          "roadmapId": "a0582307-4fcb-4cbe-842b-c38e3b69d05f",
          "taskCount": 144,
          "preparedAt": "2026-10-11",
          "requestKey": "977b950a-33c3-4146-ba1e-24a66930a6be",
          "sourceFile": "/Users/liyuwen/Documents/催促工具/outputs/20261011-学习内容补全/trace-roadmap-source.json",
          "payloadFile": "/Users/liyuwen/Documents/催促工具/outputs/20261011-学习内容补全/trace-roadmap-content.json",
          "stagesCount": 36,
          "countsByKind": {
            "english": 36,
            "reading": 24,
            "programming": 84
          },
          "sourceWorkbook": "/Users/liyuwen/Documents/催促工具/outputs/20261011-学习内容补全/AI学习计划-补全版-36个月路线与12周任务.xlsx",
          "contentImportedAt": "2026-10-11T04:13:30.201Z",
          "dailyHabitTargets": {
            "accounting": "纳入当日可用总预算，不额外增加学习总量，不伪造额外任务",
            "englishMinutes": 15,
            "readingMinutes": 20
          },
          "payloadFileSha256": "8ea2ee14bed0d81cfe6e3d0024a466f3eb0eca03ff431d1bf622e00528088668",
          "remindersActivated": false,
          "firstTaskAdjustment": {
            "taskId": "AI-W01-D1",
            "firstStep": "先用10–15分钟检查比较边界、range和列表求和，衔接已学for循环；按结果决定复习或续学。",
            "originalTaskContent": {
              "area": "Programming/Python",
              "tags": "AI,基础,W01,Python",
              "taskId": "AI-W01-D1",
              "project": "AI系统学习",
              "exercise": "写出 score=59、60、61 在四个运算符下的真假，逐行中文注释；独立运行8种判断",
              "priority": "中",
              "taskType": "新知识/复习",
              "taskTitle": "比较运算符 <= 与 >=",
              "acceptance": "不看笔记说清 <= 与 < 的差别，正确预测至少7/8个结果",
              "contentWeek": 1,
              "deliverable": "w01_d1_comparison.py",
              "mappedStage": "第01个月 编程起步",
              "sourceRange": "A5:Y5",
              "sourceSheet": "每日任务",
              "originalPhase": "第一阶段：基础（0–3个月）",
              "knowledgeScope": "<=（小于等于）、>=（大于等于）、布尔值 Boolean；对照 < 与 <= 的边界区别",
              "prerequisiteTaskId": "",
              "recommendedMaterials": "https://docs.python.org/3/tutorial/",
              "mappedEstimatedMinutes": 15,
              "originalEstimatedMinutes": 90
            },
            "mappedEstimatedMinutes": 15,
            "originalEstimatedMinutes": 90
          },
          "sourceWorkbookSha256": "a9261b98099c3b0118f614fb6978fe94a814aeaf713027857a7529abfcabffa7",
          "importedLearningResults": false,
          "scheduledDatesOrStartTimes": false,
          "mappedEstimatedMinutesByKind": {
            "english": 720,
            "reading": 480,
            "programming": 7485
          },
          "originalEstimatedMinutesByKind": {
            "english": 720,
            "reading": 480,
            "programming": 7560
          }
        },
        "updatedAt": "2026-10-11T04:13:30.224Z"
      }
    ]
  },
  "reading": {
    "books": [
      {
        "id": "63b7224e-77ca-4c04-aa83-2f49397d485f",
        "title": "从零读懂人工智能",
        "author": null,
        "format": "PDF",
        "fileName": "AI_for_Beginners_Chinese_Textbook_Expanded.pdf",
        "fileSize": 1963101,
        "chapterCount": 173,
        "totalCharacters": 113993,
        "chapterIndex": 7,
        "blockIndex": 0,
        "progress": 4,
        "version": 19,
        "finished": false,
        "fileHash": "e3385c41e7e5dc150bbe692b83a831364d297ac2d4b18a553bb3a944ee84a58d",
        "lastReadAt": "2026-10-10T06:52:40.422Z",
        "createdAt": "2026-10-09T11:19:49.917Z",
        "updatedAt": "2026-10-10T06:52:40.423Z"
      },
      {
        "id": "67312aeb-7f3d-426e-b084-d472214da01f",
        "title": "深入理解 AI Agent：设计原理与工程实践",
        "author": "李博杰",
        "format": "EPUB",
        "fileName": "AI-Agents-in-Depth-zh-CN.epub",
        "fileSize": 3445841,
        "chapterCount": 14,
        "totalCharacters": 415679,
        "chapterIndex": 3,
        "blockIndex": 19,
        "progress": 3,
        "version": 71,
        "finished": false,
        "fileHash": "7151f12ea2b2f6763ba937670d9905d8c063329d10b313d37302272752160807",
        "lastReadAt": "2026-10-26T14:21:35.444Z",
        "createdAt": "2026-10-06T14:55:35.108Z",
        "updatedAt": "2026-10-26T14:21:35.445Z"
      }
    ],
    "bookmarks": [],
    "sessions": [
      {
        "id": "70d44b66-e088-49a2-821a-ef80196df4bb",
        "bookId": "63b7224e-77ca-4c04-aa83-2f49397d485f",
        "bookTitle": "从零读懂人工智能",
        "activeSeconds": 32,
        "generatedNextAction": null,
        "entryId": null,
        "endedAt": null,
        "createdAt": "2026-10-09T15:06:30.705Z",
        "updatedAt": "2026-10-09T15:07:13.830Z",
        "draft": {
          "question": "",
          "nextAction": "继续阅读《从零读懂人工智能》",
          "reflection": ""
        },
        "planId": null
      },
      {
        "id": "b12f9ec7-d429-4297-bf2c-54d77899bcd6",
        "bookId": "67312aeb-7f3d-426e-b084-d472214da01f",
        "bookTitle": "深入理解 AI Agent：设计原理与工程实践",
        "activeSeconds": 159,
        "generatedNextAction": null,
        "entryId": null,
        "endedAt": null,
        "createdAt": "2026-10-09T08:14:38.323Z",
        "updatedAt": "2026-10-09T15:07:37.372Z",
        "draft": {
          "question": "",
          "nextAction": "继续阅读《深入理解 AI Agent：设计原理与工程实践》",
          "reflection": ""
        },
        "planId": null
      },
      {
        "id": "081f5b3e-0d21-4c88-b1ee-4068461be09b",
        "bookId": null,
        "bookTitle": "6b3e4aa27f358175ab8033177bde84cf",
        "activeSeconds": 43,
        "generatedNextAction": null,
        "entryId": null,
        "endedAt": null,
        "createdAt": "2026-10-06T14:47:42.216Z",
        "updatedAt": "2026-10-06T14:49:14.990Z",
        "draft": {},
        "planId": null
      },
      {
        "id": "29950eb5-c106-4102-bd11-c0e9617a0119",
        "bookId": "67312aeb-7f3d-426e-b084-d472214da01f",
        "bookTitle": "深入理解 AI Agent：设计原理与工程实践",
        "activeSeconds": 32,
        "generatedNextAction": null,
        "entryId": null,
        "endedAt": null,
        "createdAt": "2026-10-06T14:55:35.624Z",
        "updatedAt": "2026-10-06T14:56:10.888Z",
        "draft": {},
        "planId": null
      },
      {
        "id": "4e800b73-9df1-4830-a1c0-e7444dbfef14",
        "bookId": null,
        "bookTitle": "从零读懂人工智能",
        "activeSeconds": 66,
        "generatedNextAction": null,
        "entryId": null,
        "endedAt": null,
        "createdAt": "2026-10-09T10:38:28.706Z",
        "updatedAt": "2026-10-09T11:19:29.622Z",
        "draft": {
          "question": "",
          "nextAction": "继续阅读《从零读懂人工智能》",
          "reflection": ""
        },
        "planId": null
      },
      {
        "id": "5e6f766b-517e-4057-801b-7903e17b5bbb",
        "bookId": "63b7224e-77ca-4c04-aa83-2f49397d485f",
        "bookTitle": "从零读懂人工智能",
        "activeSeconds": 45,
        "generatedNextAction": null,
        "entryId": null,
        "endedAt": null,
        "createdAt": "2026-10-10T06:46:06.059Z",
        "updatedAt": "2026-10-10T06:52:56.314Z",
        "draft": {
          "question": "",
          "nextAction": "继续阅读《从零读懂人工智能》",
          "reflection": ""
        },
        "planId": null
      },
      {
        "id": "a8120af1-09cd-45a1-bf33-5bd7cbcec311",
        "bookId": "63b7224e-77ca-4c04-aa83-2f49397d485f",
        "bookTitle": "从零读懂人工智能",
        "activeSeconds": 52,
        "generatedNextAction": null,
        "entryId": null,
        "endedAt": null,
        "createdAt": "2026-10-09T11:19:50.287Z",
        "updatedAt": "2026-10-09T11:20:42.938Z",
        "draft": {
          "question": "",
          "nextAction": "继续阅读《从零读懂人工智能》",
          "reflection": ""
        },
        "planId": null
      },
      {
        "id": "223f8059-dd45-469f-9af4-eb6949b21012",
        "bookId": "67312aeb-7f3d-426e-b084-d472214da01f",
        "bookTitle": "深入理解 AI Agent：设计原理与工程实践",
        "activeSeconds": 295,
        "generatedNextAction": null,
        "entryId": null,
        "endedAt": null,
        "createdAt": "2026-10-10T06:39:00.460Z",
        "updatedAt": "2026-10-10T06:56:34.213Z",
        "draft": {
          "question": "",
          "nextAction": "继续阅读《深入理解 AI Agent：设计原理与工程实践》",
          "reflection": ""
        },
        "planId": null
      },
      {
        "id": "e8aadc61-60bb-4e1e-9824-f638a0809d06",
        "bookId": "67312aeb-7f3d-426e-b084-d472214da01f",
        "bookTitle": "深入理解 AI Agent：设计原理与工程实践",
        "activeSeconds": 11,
        "generatedNextAction": null,
        "entryId": null,
        "endedAt": null,
        "createdAt": "2026-10-26T14:21:33.147Z",
        "updatedAt": "2026-10-26T14:21:44.947Z",
        "draft": {
          "question": "",
          "nextAction": "继续阅读《深入理解 AI Agent：设计原理与工程实践》",
          "reflection": ""
        },
        "planId": null
      }
    ],
    "sources": [
      {
        "id": "b4440c77-3a48-4c3b-92a4-baff5fdfb40a",
        "name": "Z-Library",
        "url": "https://zh.z-library.sk/",
        "createdAt": "2026-10-06T11:28:27.201Z",
        "updatedAt": "2026-10-06T11:28:27.201Z"
      }
    ],
    "originalFiles": "Download each original file from the reading library. PostgreSQL backups include all original files and chapters."
  }
}