Giáo viên toán cấp 2 đều gặp cảnh này: học sinh sai một bài phương trình bậc 2, nhưng gốc rễ nằm ở chỗ em đó chưa nắm hằng đẳng thức từ lớp 8. Dạy lại bài bậc 2 thì vô ích. Repo xiaoyang111222/cn-math-taxonomy cố gắng mô hình hóa đúng cái quan hệ tiên quyết đó thành dữ liệu máy đọc được, cho toàn bộ chương trình toán lớp 7 đến lớp 9 của Trung Quốc.
Repo này làm gì, giải quyết vấn đề gì
Nó là một knowledge graph dạng DAG (đồ thị có hướng không chu trình) gồm 333 knowledge point, trong đó 315 là node chính thức và 18 node “tiểu học” đóng vai trò gốc. Giữa các node có 616 cạnh tiên quyết. Mỗi cạnh có trường strength nhận giá trị hard hoặc soft, kèm một câu lý do bằng tiếng Trung. Nghĩa là đồ thị nói được hai kiểu quan hệ: “không biết B thì gần như không học được A” và “biết B thì học A dễ hơn nhiều”.
Cái hay nằm ở phần chẩn đoán. Khi học sinh trả lời sai một câu hỏi gắn với một node, công cụ sẽ đi ngược theo các cạnh hard để tìm node gốc bị hổng, rồi dựng lại một lộ trình học theo thứ tự topo. README mô tả ngắn gọn: “答错会沿先修边回溯找根因, 并给出拓扑学习路径”. Cách này suy luận trực tiếp trên cấu trúc đồ thị, khác với adaptive learning kiểu đoán xác suất. Thuật toán đơn giản hơn nhưng dễ debug và dễ giải thích cho phụ huynh.
Dữ liệu đi kèm cũng không nhỏ: 1407 câu hỏi trong data/questions.json, tức mỗi knowledge point chính thức có 4 đến 5 câu. Có thêm 157 entry nội dung yêu cầu của chương trình giáo dục 2022, và 383 ánh xạ từ knowledge point sang các entry đó. Cấu trúc file tham khảo từ Marble os-taxonomy, cụ thể là file topics.json và dependencies.json.
Vì sao repo này đang được chú ý
634 sao sau đúng một ngày tạo (2026-10-18, cập nhật 2026-10-19). Con số đó nói lên nhu cầu thật của thị trường edtech: ai làm sản phẩm học tập cũng cần một bộ dữ liệu chương trình học có cấu trúc, và hầu như chẳng ai muốn ngồi gõ tay 333 node rồi tự vẽ 616 cạnh tiên quyết.
Điểm khác biệt lớn nhất so với các bộ taxonomy giáo dục thường thấy: nó bám vào một bản chương trình cụ thể có số hiệu (chuẩn 2022) và một bộ sách cụ thể (Nhân Giáo bản 2024), thay vì nói chung chung “toán cấp 2”. Ngay cả chuyện sách giáo khoa tái bản cũng được xử lý: tác giả ghi rõ chương “反比例函数” chuyển lên lớp 9 học kỳ 1, “概率” đổi tên thành “随机事件的概率” và dời xuống học kỳ 2 lớp 9, thêm chủ đề “数据的四分位数” và “综合与实践”. Đây là mức chi tiết mà người làm nội dung giáo dục Việt Nam nhìn vào sẽ thấy quen, vì chúng ta cũng vừa đổi chương trình 2018.
Cài đặt và dùng thử nhanh
Không có build step, không có dependency. Toàn bộ là static file. Cách nhanh nhất là mở thẳng trang demo:
https://math.pansgo.com/
Bản backup trên GitHub Pages:
https://xiaoyang111222.github.io/cn-math-taxonomy/
Nếu muốn chạy local, clone rồi mở index.html bằng trình duyệt là xong, README ghi rõ “单文件浏览页面(无外部依赖)”. Phần kiểm tra dữ liệu thì cần Python 3, chỉ dùng thư viện chuẩn:
python3 scripts/validate.py
Còn đây là phần chẩn đoán, có test bằng Node không cần cài gì thêm:
node tests/test_engine.js
Muốn nhúng engine chẩn đoán vào project khác thì đọc diagnose/engine.js và diagnose/app.js. Cấu trúc node trong topics.json khá rõ ràng: id, name, domain (một trong bốn lĩnh vực 数与代数 / 图形与几何 / 统计与概率 / 综合与实践), grade (7, 8, 9), semester (“上” hoặc “下”), chapter, type, description, mastery_criteria (mảng 2 đến 3 chuỗi), diagnostic_question gồm cặp question/answer, và standards để trỏ sang entry chương trình.
Ai nên dùng, dùng vào việc gì
Rõ nhất là nhóm làm edtech. Nếu bạn đang xây một app luyện tập thích ứng, phần khó nhất là logic chọn câu tiếp theo chứ không phải giao diện. Bộ dữ liệu này cho bạn sẵn cấu trúc để làm việc đó, ít nhất cho môn toán THCS theo chương trình Trung Quốc.
Nhóm thứ hai là giáo viên hoặc người làm nội dung muốn hình dung bản đồ kiến thức. Trang index.html cho phép duyệt đồ thị, xem node nào phụ thuộc node nào. Với người soạn đề cương ôn tập, đây là công cụ trực quan hơn nhiều so với đọc mục lục sách giáo khoa.
Nhóm thứ ba là dev muốn học cách tổ chức một knowledge graph có metadata giáo dục. Cách tác giả tách topics.json và dependencies.json, cách làm transitive reduction (loại 90 cạnh dư thừa), cách map sang chuẩn chương trình, đều là pattern đáng tham khảo kể cả khi bạn không làm về toán.
Còn nếu bạn muốn dùng trực tiếp cho học sinh Việt Nam thì không. Chương trình khác, sách giáo khoa khác, thứ tự chương khác. Bạn sẽ phải map lại toàn bộ, và lúc đó công sức không nhỏ hơn tự xây từ đầu nhiều.
Ưu điểm và những chỗ cần cảnh giác
Ưu điểm thực sự:
- Minh bạch đến mức hiếm thấy. Tác giả ghi rõ nguồn từng phần dữ liệu, kể cả chỗ không tìm được nguồn chính thức.
- Có script kiểm tra (
scripts/validate.py) và một báo cáo xác minh đáp án riêng (data/verification_report.json), cùng một lượt “second pass” độc lập ghi lại trongdata/second_pass_log.json. - Cấu trúc dữ liệu gọn, dễ parse, không phụ thuộc framework.
- Có test cho engine chẩn đoán, chạy được bằng Node thuần.
Cần cảnh giác:
- License không rõ. README có badge CC BY-NC 4.0 nhưng phần thông tin repo ghi “không rõ”. Đây là điểm chặn nếu bạn định dùng thương mại. Phải hỏi tác giả trước.
- Tác giả tự thừa nhận là bản nháp do AI sinh, chưa qua giáo viên nào duyệt. Nguyên văn: “这是 AI 生成的初稿, 未经任何教师审核”. Cụ thể là cách chia nhỏ knowledge point, tiêu chí mastery, đáp án câu chẩn đoán, và đặc biệt là các cạnh tiên quyết (cái nào hard, cái nào soft, thậm chí cạnh đó có nên tồn tại không) đều cần giáo viên toán cấp 2 rà lại. Đừng đem dùng cho học sinh thật mà bỏ qua bước này.
- Chương lớp 9 học kỳ 2 chưa có nguồn chính thức. README dành hẳn một mục dài ghi rõ: không tìm được trang mục lục chính thức từ nhà xuất bản cho bản 2024, phải suy luận từ nguồn thứ ba, và một nguồn (dzskb.com) bị loại vì tự mâu thuẫn. Các tiêu đề chương 31 đến 33 không có số tiểu mục.
- Đáp án câu hỏi chưa được duyệt từng câu. Tác giả nói có kiểm tra bằng tính nhẩm và có lượt xác minh thứ hai, nhưng không phải 100% thủ công.
Một góc nhìn khác
Cái repo này đáng giá không nằm ở chỗ nó hoàn chỉnh. Nó chưa hoàn chỉnh và tác giả nói thẳng như vậy. Điều đáng học là cách tác giả xử lý sự không chắc chắn: chỗ nào có nguồn chính thức thì ghi nguồn, chỗ nào phải suy luận thì đánh dấu rõ “非官方、待核”, chỗ nào AI sinh thì khai báo ngay trên đầu README. Trong một thị trường edtech đầy dữ liệu không rõ nguồn gốc, cách làm này đáng để copy.
Với 634 sao trong ngày đầu, khả năng cao sẽ có người fork và map sang chương trình khác. Nếu bạn đang tìm một bộ khung để bắt đầu, cứ clone về xem cấu trúc topics.json trước đã.
