最近,AI 编程的热度依旧高涨。 Twitter几乎每天都能看到各路大佬分享自己的新体验。尤其是 Google DeepMind 的首席工程师发的一条帖子,说 ClaudeCode 用 1 个小时完成了一个团队一年的构建。这个话题更是引来八百万次围观,上千个讨论。“AI 会怎么改变软件和编程”是讨论的热点。
热闹之外,一个更现实的问题摆在面前。今天的计算机科学和软件工程,尤其是编程教育,到底该怎么教、怎么学?
不断有老师和学生提出质疑,AI 已经编程这么厉害了,编程到底教什么?怎么教?不然学生用 AI 写代码交作业,老师用 AI 批改,这个就...是自循环了吧。
正好今天翻到斯坦福在 2025 年秋天开设的# CS146S: The Modern Software Developer (现代软件开发) 课程。已经全部完成,并且把所有的内容都放到了课程网站上。https://themodernsoftware.dev/还有作业的代码库https://github.com/mihail911/modern-software-dev-assignments
我很好奇这个号称不允许学生手写代码,必须通过 AI 辅助编程完成的课程,到底怎么讲的。
看完觉得,这可真是个宝藏课程~
这个为期 8 周的编程课程,设计很巧妙。提供了很多案例,用渐进的方式从精细化控制提示词起步,囊括了软件工程的模块化,前后端接口,测试,代码 review,不同架构等软件开发中的问题。确实是面向专业软件的开发教程,而不是一般做一个玩具程序的思路。
我觉得很值得把这八周的作业和课程环节拿来拆开研究。它是学生的训练路径,也可能为一线教师提供一种新的课程设计思路。接下来我会对这八周安排分别能训练什么能力做一个更具体的介绍,希望能给计算机系的老师和学习者带来一些启发。
Week1:6 个 prompt 技术,先练“能验收”的那种
Week1 的任务很直白:练 6 种提示词技术。
做法也很直白:每个 task 对应一个 .py 文件,你只需要把 TODO 标注的 prompt 或函数补齐,然后反复跑脚本,直到测试通过。
6 个点分别对应:
k_shot_prompting.py:k-shot,让模型稳定输出指定字符串chain_of_thought.py:解模运算题,最后一行固定 Answer: 43tool_calling.py:输出纯 JSON 触发工具调用self_consistency_prompting.py:多次尝试,多数投票要收敛到 Answer: 25rag.py:从给定 CORPUS 选 context,让模型生成包含关键片段的函数实现reflexion.py:失败后做一次反思迭代,争取第二版过测试
Week1 的教学目的就是怎么通过提示词控制 AI的输出稳定
作业也不用靠老师主观意见批改。
能让测试过,就算完成任务。
后面的 Week2-Week8:从“会 prompt”到“会把系统做出来”
这门课后面几周的设计,是一层一层往“真实开发”上递进的。
我简单给你扫一眼,你就知道它想怎么训练学生的。
Week2:Action Item Extractor(行动项提取器)
基于一个已有的 FastAPI + SQLite 小应用,把“会议/随手记”的自由文本变成结构化待办。
你不仅要加一个 LLM 版本的提取函数(extract_action_items_llm()),还要补单测、重构工程、加新的endpoint、前端加按钮、最后再从代码库生成 README。
说白了:
你要把 AI 从“写函数”用到“做产品”。
Week3:Build a Custom MCP Server(打造自定义 MCP 服务器)
自己做一个 MCP 服务器,包装一个真实外部 API。
要求至少 2 个 tools,参数要 typed,要输入校验,要超时与错误处理,要考虑限流,还要写清楚文档怎么跑、怎么配 client。
这就已经很贴近“真正能上线的工程”了。
Week4:The Autonomous Coding Agent IRL(自动化编码智能体)
在一个全栈 starter app 里,设计并实现至少 2 个能提升开发效率的 automation自动化流程(包括 claudecode 的slash commands、CLAUDE.md、subagents 或 MCP 集成等)。
重点不是你有没有写出功能。
而是你能不能把“可复用的工作流”设计出来,并证明它让你更快更稳。
Week5:Agentic Development with Warp(多智能体协作)
你要展示 Warp Drive + 多智能体并行协作。
还要写清楚自动化层级、并行的收益与风险,甚至建议用 git worktree 避免多个 agent 踩文件。
这周就很像“把你当成小团队的技术负责人来训练”。
Week6:Semgrep 扫描与修修漏洞
扫描给定的代码库,至少修 3 个安全问题,还要写 write-up:规则是什么、风险是什么、你改了哪里、为什么能降低风险。
这一步很关键。
因为真实世界里,写出功能只是及格。
能让它安全、可维护、可解释,才是软件工程。
Week7:Graphite + AI Code Review(代码审查)
对任务文档中的每个 task 开分支,用一句话提示词实现功能,然后你自己逐行 review,再用 Graphite Diamond 做 AI code review,对比并写反思。
这一周其实是在教一件事:
AI 帮你写得快,但你必须学会 review 得更严。
Week8:Multi-Stack + AI 加速多技术栈开发
同一个 web app 做 3 个不同技术栈版本。
至少一个用 bolt.new,至少一个包含非 JS 语言,还要端到端可用、持久化、UI 可用、每个版本都要 README文档。
这就是“把你从学生,推到半个独立开发者”。
写在最后
我为什么说这门课是宝藏?
因为它很现实。
它承认 AI 已经进入业界的真实使用。
它用一整套课程和作业,把学生培养成一个能够驾驭 AI 的工程师:
会提问,会规划,会验收,会迭代,保证安全,对 AI 生成的代码付责任。
作为一流学府的课程,确实成体系,更实际。
如果你是学生,这门课可以当作一条训练路线。
如果你是老师,它也许能给你一个课程设计的新思路。
希望对你有用~