“老师,既然AI都能写很多代码了,那编程和软件工程课教的东西还有价值吗?我们该怎么学好这些课呢?”
这样的疑问,正出现在越来越多的课堂上,也是很多软件专业老师共同面对的困惑。
人工智能正在彻底改变软件开发的格局,CoPilot这样的工具已经成为标配,但我们也看到了新的问题:不少学生因为基础不牢,在实际项目中陷入了“氛围编程”的困境——过度依赖AI生成代码,不知道背后的原理,更不知道怎么构建高质量的软件。
正是为了回应这些挑战,北京中关村学院的邹欣老师在《现代软件工程》课程中,始终坚持“以终为始”的理念进行“干中学”教学。这个“终”不是考试分数,而是真实工程和科研的挑战。这门课让学生在使用各种AI工具的同时,学会提出精准的问题、做出合理的工程决策、设计可扩展的系统架构,并在团队中有效协作。
课程中的各种教学设计,可以看作是从“船舱、甲板、山巅”三个角度出发,系统培养学生的综合能力。具体来说,课程引导学生以三种身份去实践:像船舱水手一样埋头实干,像甲板协作者一样在评价与互动中思辨,再像山巅观察者一样进行大胆的俯瞰与思考。通过这三重视角的转换,学生得以全程参与项目实践,经历从需求分析到部署运维的完整软件生命周期。在持续的操作、观察与碰撞中,他们最终锤炼出的,是在AI辅助下进行工程决策与创新的核心判断力。

北京中关村学院2025年秋季《现代软件工程》课程的千帆竞发图https://bbs.zgcai.icu/smart_backend/se2509/
01 船舱中的水手:在真实项目中锤炼工程基本功
“船舱中的水手”这一视角是学生扎根项目细节、锤炼工程基本功的关键阶段。在此阶段,学生如投身船舱的水手,深入具体项目实践,亲身经历从代码编写、调试纠错到团队沟通、版本交付的全流程压力与挑战,体会真实项目中频繁改需求、修Bug、重构代码的压力。北京中关村学院的学员来自于全国31所共建高校,其中三分之一的学生是跨专业读博的。每个人对于编程和软件工程的理解都不一样,在以后的职业发展路径上,软件工程所起的作用也不一样。邹老师给同学们出了一份不一样的作业:
快速阅读全部教材,提出五个问题,或者指出教材不对或不能理解的地方,并说明提问的理由。
不同的学生从他们各自的背景出发,问出了不同的问题,这也锻炼了同学们快速了解一个领域,并把很多“我不知道我不知道”的模糊领域概念转化为“我知道我不知道”的挑战。老师和助教就可以有的放矢,在评论和讲课中解释这些问题,更重要的是,学生在自己的实践中,体会到这些问题是如何通过软件工具和流程解决的。期末的时候,老师又出了另外一个作业:
请同学们通过一学期的实践,回答自己学期初提出的问题、并尝试提出更多的新问题。
一个学生在期末提到:他的所有问题并没有得到完美的解答,但是:
“以前我会因为这些“不完美”而感到焦虑,现在更多的是一种接受:工程本身就是在限制条件下做选择,而不是追求理想解。这种心态的变化,对我来说是一个很重要的成长。”——2025级 闫秉政
我们知道博士学习生涯是艰苦的,就像一个人划船在大河中逆流而上,这探索的旅程充满了疑惑和各种不确定,而且每一个人的疑惑也是不一样的。在学术的旅途中,每个卓有成效的学者都是通过疑问-探索-解答-再疑问……的方式不断探索真理。正如英国哲学家培根所说,“若始于怀疑,必终于确信”。这门课用“开学叩问-实践求解-期末回望”的方式,让学生在真实项目中不断验证和修正自己的疑问,而不是从书本或老师那里找标准答案。
“这门课最大的价值是:把软件工程从‘道理’变成了‘亲身体验过的代价与方法论’。”——2025级 张平路
印度诗人泰戈尔也曾说过:The river of truth flows through its channels of errors. 真理之川,从错误之沟渠流出。学生们通过自己的努力与实践,解答了许多自己曾提出的问题,这也是一种学术探索之美。AI工具现在已经能高效解答很多已知问题,但无法替代人类发现和定义新问题的能力。这一方法鼓励学生从被动的知识消费者,转变为主动的问题探索者和知识建构者;培养了学生在技术快速更迭的AI时代,保持思维敏锐、敢于质疑的能力和习惯,这亦是应对高度不确定未来的核心素养。
02 甲板协作者与竞争者:在观察与比较中拓展认知边界
这一阶段,学习过程移到了“甲板”之上,我们要引导学生跳出技术执行的单一视角,多看看别的同学,别的团队在做什么,怎么做的,在观察、比较、协作与批判中,形成对项目价值、团队效能与创新路径的系统化认知。
在“甲板”阶段,设计了三项关键机制:
1. 作业博客和代码全网公开+千帆竞发图,动态展示所有同学的进度:
“博客作业与公开‘处刑’:最开始我很抵触,觉得写博客是形式主义。但后来发现,这其实是一种‘思维的强制显性化’,必须把逻辑理顺了才能发出来。”——2025级 何绍斌
“千帆竞发图把进度可视化,外界反馈会提前到达,而不是期末才发现落后。”——2025级 田钦中
2. 这门课的另一个独特做法,是强制“换一艘船” 试试看。就是在项目完成第一个版本后,强制要求部分团队成员跳槽,新人要融入新的项目组,接手陌生的代码库。这一过程模拟了真实企业和动荡的创业团队中因人员流动、项目重组带来的交接挑战。
AI无法重建已丢失的项目上下文与设计决策。强制换人让学生在疼痛中深刻体会“代码只是载体,可能是负资产,而可交接的知识(如文档、清晰架构、注释、可以正确运行的测试用例)才是工程资产”这一在AI时代更显珍贵的真理。它强调了工程中“人的协作”与“知识传承”的不可替代性。迫使团队思考,在大家忙碌工作中形成的隐性知识,怎么传承到全体成员?
“当我被迫去接手别人的代码,或者看着别人把我的代码改得面目全非时,我才痛彻心扉地理解了什么是‘可维护性’。”——2025级 何绍斌
“Alpha后强制团队人员变动:这一招太狠了。它逼迫团队显性化知识:文档、交接、可维护性,这非常工程。”——2024级 李文宇
“Alpha 阶段后强制换人——是这学期最让我痛苦但也最‘真实’的体验。它完美模拟了真实大厂中人员离职、新人接手的场景。”——2025级 姜厚丞
这些反馈表明,学生对“软件可维护性”和“知识显性化”的理解,已经不再停留在考试名词层面,而是和自己“被接手/接手别人代码”的切身体验绑在了一起。
“我可以教给你一个论点,但没法替你完成体验和感悟”——学生通过亲手劳作和近距离观察获得的这些体验与体会,才是这门课真正的收获,远比“软件工程很重要”之类的口号更能留在他们心里。
03 山巅观察者与思考者:在俯瞰与验证中驱动成长
学生需要不时超越当下项目的具体细节,以更长远的视角思考几个问题:软件工程这门学科的本质是什么?AI技术浪潮正在改变哪些工程实践?软件工程师应当承担怎样的责任?在这个国家级的AI学院,我应该打磨什么样的技能?在完成基础开发和团队协作训练后,我们希望学生能偶尔从具体实现中“抬头”,尝试回答几个更大的问题:这个软件到底解决了谁的什么问题?如果要在现实世界里“活下来”,还缺什么?
课程引入模拟的“天使投资”环节,要求每个项目团队不仅展示技术实现,更要像创业公司一样进行“路演”。 每个团队在课程的三个节点都进行了“天使投资路演”:用10分钟时间给“投资人”讲清楚产品定位、目标用户场景和最新用户反馈,而不仅仅是展示技术细节。评审标准严格参照真实投资逻辑,由有丰富经验的工程师、产品经理老师和学生共同担任,学生如果投资失败,也会遭受分数的损失。
这也能让同学们深入思考“如何跨越创新的鸿沟”,成功地把新技术推向更广大的市场:

“天使投资评审:这个环节把不管不顾的技术自嗨直接打回原形。它强迫我们从‘Maker(制造者)’视角切换到‘Stakeholder(利益相关者)’视角。技术再强,讲不出商业价值和用户痛点,就是一堆废代码。”——2025级 何绍斌
“天使投资评选是一个神来之笔。它把评分标准从‘代码写得难不难’变成了‘产品是否有市场价值’。这迫使我们从技术思维转向产品思维。”——2025级 么琳
“UX测试对MyMind的启发非常大:很多‘在我电脑上没问题’的地方,会暴露出真实的可用性缺陷。”——2025级 彭怀玉
“它没有教我如何把程序写出来,而是让我开始理解如何让软件真正活下来。这可能正是软件工程课程最重要、也最不容易被量化的价值。”——2025级 马坚
在课程中,邹老师以他丰富的经历,向同学们分享了各种项目在实际世界中成败和挣扎,创新的规律和“迷思”, 他还鼓励(迫使)同学们分析当前热门的技术究竟处于 “技术成熟(炒作)周期” 的哪个阶段,下图就是同学们对vibe coding这一技术的判断:

总的来说,这门课从“船舱、甲板、山巅”三个维度,围绕真实项目重构了学习路径。学生不再只是完成一次次割裂的实验,而是在一学期内经历了一个软件从“能跑起来”到“接得下去、推得出去、做出新意、获得认可”的全过程,并在真实的反馈中体会到:软件做出新意只是开始,让新意在用户那里站得住脚、赢得认可才更难——而这正是软件工程的核心价值。
未来,北京中关村学院计划在更多课程中引入类似的项目制实践,让更多学生在真实需求和真实用户的持续反馈中打磨自己的工程判断力。
与此同时,我们会把相关的工具以开源的方式分享,欢迎不同学校的老师一起交流。也许在不久的将来,上课的过程本身,就是在解决实际科研和工业界挑战的过程——真正做到“以终为始”,在真实的项目里学习,在真实的约束下不断突破和成长。
邹欣 北京中关村学院智能创新中心负责人
曾在微软工作24年,参与Azure、Office、Visual Studio、Bing、Windows等产品研发,也在Momenta担任高级架构师、在CSDN担任研发副总裁。
他与合作者在2007年出版《编程之美》,成为不少学生的算法启蒙读物;2015年出版《构建之法——现代软件工程》,已被全国四十多所高校采用为教材;此后又出版《智能之门——神经网络与深度学习入门》,并翻译《深度学习:基础与概念》。
自2007年起,他在清华大学交叉学院(姚班)、北京航空航天大学等高校持续讲授软件工程课程,基于“做中学”理念自筹经费、招募助教,在多所高校推进软件工程教学改革,并多次组织《构建之法》教学研讨会。



