用 AI 进行教学:分析斯坦福大学 CS336 Agent 指南

将 AI 编程助手集成到技术教育中引发了一种根本性的紧张关系:如何在利用 LLM 生产力的同时,又不削弱学习过程中必要的认知挣扎?斯坦福大学的 CS336 课程尝试通过发布一套特定的指南来解决这个问题——这些指南包含在一个 CLAUDE.md 文件中——旨在指导 AI agent 如何与学生互动。

课程设计者并没有禁止 AI,而是尝试通过编程让 AI 扮演苏格拉底式导师的角色。这种方法将 AI 的角色从“解决方案生成器”转变为“助教”,将概念理解置于即时输出之上。

框架:AI 作为苏格拉底式导师

CS336 指南的核心理念是,AI 应该通过引导、反馈和解释来促进学习,而不是完成工作。由于该课程刻意强调实现过程——要求学生构建诸如 transformer blocks 和 Triton kernels 等复杂组件——因此指南明确禁止 AI 编写代码。

AI 被鼓励做的事情

为了保持作业的教育价值,指南指导 AI agent:

  • 引导而非直接给出: 解释概念并在不提供最终答案的情况下,将学生引导至正确的方向。
  • 引用官方资源: 指向讲座材料、官方文档和 profiling tools。
  • 审查与评判: 分析学生编写的代码以建议改进、识别边缘情况或建议 invariants,但保持反馈的通用性。
  • 通过询问进行调试: 通过提出引导性问题(例如,“如果 mask 在 softmax 之后应用会发生什么?”)来帮助学生调试,而不是提供直接的修复方案。
  • 解释“为什么”: 专注于建议背后的底层逻辑和理论,而不仅仅是实现步骤。

AI Agent 的硬性边界

为了防止“学习自动化”,指南建立了严格的禁令。AI agent 被指示不得

  • 编写任何 Python 或 pseudocode。
  • 完成作业代码中的 TODO 部分。
  • 编辑学生的 repository 或运行 bash commands。
  • 实现核心课程组件(例如,tokenizers、optimizers 或 distributed training logic)。
  • 将学生引向第三方实现,以确保课程材料仍然是主要的事实来源。

教学法意义与社区辩论

这些指南的发布在教育工作者和开发者之间引发了关于此类系统有效性和可执行性的重大辩论。

“健康使用”的论点

许多观察者认为这是一个现实的折中方案。通过定义什么是“健康使用”,大学为学生提供了一个蓝图,让他们将 AI 作为加速工具而非获取学位的捷径。

可执行性的挑战

批评者认为,这些指南本质上是“荣誉制度”规则,很容易被绕过。由于学生可以使用课程提供的 harness 之外的任何模型,只需简单的 prompt 更改即可覆盖 CLAUDE.md 的指令。

社区提出了几种反向提案:

  • 审计追踪: 一些讲师建议要求提供一个包含每个 prompt 和 response 的 markdown 日志的 .history 文件夹,以识别那些将 AI 作为拐杖的学生。
  • 回归“老派”评估: 有一种强有力的论点认为,确保学习的唯一方法是回归受控环境——纸笔考试或在没有互联网连接的房间内编写代码——以证明独立于工具的知识。
  • “现实世界”方法: 有些人认为,屏蔽学生免受自动化一切的诱惑是适得其反的,因为这并不能让他们为在 AI 无处不在的专业环境中可能遇到的“认知债务”和不透明的 bug 可能会面临的情况做好准备。

给学习者的实用建议

虽然是为课堂设计的,但 CS336 的方法为自学开发者或学习新语言的人提供了宝贵的策略。通过刻意限制 AI 提供代码的能力,学习者可以迫去迫使自己参与实现的“重活”。

对于使用 Claude Code 等工具的人,社区建议利用“学习模式”(通过 /config > output styles > Learning)来模拟这种苏格拉底式方法,确保 AI 引导用户逐步解决问题,而不是简单地交付结果。

Sources