AI生成的拉取请求是否会改变软件工程的教学方式?

AI拉取请求正在改变软件工程教育,将重点从编写代码转向审查、集成和调试AI生成的贡献。

直接答案

是的,AI生成的拉取请求应当改变软件工程的教学方式,但并非通过取代传统技能。证据表明,AI代理会引入新的故障模式——例如27.67%的拉取请求出现合并冲突[7],以及频繁的逻辑缺陷[2]——同时还将主导的变异模式从类人变更转移开[1]。这意味着课程设置现在必须强调代码审查、集成调试以及理解AI行为,而不仅仅是从头编写代码。综合这些研究,最大的数据集(超过14.2万个拉取请求)和最详细的分类体系(1254个差异块)一致指向同一结论:学生需要学习如何管理、评估和修复AI生成的贡献,而不仅仅是产出自己的代码。

8篇文献引用

本文由 WisPaper 驱动的搜索和论文分析生成。

AI拉取请求揭示了学生需要哪些新技能?

AI智能体编写代码的方式与人类截然不同,这改变了学生需要学习的内容。一项针对AI智能体1254次与性能相关的代码变更的研究发现,其中37%是名称修改,26.4%是对象创建,22.7%是类型变更——这一模式与人类编写的代码完全不同,人类编写的代码中84%的变更是“无变更”(即人类主要对现有代码进行微调)[1]。这意味着学生不能依赖对“典型”代码变更的直觉判断;他们需要学习AI智能体的思维方式及其产生的变异类型。

合并冲突是另一个新常态。一项基于14.2万多个AI生成的拉取请求的数据集发现,其中27.67%导致了合并冲突——这意味着每10个AI贡献中就有近3个无法顺利整合[7]。这一比例远高于大多数人类提交的拉取请求,且因代理类型而异。如今,学生需要接受明确的冲突解决与集成测试训练,而不仅仅是学习如何编写能编译的代码。

AI代理也会以可预见的方式出错,学生应当学会识别这些错误。一项对12,433个AI生成的拉取请求(PR)的分析发现,84.2%被拒绝的PR在关闭时未收到任何审阅者的反馈——即无声失败[2]。而在那些确实收到评论的PR中,主要原因是指令不匹配和逻辑缺陷。这意味着学生需要培养识别AI误解需求或引入细微逻辑错误的能力,而这些技能在常规编程课程中通常不会教授。

软件工程课程应如何适应AI生成的贡献?

证据表明,重点正从“编写代码”转向“管理AI贡献”。一项针对248项关于AI系统软件工程研究的2022年调查发现,测试与质量被广泛研究,但软件维护却被忽视[5]。这一缺口至关重要,因为AI智能体生成的代码需要持续维护与审查。课程应整合AI辅助的拉取请求审查工具——正如2025年一项研究设计所提议的那样——以教导学生如何根据需求评估AI生成的变更[3]

情境感知的AI反馈比通用型AI辅导更有效。一项针对26名学生的对照研究发现,当AI审阅工具获得项目背景信息(如PR描述和评论)时,学生认为其反馈更准确、更有用[4]。这表明,教会学生如何为AI工具提供良好的上下文信息,以及如何解读情境感知的反馈,是一项可习得且能提升效果的技能。

然而,AI辅导存在局限性。一项将GPT-3.5作为AI导师整合到编程评估系统中的案例研究发现,尽管学生认可其及时反馈和可扩展性,但也有人担忧AI可能因提供泛化回答而阻碍学习进度[8]。这意味着教育者不能简单地将AI工具交给学生并期望它自动完成教学,而需要设计作业,让学生主动批判并改进AI生成的代码,而非全盘接受。

各项研究在哪些方面存在分歧?这对教学意味着什么?

研究一致认为人工智能改变了格局,但对于这种改变是利大于弊,还是主要成为新问题的来源,各方看法不一。一方面,2026年的一项研究发现,人工智能生成的PR(拉取请求)被拒率随时间显著下降,表明智能体在满足代码库标准方面表现越来越好[2]。另一方面,同一项研究也发现,84.2%的拒绝是“沉默拒绝”——即不提供任何反馈——这意味着学生如果不知道PR被拒的原因,就无法从失败中学习。

另一个矛盾点在于:AI代理主要在开发阶段而非维护阶段优化性能[6]。这对快速原型设计有利,但对长期运行的软件不利。一项涵盖248项研究的调查证实,基于AI的系统的软件维护在研究中被忽视了[5]。因此,如果教育者只教学生使用AI进行初始开发,他们将错过长期维护AI生成代码这一更困难的技能。

这种冲突并非真正的矛盾,而是反映了人工智能应用的不同阶段。早期研究(2022-2024年)侧重于风险与失败案例[5][8],而后期研究(2025-2026年)则显示出接受度提升,但整合挑战依然存在[2][7]。对教学而言,这意味着课程设置现在就需要更新,既要涵盖当前的失败模式,也要纳入新兴的最佳实践——因为这一领域正在快速发展。

关于这些来源

该回答基于8篇经同行评审的研究构建而成——发表于2022年至2026年间,其中7篇为2024年或之后发表,1篇发表于Q1期刊,累计被引用101次——这些研究是从8篇通过质量筛选的文献中选出的最具相关性的成果,而该筛选过程又源于从超过5亿篇论文数据库中检索到的56篇论文。

本文引用的文献

1

AI代理究竟改变了什么?性能改进拉取请求中变异模式的经验分类

分析了AI智能体生成的1,254个与性能相关的代码变更,发现其中37%为名称修改,26.4%为对象创建,22.7%为类型变更——这一模式与人类编写的代码截然不同,后者84%的变更为“无变更”[1]。

2

实际应用中的编码代理:AI生成拉取请求的失败模式与拒绝模式

研究了12,433个AI生成的PR后发现,拒绝率随时间推移有所下降,但84.2%被拒绝的PR在关闭时未收到任何审阅者反馈;在有评论的拒绝案例中,规格不匹配和逻辑缺陷占主导地位[2]。

3

在软件工程教育中迈向实施与评估AI辅助的拉取请求

提出了一项研究设计,旨在将人工智能工具(pr-agent)融入软件工程课程,以评估其对学生的编程技能及对PR流程理解的影响;目前尚未报告研究结果[3]。

4

在软件工程教育中,利用上下文感知的生成式人工智能增强自动化同伴代码评审。

在一项针对26名学生的对照研究中,具备上下文感知能力的生成式AI系统(提供项目概览和PR描述)所生成的同行代码评审反馈,比无上下文版本更加准确且实用[4]。

5

基于人工智能的系统的软件工程:一项综述

一项对248项研究(2010-2020年)的系统梳理发现,基于人工智能的系统中,软件测试与质量是研究重点,但软件维护却被忽视;数据问题是最常见的挑战[5]。

6

代理型AI系统如何解决性能优化问题?基于BERTopic的拉取请求分析

使用BERTopic从AI智能体的PR中识别出52个与性能相关的主题;发现性能优化主要发生在开发阶段而非维护阶段,且优化类型对PR的接受率有显著影响[6]。

7

AgenticFlict:GitHub上AI编码代理拉取请求中合并冲突的大规模数据集

创建了一个包含来自59,000多个仓库的14.2万多个AI生成PR的数据集;发现其中27.67%的PR导致合并冲突,并提取了超过33.6万个细粒度冲突区域[7]。

8

软件工程教育中的AI辅导

在编程评估系统中集成GPT-3.5作为AI导师;学生重视其及时反馈和可扩展性,但也对回答缺乏针对性以及可能阻碍学习进度表示担忧[8]。