面向 HKUST COMP2211(Exploring Artificial Intelligence) 的交互式学习网站,用可视化 + 即时反馈帮助学生理解课程中的抽象算法。模块内容以课程讲义 + Lab + 历年试卷三类官方材料为权威依据(见第 3、4 节),目标是作为 moyunxiang/COMP2211 学习笔记的交互式补充,并以 MIT 协议开源供学生学习参考。
- ✅ 多页静态站(2026-10-08 起,原为单文件 SPA):React 19 + Vite 7 + Tailwind 4,每个模块一个 URL,首页为按讲次的课程地图。
- ✅ 全量 TypeScript(TSX):核心代码已从 JSX 迁移到严格 TSX,
tsc --noEmit纳入build与typecheck。 - ✅ 模块化结构:
App.tsx瘦身为 ~209 行外壳(路由 + 布局);六大模块独立于src/modules/,通用组件在src/components/,教学数据集中于src/data/constants.ts,类型在src/types.ts。 - ✅ 三语 i18n(English / 简体 / 繁體),自动检测浏览器语言并记住选择。
- ✅ 真实 URL(可分享模块 / 笔记链接,旧 Hash 链接自动跳转)、移动端适配、基础无障碍。
- ✅ 10 个考点实验页(三语,带「自测」填表),覆盖历年试卷反复出现的手算题型。
- ✅ 17 集讲解视频(/watch/),第 1–11 讲每讲至少一集;另有概念自测(/drill/)、公式表(/formulas/)、考点地图(/papers/)。
- ✅ 资料包的库实验台(2026-10-08):matplotlib(新笔记)、PyTorch、Keras、TensorFlow、pandas 笔记旁各有一个可编辑、逐步可视化、可全屏的 Python 沙盒,共 77 个示例(见 design 6.10)。
- ✅ 六大可视化模块(见下方覆盖表)。
- ✅ CI 执行构建校验;生产部署改为
ssh pastpaper+ OpenResty,目标域名knowcs.online,不再自动发布 PinMe。 - ✅ 文档体系:design / log / plan 三件套 + 根目录
CLAUDE.md索引。
依据
../lecture/(讲义)与../labs/(Lab)——两者按 L1–L11 一一对应。优先补齐尚未覆盖的内容。
| 讲义 / Lab | 主题 | 对应模块 | 状态 |
|---|---|---|---|
| L1 / Lab1 | NumPy & 图像基础(array/切片/broadcast/灰度) | NumpyModule | ✅ 已覆盖 |
| L2 / Lab2 | 朴素贝叶斯 | BayesBasics + NaiveBayes + Bayes & base rate + Gaussian NB | ✅ 已覆盖(含 Gaussian 似然) |
| L3 / Lab3 | KNN | KnnModule | ✅ 已覆盖 |
| L4 / Lab4 | K-Means 聚类 | KMeansModule | ✅ 已上线(2026-06-07) |
| L5 / Lab5 | 人工神经元 / 感知机 | Perceptron learning table | ✅ 已覆盖(2026-10) |
| L6 / Lab6 | 多层感知机 / 反向传播 | BackpropModule | ✅ 已覆盖(2026-10 重写为可训练的数值版) |
| L7 / Lab7 | 图像处理 / 卷积 / 仿射变换 / 数据增强 | Kernel + Convolution + Otsu + Affine | ✅ 已覆盖(2026-10-08 补仿射与数据增强) |
| L8 / Lab8 | 卷积神经网络(池化/特征图) | Convolution + CNN shapes | ✅ 已覆盖(形状 / 参数 / 填充) |
| L9 / Lab9 | PyTorch(张量/自动求导/训练循环) | PyTorch 练习页 + CNN 形状页的 PyTorch 代码 | ✅ 已覆盖(2026-10-08) |
| L10 / Lab10 | Minimax + Alpha-Beta 剪枝 | AlphaBetaModule | ✅ 已上线(2026-06-07) |
| L11 / Lab11 | 复习 / 收尾 | —(非可视化) | n/a |
来源:
../Pastpaper/(历年期中/期末/Sample + 解答)、../labs/pa/(PA1/PA2)、Pastpaper/COMP2211midterm/HW/review.md(期中复习大纲)。模块的「学长寄语 / 易错点」应直接取材于此,而非凭空编写。
高频考点信号(据 review.md):期中重点考 Lab2–6 的公式与算法步骤,尤其要求手推 Naïve Bayes 公式与 K-Means 迭代过程——这正是交互可视化最能帮忙的地方,据此抬高 K-Means 与贝叶斯模块的内容优先级。
现有模块需补强的考点:
- 朴素贝叶斯:补数值特征的 Gaussian 似然(目前仅 categorical + Laplace);考点强调「分类变量 vs 数值变量处理方式不同」。
- KNN:讲清向量化距离
‖x−y‖² = ‖x‖² + ‖y‖² − 2x·y与标准化必要性。 - 卷积(Kernel):Lab7 还考数据增强(crop / flip / rotate / translate / mixup),当前模块仅卷积/边缘检测。
- 反向传播(Backprop):Lab5 的单神经元/感知机(
sign(w·x+b)、错误驱动更新δ=y−ŷ、线性可分、[w,b]合并)是独立考点,与 MLP 区分。
反复出现的跨模块概念(来自 PA1/PA2,暂无模块):归一化对比(Min-Max vs Z-score)、Data Leakage(统计量只能在训练集上算)、Decision Stump(单特征单阈值二分类)。
| 事项 | 状态 | 说明 |
|---|---|---|
| KnowCS Lab:多页布局 + 10 个新模块(2026-10-07) | 🟡 待选首页 | /lab/ 已上线 10 个模块页与 3 个首页草图(A 课程地图 / B 考点雷达 / C 学习路径)。用户选定首页后:主站改为多页构建、迁入现有 8 个模块、补三语 |
| Alpha-Beta 剪枝模块(L10) | ✅ 已集成上线(2026-06-07) | module/alphabeta.html / alphabeta_aligned.html 为独立 HTML 沙盒(DFS + α/β 剪枝逐步追踪,含 Tic-Tac-Toe 式博弈树)。下一步:移植为 src/modules/AlphaBetaModule.tsx,接入 Tab 路由与 i18n,按第 8 节落地步骤执行 |
优先级:P0 最高。
| 优先级 | 事项 | 说明 |
|---|---|---|
| Alpha-Beta 模块集成 | 已完成:src/modules/AlphaBetaModule.tsx + lib/alphabeta.ts + 6 测试,三语 i18n |
|
| P0 | 引入 Vitest + 纯函数单测 | 模块/数据已拆分到位,为距离、卷积、贝叶斯等派生计算抽出纯函数并补单测,作为后续重构与改数据的安全网 |
| 新增 K-Means 模块(L4) | 已完成:交互选 K、EM 迭代质心动画、Elbow Method、Z-score 标准化(KMeansModule + lib/kmeans.ts + 9 测试) |
|
| P1 | 贝叶斯模块补 Gaussian 似然 | 让 NaiveBayes 支持数值特征,覆盖 Lab2「分类 vs 数值」考点 |
| P1 | i18n 键一致性校验 | 加脚本校验 en.json / zh.json 键对齐,纳入 lint / CI,防漏翻 |
| 文档同步 | 已完成:design.md 按现状重写(2026-10-05) |
|
| P2 | 单神经元 / 感知机模块(L5) | 错误驱动更新动画 + 线性可分判定,补 Lab5 考点(与 MLP 区分) |
| P2 | 卷积模块扩展(L7 数据增强 / L8 CNN) | 在 KernelModule 上补数据增强演示与池化/多层特征图 |
| KNN 曲线真实化 | 已完成:留一法误差曲线 looErrorCurve(2026-10-05) |
按 COMP2211 讲义/Lab 缺口排序,立项后从中挑选。(K-Means、Gaussian 似然、感知机、卷积扩展、Alpha-Beta 已分别进入第 5/6 节。)
- L9 PyTorch:张量 / 自动求导计算图与梯度回传可视化 —— 已由 PyTorch 练习页(
/pytorch/)与 PyTorch 实验台完成(2026-10-08) - KNN 距离函数:KNN 页目前只有欧氏距离;期中考过 Hamming(22F)、余弦(22F、23S)、曼哈顿(24S,13 分),可在
lib/knn.ts加距离选项与逐行距离表 - 实验台后续:Keras BatchNormalization、
agg([...])多重聚合、把讲解视频 / 练习页里的代码块也接到对应实验台 - 归一化对比小工具:Min-Max vs Z-score 的直观对比 + Data Leakage 提示(贯穿 KNN / K-Means / PA1)
- Decision Stump:单特征单阈值分类的决策直觉(PA1 天体分类)
- L11 / 复习:知识点(有监督 vs 无监督)总览与自测式回顾
注:旧版 backlog 中的「决策树 / 逻辑回归 / PCA / 混淆矩阵」不在 COMP2211 讲义/Lab 范围内,已移除以保持与课程对齐;如未来大纲调整再行评估。
摘自 design.md 第 11 节,立项后照此执行:
- 在
src/modules/新建XxxModule.tsx,状态自管理、派生值用useMemo;教学数据放入src/data/constants.ts,相关类型补到src/types.ts。 - 在
App.tsx的tabs数组追加{ id, label, icon, subtitle }。 - 在内容区
AnimatePresence内增加activeTab === 'xxx'分支(配SectionTitle+ 模块)。 - 在
en.json/zh.json同步补齐文案键。 - 用
SeniorAdvice收尾,易错点取材于../Pastpaper与 review.md(见第 4 节),给出真实考点提示。 - 提交前确保
npm run lint与npm run typecheck均通过。
- 内容对齐讲义/Lab:按覆盖表持续补齐缺口(L4 → L5 → L7/L8 → L9),目标是全部可视化型讲义都有交互模块。
- 考点驱动:以
../Pastpaper历年题型反向打磨模块——优先把「手推型」考点(NB 公式、K-Means 迭代、Minimax 树)做成可单步演练的交互。 - 回流开源:合并进
moyunxiang/COMP2211作为交互补充,MIT 开源。 - 工程化:Vitest 落地后,评估补充组件级测试与 CI 测试门禁。
- 可维护性:教学数据已集中于
src/data/constants.ts,可进一步评估 JSON 化与数据/组件解耦,便于非开发者贡献题目/数据集。
加入numpy编程模块。现在太少了,你看看pastpaper里面是怎么考python的,你总结一下。
现在那个链式法则太普通了,给我搞个像考试题型的
Naive Bayese优化你直接找一道相关的考题可视化吧
现在这个反向传播程序也不对,太简单,把代码也给展示出来
加入pytorch语法cheatsheet一页,然后对于一些重要的部分加一些可视化
卷积模块 cnn你要展示一下。
完成或调整计划时,请同步更新本文件,并在 log.md 记录对应进展。