# stanford-cs146s-modern-software-dev **Repository Path**: MrKoala/stanford-cs146s-modern-software-dev ## Basic Information - **Project Name**: stanford-cs146s-modern-software-dev - **Description**: 斯坦福 CS146S 现代软件开发课程中文文档 - 包含10周教学大纲、核心知识点、代码示例(提示工程、MCP服务器、编码代理),提供Markdown/HTML/PDF格式 - **Primary Language**: Unknown - **License**: MIT - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 1 - **Forks**: 2 - **Created**: 2026-02-26 - **Last Updated**: 2026-08-26 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # CS146S: The Modern Software Developer - 现代软件开发课程文档 > Stanford University • Fall 2025 --- ## 🚀 快速开始 本项目收集整理了斯坦福 CS146S 课程的完整学习资料: | 资源 | 链接 | |------|------| | 📚 **课程资料** | [`course-materials/`](./course-materials/) - 按周整理的学习资料 | | 📝 **中文作业** | [`modern-software-dev-assignments-cn/`](./modern-software-dev-assignments-cn/) - 中文翻译版作业 | | 🔗 **原始课程** | https://themodernsoftware.dev/ | | 📂 **原始作业** | https://github.com/mihail911/modern-software-dev-assignments | --- ## 📋 目录 - [课程概述](#课程概述) - [课程目标](#课程目标) - [先修要求](#先修要求) - [教学团队](#教学团队) - [课程大纲](#课程大纲) - [评分标准](#评分标准) - [学习资源](#学习资源) - [常见问题](#常见问题) --- ## 课程概述 在过去的几年中,大语言模型(LLM)为软件开发引入了革命性的新范式。传统的软件开发生命周期在每个阶段都因AI自动化而发生了转变,这提出了一个问题:下一代软件工程师应该如何利用这些进步来提高10倍的生产力,并为他们的职业生涯做好准备? 本课程演示了现代AI工具不仅会提高开发者的生产力,还将为更广泛的受众实现软件工程的民主化。我们将展示软件开发已经从0-1的代码创建演变为规划、AI生成、修改和迭代的协作工作流。学生将掌握传统软件工程挑战背后的理论,以及当今解决这些挑战的前沿AI工具。 通过实际的工程任务和构建这些革命性工具的行业先驱的演讲,您将获得AI辅助开发、自动化测试、智能文档生成和安全漏洞检测的实践经验。在本课程结束时,您将对如何将最先进的LLM模型集成到复杂的开发工作流中并避免常见陷阱有一个清晰的理解。 --- ## 课程目标 通过本课程,学生将能够: 1. **掌握现代开发工具** - 熟练使用AI驱动的开发工具和环境 2. **理解AI辅助编程** - 深入理解LLM如何改变编码工作流 3. **学习自动化测试和部署** - 使用AI工具进行自动化质量保证 4. **探索新兴软件趋势** - 了解AI时代软件工程的前沿发展 ### 核心能力 - 使用大语言模型进行代码生成和优化 - 构建和管理编码代理(Coding Agents) - 实施AI驱动的测试和安全实践 - 利用AI工具进行调试和代码审查 - 创建和部署智能文档系统 --- ## 先修要求 - **编程基础**: CS111等同的编程经验 - **推荐课程**: CS221/229(机器学习相关课程) - **其他要求**: 对软件工程和AI技术有浓厚兴趣 --- ## 教学团队 ### 授课教师 **Mihail Eric** - 讲师 - 个人网站: https://www.mihaileric.com/ - 办公时间: 周五 12:00-12:30 PM ### 助教团队 **Febie Lin** - 助教组长 - LinkedIn: https://www.linkedin.com/in/febielin/ - 办公时间: 周三 9:00-11:00 AM (Huang Basement) **Brent Ju** - 助教 - LinkedIn: https://www.linkedin.com/in/brentju/ --- ## 课程大纲 ### 第一周:LLM与AI开发入门 **主题** - 课程介绍 - 什么是LLM - 如何有效使用提示工程 **阅读材料** - [Deep Dive into LLMs](https://www.youtube.com/watch?v=7xTGNNLPyMI) - YouTube视频 - [Prompt Engineering Overview](https://cloud.google.com/discover/what-is-prompt-engineering) - Google Cloud - [Prompt Engineering Guide](https://www.promptingguide.ai/techniques) - 提示工程指南 - [AI Prompt Engineering: A Deep Dive](https://www.youtube.com/watch?v=T9aRN5JkmL8) - 深度解析 - [How OpenAI Uses Codex](https://cdn.openai.com/pdf/6a2631dc-783e-479b-b1a4-af0cfbd38630/how-openai-uses-codex.pdf) - OpenAI论文 **作业** - [LLM Prompting Playground](https://github.com/mihail911/modern-software-dev-assignments/tree/master/week1) **讲座** - 周一 9/22: 介绍和LLM的构建原理 - 周五 9/26: LLM的强大提示工程 --- ### 第二周:编码代理的剖析 **主题** - 代理架构和组件 - 工具使用和函数调用 - MCP(模型上下文协议) **阅读材料** - [MCP Introduction](https://stytch.com/blog/model-context-protocol-introduction/) - MCP入门 - [Sample MCP Server Implementations](https://github.com/modelcontextprotocol/servers) - 服务器实现示例 - [MCP Server Authentication](https://developers.cloudflare.com/agents/guides/remote-mcp-server/#add-authentication) - 认证 - [MCP Server SDK](https://github.com/modelcontextprotocol/typescript-sdk/tree/main?tab=readme-ov-file#server) - SDK文档 - [MCP Registry](https://blog.modelcontextprotocol.io/posts/2025-09-08-mcp-registry-preview/) - 注册表 - [MCP Food-for-Thought](https://www.reillywood.com/blog/apis-dont-make-good-mcp-tools/) - 深度思考 **作业** - [First Steps in AI IDE](https://github.com/mihail911/modern-software-dev-assignments/tree/master/week2) **讲座** - 周一 9/29: 从零开始构建编码代理 - 周五 10/3: 构建自定义MCP服务器 --- ### 第三周:AI集成开发环境(IDE) **主题** - 上下文管理和代码理解 - 代理的产品需求文档(PRD) - IDE集成和扩展 **阅读材料** - [Specs Are New Source Code](https://blog.ravi-mehta.com/p/specs-are-the-new-source-code) - 规格即新源码 - [How Long Contexts Fail](https://www.dbreunig.com/2025/06/22/how-contexts-fail-and-how-to-fix-them.html) - 长上下文的局限性 - [Devin: Coding Agents 101](https://devin.ai/agents101#introduction) - 编码代理入门 - [Getting AI to Work In Complex Codebases](https://github.com/humanlayer/advanced-context-engineering-for-coding-agents/blob/main/ace-fca.md) - 复杂代码库中的AI - [How FAANG Vibe Codes](https://x.com/rohanpaul_ai/status/1959414096589422619) - FAANG编码方式 - [Writing Effective Tools for Agents](https://www.anthropic.com/engineering/writing-tools-for-agents) - 为代理编写有效工具 **作业** - [Build a Custom MCP Server](https://github.com/mihail911/modern-software-dev-assignments/blob/master/week3/assignment.md) **讲座** - 周一 10/6: 从第一个提示到最佳IDE设置 - 周五 10/10: 嘉宾演讲 - Silas Alberti (Cognition研究主管) --- ### 第四周:编码代理模式 **主题** - 管理代理自主级别 - 人机协作模式 **阅读材料** - [How Anthropic Uses Claude Code](https://www-cdn.anthropic.com/58284b19e702b49db9302d5b6f135ad8871e7658.pdf) - Claude Code使用指南 - [Claude Best Practices](https://www.anthropic.com/engineering/claude-code-best-practices) - 最佳实践 - [Awesome Claude Agents](https://github.com/vijaythecoder/awesome-claude-agents) - Claude代理资源 - [Super Claude](https://github.com/SuperClaude-Org/SuperClaude_Framework) - 超级Claude框架 - [Good Context Good Code](https://blog.stockapp.com/good-context-good-code/) - 良好上下文与良好代码 - [Peeking Under the Hood of Claude Code](https://medium.com/@outsightai/peeking-under-the-hood-of-claude-code-70f5a94a9a62) - Claude Code内部机制 **作业** - [Coding with Claude Code](https://github.com/mihail911/modern-software-dev-assignments/blob/master/week4/assignment.md) **讲座** - 周一 10/13: 如何成为代理管理者 - 周五 10/17: 嘉宾演讲 - Boris Cherney (Claude Code创造者) --- ### 第五周:现代终端 **主题** - AI增强的命令行界面 - 终端自动化和脚本 **阅读材料** - [Warp University](https://www.warp.dev/university?slug=university) - Warp学习资源 - [Warp vs Claude Code](https://www.warp.dev/university/getting-started/warp-vs-claude-code) - Warp对比Claude Code - [How Warp Uses Warp to Build Warp](https://notion.warp.dev/How-Warp-uses-Warp-to-build-Warp-21643263616d81a6b9e3e63fd8a7380c) - Warp自用技术 **作业** - [Agentic Development with Warp](https://github.com/mihail911/modern-software-dev-assignments/tree/master/week5) **讲座** - 周一 10/20: 如何构建突破性AI开发者产品 - 周五 10/24: 嘉宾演讲 - Zach Lloyd (Warp CEO) --- ### 第六周:AI测试与安全 **主题** - 安全代码编程 - 漏洞检测历史 - AI生成的测试套件 **阅读材料** - [SAST vs DAST](https://www.splunk.com/en_us/blog/learn/sast-vs-dast.html) - 静态与动态应用安全测试 - [Copilot Remote Code Execution via Prompt Injection](https://embracethered.com/blog/posts/2025/github-copilot-remote-code-execution-via-prompt-injection/) - Copilot远程代码执行漏洞 - [Finding Vulnerabilities with Claude Code](https://semgrep.dev/blog/2025/finding-vulnerabilities-in-modern-web-apps-using-claude-code-and-openai-codex/) - 使用AI发现漏洞 - [Agentic AI Threats: Identity Spoofing](https://unit42.paloaltonetworks.com/agentic-ai-threats/#:~:text=Identity%20spoofing%20and%20impersonation:%20Attackers,accurate%20information%20exchange%20are%20critical.) - 代理AI威胁 - [OWASP Top Ten](https://owasp.org/www-project-top-ten/) - Web应用安全风险 - [Context Rot](https://research.trychroma.com/context-rot) - 上下文衰减研究 - [Vulnerability Prompt Analysis with O3](https://github.com/SeanHeelan/o3_finds_cve-2025-37899/blob/master/system_prompt_uafs.prompt) - 漏洞提示分析 **作业** - [Writing Secure AI Code](https://github.com/mihail911/modern-software-dev-assignments/blob/master/week6/assignment.md) **讲座** - 周一 10/27: AI QA、SAST、DAST及更多 - 周五 10/31: 嘉宾演讲 - Isaac Evans (Semgrep CEO) --- ### 第七周:现代软件支持 **主题** - 我们可以信任哪些AI代码系统 - 调试和诊断 - 智能文档生成 **阅读材料** - [Code Reviews: Just Do It](https://blog.codinghorror.com/code-reviews-just-do-it/) - 代码审查的重要性 - [How to Review Code Effectively](https://github.blog/developer-skills/github/how-to-review-code-effectively-a-github-staff-engineers-philosophy/) - 有效代码审查 - [AI-Assisted Assessment of Coding Practices](https://arxiv.org/pdf/2405.13565) - AI辅助代码实践评估 - [AI Code Review Implementation Best Practices](https://graphite.dev/guides/ai-code-review-implementation-best-practices) - AI代码审查最佳实践 - [Code Review Essentials for Software Teams](https://blakesmith.me/2015/02/09/code-review-essentials-for-software-teams.html) - 代码审查要点 - [Lessons from millions of AI code reviews](https://www.youtube.com/watch?v=TswQeKftnaw) - AI代码审查经验 **作业** - [Code Review Reps](https://github.com/mihail911/modern-software-dev-assignments/tree/master/week7) **讲座** - 周一 11/3: AI代码审查 - 周五 11/7: 嘉宾演讲 - Tomas Reimers (Graphite CPO) --- ### 第八周:自动化UI和应用构建 **主题** - 为所有人的设计和前端 - 快速UI/UX原型和迭代 **作业** - [Multi-stack Web App Builds](https://github.com/mihail911/modern-software-dev-assignments/tree/master/week8) **讲座** - 周一 11/10: 单个提示完成端到端应用 - 周五 11/14: 嘉宾演讲 - Gaspar Garcia (Vercel AI研究主管) --- ### 第九周:部署后的代理 **主题** - AI系统的监控和可观测性 - 自动化事件响应 - 故障排查和调试 **阅读材料** - [Introduction to Site Reliability Engineering](https://sre.google/sre-book/introduction/) - SRE入门 - [Observability Basics You Should Know](https://last9.io/blog/traces-spans-observability-basics/) - 可观测性基础 - [Kubernetes Troubleshooting with AI](https://resolve.ai/blog/kubernetes-troubleshooting-in-resolve-ai) - AI K8s故障排查 - [Your New Autonomous Teammate](https://resolve.ai/blog/product-deep-dive) - 自主队友 - [Role of Multi Agent Systems in Making Software Engineers AI-native](https://resolve.ai/blog/role-of-multi-agent-systems-AI-native-engineering) - 多代理系统 - [Benefits of Agentic AI in On-call Engineering](https://resolve.ai/blog/Top-5-Benefits) - 代理AI的益处 **讲座** - 周一 11/17: 事件响应和DevOps - 周五 11/21: 嘉宾演讲 - Mayank Agarwal & Milind Ganjoo (Resolve CTO & 技术主管) --- ### 第十周:AI软件工程的未来 **主题** - 软件开发角色的未来 - 新兴的AI编程范式 - 行业趋势和预测 **讲座** - 周一 12/1: 10年后的软件开发 - 周五 12/5: 嘉宾演讲 - Martin Casado (a16z普通合伙人) --- ## 评分标准 | 组成部分 | 权重 | 说明 | |---------|------|------| | **期末项目** | 80% | 展示现代开发实践的最终项目 | | **每周作业** | 15% | 通过实际任务学习新工具和技术 | | **课堂参与** | 5% | 积极参与讨论和活动 | --- ## 学习资源 ### 📁 本地课程材料 本项目已整理完整的课程学习资料,方便离线学习: | 资源类型 | 路径 | 说明 | |---------|------|------| | **课程资料** | [`course-materials/`](./course-materials/) | 按周整理的完整学习资料 | | **每周 Slides** | [`course-materials/week01/slides/`](./course-materials/week01/slides/) | PDF + PPTX 格式 | | **课程大纲** | [`course-materials/week01/syllabus.md`](./course-materials/week01/syllabus.md) | 每周学习要点 | | **作业仓库** | [`modern-software-dev-assignments-cn/`](./modern-software-dev-assignments-cn/) | 中文版作业 | | **原始作业** | [`modern-software-dev-assignments/`](./modern-software-dev-assignments/) | 英文原版作业 | ### 🔗 原始课程资源 | 资源 | 链接 | |------|------| | **课程官网** | https://themodernsoftware.dev/ | | **原始作业** | https://github.com/mihail911/modern-software-dev-assignments | ### 推荐工具 1. **AI编码助手** - GitHub Copilot - Claude Code - Tabnine 2. **开发环境** - VS Code + AI扩展 - Warp终端 - Cursor AI IDE 3. **测试工具** - Semgrep - AI驱动的测试框架 ### 参考资源 - [Stanford CS课程体系](https://cs.stanford.edu/) - [AI代码生成研究](https://arxiv.org/list/cs.AI/recent) - [OpenAI开发者文档](https://platform.openai.com/docs) - [Anthropic开发者文档](https://docs.anthropic.com/) --- ## 常见问题 ### Q: 本课程将使用哪些编程语言? A: 本课程是语言无关的,专注于在不同编程语言中都能使用的工具和实践。不过,示例主要使用Python、JavaScript,以及在适当的情况下使用一些系统编程语言。重点是理解现代开发实践,而不是掌握特定语言。 ### Q: 我需要使用GitHub Copilot等AI工具的经验吗? A: 不需要AI开发工具的先验经验。课程将从基础开始,逐步构建到更高级的使用。但是,扎实的编程基础(CS111及以上)是必不可少的。 ### Q: 本课程会取代传统的软件工程课程吗? A: 本课程通过专注于现代工具和AI辅助开发来补充传统的软件工程课程。它假设您具备基础的软件工程知识,并在此基础上使用当代实践进行构建。 ### Q: 本课程的时间投入是多少? A: 预计每周大约需要10-12小时,包括讲座、作业和项目工作。课程的实践性质需要时间来试验新的工具和技术。 ### Q: 有哪些特殊的软件或硬件要求? A: 学生需要使用能够运行现代开发工具的电脑。一些基于云的服务可能需要订阅(GitHub Copilot等),但课程会尽可能提供访问权限或替代方案。可靠的互联网连接对于基于云的工具至关重要。 ### Q: 课程内容有多新? A: 课程内容设计得非常新,每周更新以反映AI辅助开发的快速演变。来自领先公司的客座演讲确保学生了解最新的行业实践和新兴工具。 ### Q: 我可以旁听这门课吗? A: 我们接受斯坦福学生和员工的旁听请求。您将能够参加所有讲座,但我们无法为您的家庭作业评分或就最终项目提供建议。 --- ## 联系方式 - **课程邮箱**: 待定 - **Ed讨论**: 将向注册学生提供链接 - **Canvas**: 所有课程材料和提交通过斯坦福Canvas --- ## 课程信息 | 项目 | 信息 | |------|------| | **学分** | 3学分 | | **教室** | 420-041 | | **学期** | Fall 2025 | | **课程代码** | CS146S | | **课程类型** | 讲座 + 实践 + 客座演讲 | --- ## 许可和版权 本课程文档基于 Stanford University CS146S 课程内容编译整理。 --- *最后更新: 2025年*