news 2026/5/9 18:59:43

高校编程教学中生成式AI使用行为实证研究:场景、影响与教学应对

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
高校编程教学中生成式AI使用行为实证研究:场景、影响与教学应对

1. 项目概述:当AI成为“助教”,我们看到了什么?

去年,我的一位在大学任教的朋友给我发来一份作业反馈截图,问我:“你觉得这是学生自己写的,还是AI写的?” 我扫了一眼,那流畅的论述、标准的学术用语,以及一丝不易察觉的“模板感”,让我心里大概有了数。这已经不是个例。随着ChatGPT等生成式AI工具的普及,高校课堂里正悄然发生一场静默的革命。学生们开始用AI辅助完成编程作业、撰写报告,甚至进行初步的代码调试和逻辑梳理。而教师们,则站在了一个全新的十字路口:是将其视为洪水猛兽严加禁止,还是探索将其转化为教学助力的新路径?

这个项目,正是源于对这场变革的近距离观察。它并非一个技术开发项目,而是一项聚焦于“人”与“技术”互动关系的教育实证研究。核心目标是双重的:一方面,深入理解学生们在完成编程类作业时,对ChatGPT等工具的真实使用偏好、依赖程度及其背后的动机;另一方面,探讨这种新兴技术如何在高等教育,特别是实践性强的编程教育中,找到其合理、有效且负责任的“应用锚点”。简单说,我们想弄明白:学生们到底是怎么用AI的?以及,老师们又该如何“聪明地”利用它,而不是被它牵着鼻子走?

这项研究的意义,早已超出了单纯的学术好奇。它关乎教育公平(是否所有学生都能平等、有效地利用这类工具?)、关乎学术诚信(如何界定合理使用与学术不端?)、更关乎未来人才培养的核心能力定义(当记忆和简单复现变得廉价,什么才是教育应该聚焦的?)。如果你是一位教育工作者、课程设计者,或是一位对教育技术趋势敏感的学生,那么这项研究中的发现与思考,或许能为你打开一扇新的窗户。

2. 研究设计与方法:如何捕捉“人机协作”的微妙瞬间?

要研究像“使用AI完成作业”这样既普遍又敏感的行为,传统单一的问卷调查往往力有不逮。学生们可能出于各种顾虑(如担心被批评为“作弊”)而在问卷中隐瞒或美化自己的行为。因此,我们的研究采用了混合方法,试图从多个维度交叉验证,勾勒出一幅更接近真实的图景。

2.1 多维数据采集框架

我们的数据采集围绕三个核心层面展开,像一个三角测量,相互印证。

第一层:定量问卷——描绘行为轮廓。我们设计了一份匿名在线问卷,面向计算机科学、软件工程及相关专业的大学生发放。问卷的核心不是直接问“你用不用ChatGPT”,而是通过一系列情境化的问题来探测行为。例如:

  • “在完成编程作业时,你遇到‘无法理解题目要求’的情况,通常首先寻求哪种帮助?(A. 查阅教材和课件 B. 询问同学 C. 使用搜索引擎 D. 询问ChatGPT等AI工具 E. 其他)”
  • “请估算,在最近一次包含代码编写的作业中,你最终提交的代码里,大约有多大比例最初来源于AI生成(包括直接生成、生成后修改、生成思路等)?(0%, 1-25%, 26-50%, 51-75%, 76-100%)”
  • “你使用AI辅助编程时,最常让它完成哪些具体任务?(多选:生成基础代码框架、解释错误信息、优化代码性能、生成注释和文档、学习新概念/库函数等)”

这些问题旨在量化使用的频率、场景和程度,避免是非题带来的粗糙判断。我们共回收了超过500份有效问卷,样本覆盖了不同年级和院校层次。

第二层:深度访谈——挖掘动机与困境。在问卷基础上,我们招募了20名学生志愿者进行半结构化访谈。这是获取“为什么”的关键。访谈在轻松、保密的环境中进行,我们鼓励学生分享具体的故事。例如,一位大二学生告诉我们:“那次作业要求用Python实现一个简单的图形界面,我完全没学过Tkinter。我先让ChatGPT生成了一个带按钮和文本框的窗口代码,然后对照着代码,一行行去查官方文档,弄懂了每个参数的意思。最后我不仅完成了作业,还真的学会了这个库的基本用法。” 这个案例揭示了AI作为“即时脚手架”和“个性化教程”的潜力。相反,也有学生坦言:“有时候 deadline 太紧,就直接把题目丢给AI,复制粘贴稍微改改就交了,心里知道这样学不到东西,但为了分数也没办法。” 这又指向了时间压力、评估方式等外部因素对使用模式的影响。

第三层:作业文本分析——寻找“数字指纹”。在征得教师和学生同意后,我们匿名收集了约200份编程作业的最终提交文本(包括代码和报告)。我们并不试图开发一个“AI检测器”(这本身是个复杂且有争议的领域),而是进行特征分析。例如,我们关注:

  • 代码注释的规律性:AI生成的注释往往异常详尽、格式统一,而学生自己写的注释可能更随意,有时甚至没有。
  • 错误处理的完备性:学生代码可能只处理主流情况,而AI生成的代码有时会包含对边缘情况的过度防御。
  • 报告文本的“平均句长”和“词汇复杂度”:在特定段落出现显著高于学生平均水平的学术化表达。 这些特征不能作为“证据”,但可以作为理解AI介入程度和模式的辅助参考,与问卷和访谈数据相互对照。

2.2 核心研究问题拆解

整个研究围绕四个核心问题展开:

  1. 偏好与模式:学生在编程学习的不同阶段(如理解需求、设计算法、编写代码、调试、文档化)中,分别偏好如何使用AI工具?是否存在典型的“人机协作”工作流?
  2. 感知与态度:学生如何看待AI辅助学习的价值与风险?他们是否意识到不同使用方式(如直接复制 vs. 作为学习伙伴)对长期学习效果的影响差异?
  3. 影响因素:哪些因素显著影响学生对AI工具的使用深度和方式?是个人因素(如先验知识、学习动机),课程因素(如作业难度、考核方式),还是工具因素(如AI的输出质量、交互体验)?
  4. 教育应用启示:基于以上发现,从课程设计、教学法和学术规范的角度,可以提炼出哪些关于生成式AI教育应用的务实建议?

注意:伦理考量是此类研究的生命线。我们所有数据收集均严格遵守知情同意和匿名化原则。问卷和访谈均明确告知研究目的,并保证数据仅用于整体分析,绝不关联到具体个人。作业文本分析完全在去标识化后进行。我们坚信,只有建立在信任和伦理基础上的研究,才能获得真实的数据和深刻的见解。

3. 核心发现:学生偏好背后的“理性”与“无奈”

通过对多维数据的交叉分析,一些清晰且有时令人惊讶的模式浮现出来。学生的行为远非“用或不用”那么简单,而是一套高度情境化、充满策略性的复杂选择。

3.1 五大典型使用场景与偏好排序

数据显示,学生使用ChatGPT等工具辅助编程作业,主要集中在以下五个场景,并按偏好程度大致排序:

  1. “解释者”与“调试助手”(最高频):超过85%的受访学生将“解释错误信息”和“解释我不理解的代码/概念”列为首要用例。一位学生的话很有代表性:“编译器报错信息有时候像天书,特别是涉及一些底层库的时候。把错误信息扔给ChatGPT,它不仅能翻译成人话,还能给出可能的原因和修复步骤,效率提升十倍。” 这揭示了传统教学中的一个痛点:错误反馈的“可读性”和“可教学性”不足,而AI充当了出色的即时翻译和辅导角色。

  2. “代码片段生成器”:约70%的学生会用它来生成特定功能的代码片段,例如“用Python连接MySQL数据库并执行查询”、“用JavaScript实现一个轮播图”。关键在于,多数学生(根据访谈)并非直接照搬,而是将其作为学习起点和参考模板。“我先让它生成一个基础版本,然后我会问它‘每一行是什么意思?’、‘如果我想增加XX功能该怎么改?’,在这个过程中我反而学得更主动。” 这种“生成-追问-修改”的交互模式,形成了一种新型的主动学习循环。

  3. “算法思路启发器”:面对一个复杂的算法题,约50%的学生会先让AI提供几种可能的解决思路或伪代码,以此打破自己的思维定式。“有时候卡住了,不是不会写代码,而是根本不知道从哪入手。AI给的思路哪怕不直接可用,也常常能点亮一盏灯,让我知道该往哪个方向搜索和学习。”

  4. “文档与注释撰写员”:约40%的学生会利用AI为已写好的代码生成注释,或为整个项目撰写说明文档。这通常发生在作业的最后阶段,被视为一种“繁琐任务的自动化”。“我知道写注释很重要,但有时候就是懒得写,或者词穷。AI能快速生成一个结构清晰、描述准确的初稿,我在此基础上修改润色,省时省力。”

  5. “完整解题者”(低频但存在):约15%的学生承认在时间极度紧张或遇到完全超出能力的题目时,曾尝试让AI生成完整或近乎完整的解决方案。但访谈显示,即使在这种情况下,多数学生也会进行一定程度的修改和重组,以“看起来更像自己的作业”。这直接指向了学术诚信的灰色地带和评估方式的挑战。

3.2 影响使用模式的三大关键因素

学生的使用偏好并非随机,而是受到以下因素的显著影响:

1. 任务类型与认知层级:我们将编程作业任务按认知复杂度分为:事实性/程序性任务(如“写出冒泡排序代码”)和概念性/设计性任务(如“设计一个满足XX需求的校园选课系统”)。研究发现,学生对AI的依赖在前者中显著高于后者。对于低阶的、有标准答案的任务,AI被视为高效的“执行工具”;而对于需要高阶思维、系统设计和权衡取舍的任务,学生更倾向于将AI作为“讨论伙伴”或“灵感来源”,而非直接的问题解决者。

2. 学生的元认知与自我调节能力:这是最具启发性的发现之一。具有较强元认知能力(即对自己学习过程有清晰认知和调控能力)的学生,更倾向于策略性、批判性地使用AI。他们会明确设定使用目标(“我是来学概念的,不是来要答案的”),会交叉验证AI提供的信息(“我去官方文档再核对一下”),并能有意识地将AI的输出整合进自己的知识体系。相反,元认知能力较弱的学生,更容易陷入“复制-粘贴”的被动模式,将AI视为减轻认知负担的“捷径”,而非学习工具。

3. 课程评估与教学环境:如果一门课程的考核 heavily relies on 死记硬背的语法或最终输出结果,而忽视过程、设计和理解,那么学生使用AI“走捷径”的动机就会大大增强。一位受访者直言:“如果老师只看代码能不能跑通,那用AI生成是最优解。但如果作业要求我们提交设计思路、迭代日志,并会在答辩中追问每个细节,那我就会更谨慎地使用AI,更多地把它用在思路拓展和难点攻克上。” 这强烈表明,教学设计和评估方式直接塑造了学生使用技术的伦理边界和行为模式。

4. 生成式AI教育应用的务实框架与策略

基于上述发现,我们认为,将生成式AI简单地挡在教室门外既不现实,也无必要。更建设性的思路是,主动将其纳入教学生态系统,进行“有设计的整合”。以下是一个从“防御”到“赋能”的四层应用框架。

4.1 第一层:重构学术诚信公约——从“禁止”到“规范”

与其发布一纸空泛的禁令,不如与学生共同制定清晰、可操作的“AI使用公约”。这份公约应具体到不同作业类型:

  • “绿色”任务:鼓励甚至要求使用AI。例如,用于解释概念、生成文档模板、提供调试建议。重点评估学生与AI交互的过程记录(如对话日志)和基于AI输出的再创造。
  • “黄色”任务:限制性使用AI。例如,允许使用AI生成部分代码片段,但必须明确标注出处,并附上自己对这段代码的理解和修改说明。评估重点在于整合与创新能力。
  • “红色”任务:禁止使用AI。通常是用于考核核心概念掌握程度的基础练习或闭卷考试。明确告知学生其目的。 这种分层规范,将模糊的“作弊”边界转化为清晰的行为指南,减少了学生的试探和教师的裁决负担。

4.2 第二层:设计“AI增强型”学习任务

教学设计的核心应从“产出答案”转向“设计过程”。我们可以创造一些必须与AI协作才能更好完成,且能凸显人类独特价值的任务:

  • “AI审计师”任务:给学生一段由AI生成的、存在潜在缺陷或非最优解的代码,要求他们进行审查、测试、找出问题并提出优化方案。这培养了批判性思维和代码审查能力。
  • “提示工程”挑战:给定一个编程问题,不直接评估最终代码,而是评估学生为AI编写的提示词的质量。要求学生迭代优化提示词,以获得更精准、更高效的代码输出。这本身就是一项未来至关重要的高阶技能。
  • “人机对比分析”报告:要求学生独立完成一个编程任务,同时让AI完成同一个任务。然后提交一份报告,对比两种解决方案在效率、可读性、健壮性等方面的优劣,并分析原因。这深化了学生对问题本质和解决方案多样性的理解。

4.3 第三层:培养关键的“人机协作”素养

我们需要在课程中 explicit teaching 一些与AI协作的核心素养:

  • 精准提问的能力:教会学生如何向AI清晰、具体地描述问题。这本质上是问题分析和分解能力的训练。
  • 信息验证与交叉检验的习惯:强调AI可能“一本正经地胡说八道”(产生幻觉)。必须培养学生对AI输出保持怀疑,并利用官方文档、教科书、搜索引擎等其他信源进行交叉验证的习惯。
  • 元认知与自我监控:引导学生定期反思:“我使用AI是为了逃避思考,还是为了深化理解?”“我是否过度依赖AI,导致某些基础技能生疏了?” 可以通过学习日志、反思报告等形式固化这一过程。

4.4 第四层:革新评估方式,指向高阶能力

评估是指挥棒。当AI能轻松完成低阶任务时,评估必须上移:

  • 重视过程性评估:增加设计文档、思路草图、迭代日志、调试记录、AI交互历史等过程产物的权重。
  • 采用“答辩”与“代码走查”:通过面对面的问答,可以迅速判断学生对代码的理解是肤浅的还是深入的。问几个“为什么选择这个数据结构?”“如果需求变成XX,你会如何修改?”之类的问题,远比检查代码是否运行正确更能评估真实水平。
  • 引入同伴评审:让学生相互评审代码和报告,重点关注逻辑清晰度、创新性和文档质量。这不仅能减轻教师负担,还能促进学生之间的深度学习。

5. 教师工具箱:实操建议与常见问题应对

对于一线教师而言,理论框架需要转化为具体行动。以下是一些可直接上手的建议和常见困境的应对思路。

5.1 如何设计一份“AI友好”又“防作弊”的编程作业?

关键在于增加语境依赖个性化元素。

  • 语境依赖:将编程问题嵌入到一个独特的、具体的场景中。例如,不要出“实现一个链表”,而是出“为我校图书馆的特定借阅规则(此处详细描述你校的真实或虚构的独特规则)设计一个图书管理系统的核心数据结构”。AI很难生成完全贴合你校独特情境的完美代码。
  • 个性化:在作业中引入学生个人的元素。例如,“使用你本学期选修的另一门课程(如经济学)中的一个核心概念,设计一个程序来演示该概念”。或者,让学生分析一段他们自己过去写的有缺陷的代码,并使用AI辅助进行重构和优化,并说明改进之处。
  • 过程可视化:要求学生在提交最终代码的同时,提交一份简短的视频录屏或屏幕截图时间线,展示他们从零开始编写、调试的关键步骤。这虽然不能完全杜绝作弊,但大大增加了作弊的成本和难度。

5.2 课堂上如何引导学生讨论AI的伦理使用?

不要进行说教,而是组织案例研讨。可以提供一个真实的、有争议的简短案例,例如:

“学生A在完成一个数据结构作业时,卡在了平衡二叉树的旋转操作上。他将其在教材中的描述输入ChatGPT,请求一个详细的解释和可视化步骤。ChatGPT给出了文字解释和一段伪代码。学生A仔细阅读了这些内容,并基于此自己用C++实现了该操作。他在作业报告中注明了‘在理解旋转操作时参考了与ChatGPT的对话’。请问,这是否属于学术不端?为什么?”

让学生分组讨论,并陈述理由。教师最后进行总结,引导学生认识到:使用工具获取理解和帮助是学习的一部分,关键在于是否通过了自身的思考、理解和转化,以及是否进行了透明的说明。这种讨论比任何规章制度都更能内化伦理意识。

5.3 怀疑学生作业由AI代劳,怎么办?

首先,避免依赖不靠谱的“AI检测工具”,它们的误报率很高,且容易引发争议。建议采取“基于关心的探究”流程:

  1. 私下邀请谈话:以平和、好奇而非质问的语气联系学生。“我对你作业中XX部分的解决方案很感兴趣,思路非常清晰。能约个时间和我聊聊你是如何想到这个方法的吗?我想了解更多你的思考过程。”
  2. 聚焦过程细节:在谈话中,询问具体的、过程性的问题。例如:“在这个函数里,你最初为什么选择用哈希表而不用数组?中间遇到过什么性能问题吗?”“我看到你这里处理了一个很特别的边界情况,当时是怎么发现这个情况的?”
  3. 评估理解深度:通过学生的回答,判断其是对代码有深刻理解,还是只能进行表面化的复述。真正理解的学生能够流畅地解释设计权衡、替代方案和调试经历。
  4. 明确规则与提供支持:如果确认存在不当依赖,应依据事先公布的“AI使用公约”进行处理。同时,将其视为一个教育契机,了解学生是否因为学习困难、时间管理问题而求助AI,并为其提供相应的学术支持。

5.4 教师自身如何利用AI提升教学效率?

教师同样可以是AI的受益者。例如:

  • 生成多样化的例题与变体:让AI基于一个核心知识点,生成难度不同、场景各异的练习题,用于课堂练习或作业库。
  • 快速创建教学材料:输入一个复杂概念(如“分布式事务”),让AI生成一份面向初学者的讲解大纲、一个类比生活中的例子、以及一份常见误解清单,教师可在此基础上修改和完善。
  • 辅助作业批改与反馈:对于编程作业,可以先将学生代码(匿名化后)交给AI进行初步分析,让其生成关于代码风格、潜在bug、复杂度等方面的初步评论。教师可以在此基础上,聚焦于AI无法评估的设计思想、创新性等层面,给出更具深度和个性化的反馈,极大提升反馈效率和针对性。

生成式AI涌入教育领域,带来的不是简单的“便利”或“威胁”,而是一次对教育本质的深层叩问。当机器能够轻易完成知识的复现和组合时,教育的价值必须更多地转向培养批判性思维、复杂问题解决、创造力以及人机协作的智慧。这项研究揭示的学生偏好,正是这场转型的微观缩影。对于教育者而言,挑战不在于如何筑起更高的墙,而在于如何设计更聪明的桥——连接学生的需求与技术的潜力,引导他们从“技术的消费者”成长为“技术的驾驭者”。这条路没有现成地图,但每一步探索,都关乎我们将培养出怎样面对未来世界的建设者。

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/5/9 18:58:11

AI赋能光网络与5G:预测性维护、资源优化与智能运维实践

1. 项目概述:当AI遇见光与无线最近几年,和不少同行交流,大家聊得最多的除了降本增效,就是AI。从数据中心到边缘计算,AI的影子无处不在。但说实话,当AI这股浪潮真正拍打到我们通信网络,特别是光网…

作者头像 李华
网站建设 2026/5/9 18:58:00

观察不同模型在Taotoken平台上的实际调用成本对比

🚀 告别海外账号与网络限制!稳定直连全球优质大模型,限时半价接入中。 👉 点击领取海量免费额度 观察不同模型在Taotoken平台上的实际调用成本对比 对于开发者与项目管理者而言,在引入大模型能力时,除了关…

作者头像 李华
网站建设 2026/5/9 18:56:46

Claude Code开发者如何配置Taotoken解决额度问题

🚀 告别海外账号与网络限制!稳定直连全球优质大模型,限时半价接入中。 👉 点击领取海量免费额度 Claude Code开发者如何配置Taotoken解决额度问题 对于依赖Claude Code进行日常开发的工程师来说,遇到原服务额度耗尽或…

作者头像 李华
网站建设 2026/5/9 18:49:52

机器学习性能基线:Zero Rule算法原理与Weka实践

1. 为什么需要机器学习性能基线在开始任何机器学习项目时,建立一个性能基线就像盖房子前打地基一样重要。想象一下,如果你要参加一场考试,但不知道及格线是多少,即使你考了80分,也无法判断这个成绩是好是坏。同样地&am…

作者头像 李华
网站建设 2026/5/9 18:37:40

AI与运筹学融合:构建可信人工智能的三大支柱与实践路径

1. 项目概述:当AI遇见运筹学,一场关于“可信”的深度对话如果你和我一样,长期在数据科学和智能决策的交叉领域工作,你一定会注意到一个有趣的现象:人工智能(AI)社区热衷于从海量数据中“学习”模…

作者头像 李华
网站建设 2026/5/9 18:36:57

CANN/catlass Block调度策略说明

Block Dispatch Policies说明 【免费下载链接】catlass 本项目是CANN的算子模板库,提供NPU上高性能矩阵乘及其相关融合类算子模板样例。 项目地址: https://gitcode.com/cann/catlass DispatchPolicy是BlockMmad的一个重要模板参数,各个DispatchP…

作者头像 李华