DC娱乐网

从小学到高中,12 年教材被做成了一张能追溯知识断层的地图

高一函数听不懂,病根可能藏在两年前那节没听懂的旧课里。一个上线不到一个月就冲上GitHub趋势榜的开源项目,把12年教材拆成3383个知识点和4873条先修边,用有向无环图往回追,直到揪出最底层的薄弱环节。

很多人在辅导孩子或者自己上学时,都经历过一种深深的无力感:高一的「函数概念」怎么都听不懂,初三的「配方法」一做就错。传统的应对办法通常是买本练习册,对着不会的章节反复刷题,结果往往收效甚微。

原因其实很残酷。卡住学生的往往并非眼前的这道新题,真正的病根可能藏在两年前某节没听懂的旧课里。

最近在GitHub上,一个名为cn-math-taxonomy的开源项目给出了非常惊艳的工程解法。这个仓库于10月18日刚刚创建,上线还不到一个月,Star数量就已经突破了7600个,连续多日冲上GitHub趋势榜。

项目地址

https://github.com/xiaoyang111222/cn-math-taxonomy

GitHub仓库首页,10月18日创建

01把12年课本,拆解成一张「代码依赖图」

项目介绍页:一张代码依赖图串起12年课本

如果用一句话来概括,cn-math-taxonomy是一套覆盖中国小学、初中、高中共10门学科的开源课程知识图谱与自适应前置诊断系统。

在工程设计上,它借鉴了海外知名教育科技项目Marbleos-taxonomy的「知识点节点(Topics)+依赖关系边(Dependencies)」双层数据结构。熟悉编程的朋友可以把这套逻辑理解为管理软件包的npm:你想运行一个高级模块,系统必须先检查它的底层依赖包有没有装好。

作者将中小学教材的章节拆解为颗粒度极细的微知识点,再用有向无环图(DAG)把它们之间的先修关系串联起来,并且将依赖强度细分为两类:

硬先修:

必须掌握的前置门槛,前面的概念不会,后面的内容根本无法推进。例如「规则动词过去式」之于「现在完成时」。

软先修:

掌握后能提供类比、简化或背景支撑的知识点,顺着教学顺序学下来会更轻松。

当学生在某个高年级知识点频繁答错时,系统会停止在原地机械出题,转而顺着「先修边」一路向低年级回溯。比如从高中必修的「函数概念」回溯到初中的「二次函数」,或者从初中的「配方法」一路穿透回溯到小学的算术基础,直到揪出最底层的薄弱根因,最后自动生成一份按年级从低到高排列的修补路径。

划重点

知识点拆到微粒度之后用有向无环图连起来,硬先修画实线、软先修画虚线。诊断时沿先修边往低年级查,最后按年级从低到高排一份修补清单。

02十大学科盘点与新课标考据

十大学科与新课标对齐

虽然仓库名叫math(最早确实从初中数学起步),但在短短二十多天里,项目已经迅速扩展到了10门学科,累计沉淀了3383个知识点、4873条先修边和13679道诊断题(还在持续更新)。

更难得的是它在教材对齐上的考据深度。项目紧跟教育部《义务教育课程标准(2022年版/2025年日常修订版)》以及《普通高中课程标准(2017年版2020年/2025年修订)》,连2024至2026年刚投入使用的新版教材目录变动(比如小学语文一年级改为「先识字再学拼音」、初中数学将反比例函数移入九上)都做了精细的同步。

为了防止不同学科缠绕成一团乱麻,各学科在底层独立成图,诊断回溯严格限制在本学科内部。不过,物理和科学这两门重度依赖数学工具的学科,在节点中专门设计了mathLinks字段,用来显式关联「正比例函数」「科学记数法」「条形统计图」等数学前置节点,点击即可一键跨图跳转。

各科核心家底(数据持续更新):

划重点

十门学科各自成图,回溯不跨学科;物理和科学用mathLinks单独挂到数学节点上,点一下跳过去。表格里的数字每天都在变,用之前回仓库核对一次。

03三大核心功能与交互拆解

功能01局部知识图谱浏览(explore/)

局部知识图谱浏览页

如果一次性把几千个节点全画在屏幕上,整张图会缩成一团无法辨认的毛线球。为此,图谱浏览页采用了「三栏布局+局部子图按需渲染」的克制设计:

左侧筛选与检索:支持切换学科、学段、年级册次与课程领域,按章节目录折叠展示,也支持直接搜索关键词。

中间交互画布:基于Cytoscape与dagre引擎,默认只渲染当前选中知识点的「向上2层先修祖先」与「向下1层后继节点」(可手动切换为1/2/3层或展开全部祖先)。小学、初中、高中节点用不同颜色区分,硬先修画实线,软先修画虚线,点击任意邻居节点就能平滑切换视觉焦点。

右侧知识详情:集中展示该知识点的掌握标准、对应的教育部课标条文、折叠了答案的样题,以及完整的先修与后继列表。底部放了一个醒目的「诊断这个知识点」按钮,点击即可进入实测。

图谱浏览页:左侧筛选与中间局部子图

节点详情与红框标注的先修关系

手绘箭头标出的回溯路径

功能02自适应前置回溯诊断(diagnose/)

自适应前置回溯诊断

这是整个项目最核心的应用层(纯函数引擎位于diagnose/engine.js)。你可以挑单个知识点精准排雷,也能按整章、整册甚至整年级发起大范围筛查。

出题与回溯算法的分寸:

连续确认与剪枝:针对当前考察点出题,用户连续答对满额题数(默认3题,可在开始页调整为2/3/5题)即判定为「掌握」,系统会直接剪枝,跳过该节点底下的所有先修祖先,节省答题时间(整册筛查模式下仅沿硬先修推断掌握,防止答对一两题就跳过整本书)。

容错复测机制:如果中途答错或点击「不会」,系统不会武断地直接定性,它会再出一道同难度或更基础的确认题。假如确认题答对了,说明刚才大概率是粗心或掌握不牢,系统会将该点标记为「不稳」(Shaky),放进学习清单但不再往下深究;只有当确认题也答错时,才正式判定为「薄弱」(Weak),随即将它的直接先修节点(硬先修优先)压入待测队列,一路顺藤摸瓜追查到底层根因。

可视化报告与防隐私分享图:诊断结束后,结果页会在路径图上用红框圈出最底层的「薄弱根因」,同时按从低年级到高年级的拓扑顺序拉出一份修补清单。此外,前端还能用Canvas直接在本地绘制一张1080×1920的竖版分享图,包含统计概况与薄弱点,不带任何孩子姓名等隐私信息,也支持直接导出JSON或打印成纸质报告。

诊断说明与题库复核记录

答题过程中的确认题

回溯路径与课标条文对照

诊断结果页:薄弱点标记与一键再测

功能03本机盲区账本与多孩档案(children/)

每次诊断测出来的「薄弱」与「不稳」知识点,都会自动记入浏览器本地的localStorage错题账本中。家里如果有两个以上孩子,家长可以在children/模块里创建最多8个本地档案,分别记录各自的年级和历史诊断轨迹,随时针对薄弱章节发起「一键再测」。

所有答题数据完全留在你自己的设备里,支持一键导出JSON备份文件跨设备恢复,不设账号体系,也不向任何云端服务器上传半个字节。

本机错题账本

多孩档案与历史诊断轨迹

划重点

答对满额题数就剪枝跳过整条先修链;答错会先补一道确认题,两道都错才判为薄弱。答题数据只写进浏览器本地,导出JSON才能换设备。

04零门槛体验与极简架构

作为一款极客范儿十足的作品,cn-math-taxonomy在工程架构上做到了极致的克制:没有后端、没有数据库、不需要安装任何npm依赖,甚至连Cytoscape、dagre、qrcode这些前端图形库都直接打包在了仓库的assets/vendor/目录下,不向外部CDN发任何请求。

方式一在线直接使用

打开浏览器访问官方站点math.pansgo.com即可体验(作者也配置了GitHubPages备份站)。因为内置了完整的PWA离线缓存机制,你在手机或电脑上打开过一次后,直接把它「添加到主屏幕/桌面」,哪怕断网也能照常浏览图谱和做题。

备份站地址

https://xiaoyang111222.github.io/cn-math-taxonomy/

官方站点首页与PWA离线缓存

方式二两行命令本地运行

如果你想在本地研究它的数据结构或修改题库,克隆仓库后只需启动一个最基础的静态服务器,随后在浏览器访问http://localhost:8000/即可看到完整页面。

本地运行

gitclonehttps://github.com/xiaoyang111222/cn-math-taxonomy.git

cdcn-math-taxonomy

python3-mhttp.server8000#mac或linux

py-mhttp.server8000#windows

本地静态服务器打开后的页面

划重点

整个项目没有后端、没有账号、不发外部CDN请求,图形库一起放进仓库的vendor目录,离线打开照样做题。

05难得的「数据诚实度」

数据诚实与开源共享

看完全部文档,这个项目最打动人的地方,其实是作者在README里展现出的近乎严苛的「数据诚实度」。在如今遍地鼓吹「AI颠覆教育」的浮躁环境里,作者用大段篇幅坦诚交底了当前版本的真实边界:

定位为「诊断线索」而非正式测评:仓库里的知识点拆分粒度、先修边的强弱划分以及题库主要由AI生成。尽管作者写了专门的Python校验脚本(verify_questions.py受限表达式求值核验,并对初中数学等题库做了多轮独立盲解复核,将计算错误清零),但它尚未经过大规模一线教师审定,也没有经过真实学生作答数据的心理测量学(如IRT项目反应理论)区分度校准。

明确标注每一处「待核」:凡是国家中小学智慧教育平台尚未公开新版目录的册次(例如预计2027春才投入使用的数学九下,以及部分高年级下册教材),或者尚未逐字比对教育部纸质原件的课标转述(标注为verbatim:false),作者都在文档和代码里逐一列出了参考来源与「非官方、待核」字样,绝不鱼目混珠。

非商用开源协议(CCBY-NC4.0):项目的图谱数据、题库与代码均采用CCBY-NC4.0协议开放。个人学习、一线教师教学、学术研究均可免费使用、修改与再分发(需署名);但任何商业用途(如嵌入付费App、教培机构收费服务或售卖题库)必须联系作者获取单独的商业授权。

划重点

README里逐项列出哪些目录还没拿到官方原件、哪些课标转述没做逐字比对,题库由AI生成这件事也写在前面。商用要单独找作者拿授权。

写在最后

如果给现阶段的cn-math-taxonomy打个分,它的工程完成度可以给到90分,数据诚实度高达95分,教育教研成熟度则在70分左右。不同人群可以这样最大化利用它的价值: