AI 使用政策
这门课不禁止 AI,也不放任 AI。政策按学期分三个阶段推进,随着你的能力增长逐步放开。任何时候你都可以在本页确认「我现在能不能用」。
禁止 AI 生成代码
第 1–7 周禁止让 AI 生成或补全代码;IDE 的 AI 补全功能必须关闭
允许用 AI 提问概念、查文档、解释报错信息
这七周建立的是代码直觉和调试能力,一旦被代劳就无法补回。
可用,须附使用声明
第 8–14 周允许使用 AI 辅助编程
所有提交必须附 AI 使用声明:用了什么工具、生成了哪些部分、你如何验证其正确性
此时你已经有能力判断 AI 给的东西对不对,重点转向验证与理解。
完全开放,仍须附使用声明
第 15–16 周完全开放,鼓励使用
所有提交仍须附 AI 使用声明:用了什么工具、生成了哪些部分、你如何验证其正确性
「开放」指的是可以用到什么程度,不是可以不说明用了什么
评分关注设计质量、模块划分、测试覆盖与集成能力。
为什么前七周要禁
这不是纪律条款,是学习顺序的问题。前七周你要建立的是代码直觉和调试能力——看到一段代码能预判它会输出什么,看到一个报错能猜到是哪一行出了问题。这两样东西只能通过自己写、自己错、自己找出来才能获得。
如果这个阶段由 AI 代劳,你会得到一堆能跑的代码,但失去判断代码对不对的能力。而到了第八周之后,判断力恰恰是你使用 AI 时最重要的东西——AI 会写出看起来完全合理、实际上在边界情况下崩溃的代码,没有前七周的积累,你根本看不出来。
AI 使用声明怎么写
第 8 周起,每次提交都要附一段简短声明,说清三件事:
用了什么——哪个工具、哪个模型
生成了哪部分——具体到函数或代码段
你如何验证——跑了什么测试、检查了哪些边界情况
声明本身不扣分。不写声明才扣分,因为那意味着你没有在思考自己和 AI 的分工。
什么算越界
Level 0 期间使用 AI 生成代码、任何阶段提交自己讲不清楚的代码、以及在口头验收时无法解释自己代码的实现思路——这些按学术不端处理。
判断标准很简单:你能不能对自己交上来的每一行代码负责。
本课程自己的 AI 使用声明
上面那三条是对你们的要求。同一份要求,课程先给自己写一遍。 这门课的网站、讲义、课件和实验题,都用到了 AI。
- 用了什么
Anthropic 的 Claude,主要通过 Claude Code 使用。
- 生成了哪部分
课程网站和实验评测平台的绝大部分代码;十六讲讲义与实验题面的初稿(中英文各一份);课件的渲染引擎和各讲片子的初稿;上机题的题面、测试数据与参考解答的初稿。
- 如何验证
课件上不出现手打的输出——每个代码块在构建时真跑一遍,投影上那几行字是 CPython 打出来的,预期值写错会让构建当场失败(这一条已经抓出过好几处错误,比如把
0b1100 | 0b1010写成 1010)。版面由守卫在真实浏览器里逐页测量,内容超界就拦下构建,不靠肉眼看。站内链接逐条检查。判题平台有自动化测试,每道上机题都配参考解答并跑过判题。
教学内容的取舍、讲授顺序、难度安排,以及每一句结论,由授课教师负责。 工具写出来的东西如果讲不通,责任在署名的人——这和第 8 周起对你们的要求是同一条。
写这一段的理由很简单:如果我们要求你们声明而自己不声明,这条规则就只是用来管别人的。
学期时间线
| 周 | 理论 / 实验 | AI 政策 | 节点 |
|---|---|---|---|
| 1 | L1 / Lab 1 | Level 0 | |
| 2 | L2 / Lab 2 | Level 0 | |
| 3 | L3 / Lab 3 | Level 0 | |
| 4 | L4 / Lab 4 | Level 0 | |
| 5 | L5 / Lab 5 | Level 0 | |
| 6 | L6 / Lab 6 | Level 0 | |
| 7 | L7 / Lab 7 | Level 0 | 个人作业 1 启动 · 汉诺塔 |
| 8 | L8 / Lab 8 | Level 1 | 个人作业 1 提交 · AI 政策升至 Level 1 |
| 9 | L9 / Lab 9 | Level 1 | |
| 10 | L10 / Lab 10 | Level 1 | 个人作业 2 启动 · 素数计数 |
| 11 | L11 / Lab 11 | Level 1 | 个人作业 2 提交 |
| 12 | L12 / Lab 12 | Level 1 | 个人作业 3 启动 · 大整数运算 |
| 13 | L13 / Lab 13 | Level 1 | 个人作业 3 提交 |
| 14 | L14 / Lab 14 | Level 1 | 团队项目启动 |
| 15 | L15 / Lab 15 | Level 2 | AI 政策升至 Level 2 |
| 16 | L16 | Level 2 | 团队项目提交 |