chuma-beep/mathua

学习资源

一个自适应数学练习引擎,以先修概念为硬门槛,并要求准确率和速度同时达标才算掌握。

352
34
Go
MIT
上线 6 个月

如果你想找一个能自己部署、按掌握程度控制进度的数学练习引擎,而不是又一个题库生成器,Mathua 值得看一看。它是单个 Go 二进制加 React 前端,真正有意思的是调度器和概念图,而不是一个打磨成熟的消费级学习应用。

解决什么问题

学习者想练数学,并且想真正知道下一步该学什么。常见做法是按感觉挑一个专题,做一组固定练习,然后不管前面的技能是否扎实就往前走。Mathua 把“挑什么”这一步交给了系统:你做题,答案按每个概念的门槛判定,调度器再根据一张含 1,250 个概念的有向无环图决定下一题。结果是,由系统而不是你的猜测来判断你什么时候算掌握了异分母分数加法、可以进入带分数加法。

有什么不同

这个项目有两个关键设计。第一,概念图是硬门槛:先修概念没掌握,当前概念就不会出现。掌握意味着连续答对,并且平均答题时间低于该概念设定的上限,所以答对但很慢也算掌握不牢。第二,进度会衰减。已掌握的概念 14 天未复习就进入 DECAYING 状态,调度器把它当作紧急项优先安排;复习间隔用 SM-2 并按每个专题测出的学习速度缩放,穿插在普通练习里。

代价是这套设计既帮助学习者,也约束学习者。即使你已经会了,也不能随便跳级,除非诊断把你的起点前移;速度门槛对准确率不错但节奏慢的人可能造成挫败。调度器的权重(距上次出现的时间、掌握度、薄弱度、新复习配比、子领域交错)在 README 里写得很具体,行为可以核对,但它们是固定默认值,文档并没有把逐学习者可调作为卖点。

谁值得试

适合愿意自己托管、为自己或小团队长期运行一个数学练习服务,并且认同“先修概念强制执行”而不是依赖手写课程的人。也适合习惯用 Go 构建、会管数据库、想看看自适应调度器怎么搭或者想扩展内容的人。反过来,如果你希望装完五分钟就能用、学习者需要灵活的节奏而不想被速度门槛卡住,或者你期待一套完整的学校课程,那就不太合适:内容表列了 21 个领域的 1,250 个概念,但 README 没有展示题目形式,也没有说明内容质量如何保证。

使用条件与边界

要从源码构建,需要 Go 1.26+ 和前端,二进制默认监听 8080 端口。SQLite 是本地或单用户的零配置默认项,Postgres(通过 pgx/v5)支持多用户。配置放在 .env(JWT 密钥、允许的 CORS 来源),第一次角色提升必须在持有数据库的机器上执行 ./bin/mathua admin promote,之后的管理员从 /admin/contributors 添加。具体命令见项目说明。

长期成本在内容和运维,而不在安装:数据库、用户模型以及 1,250 个概念分片的可靠性都由你负责。README 详细描述了调度器和概念图,但没有写题目的编写流程和校验方法,想扩展内容的人得去读代码。21 个领域是否覆盖得一样深入,文档也没有展示;表里有名字不等于题目质量有保证。

HotRepo 点评

HotRepo 首次记录这个项目是 2026-10-24,当时 352 星、当天 +40,并在当日 Trending 榜上出现过一次。只有一个记录日期,不构成序列,无法判断热度能否持续或走向如何;仓库创建于 2026-04-28,本身还很年轻。采纳前值得确认的是项目里链接的架构文档,以及判分和内容模型是否适合你打算教学或学习的方式。

本文由 AI 根据项目 README 生成,更新于 2026年10月25日,以项目官方文档为准。