当前位置: 首页 > news >正文

[论文阅读] AI+教学 | 编程入门课的AI助手革命?ChatGPT的4大核心影响全解析

编程入门课的AI助手革命?ChatGPT的4大核心影响全解析

论文信息

  • 论文原标题:ChatGPT in Introductory Programming: Counterbalanced Evaluation of Code Quality, Conceptual Learning, and Student Perceptions
  • 发表情况:Accepted to SIGCITE’25

一段话总结

该研究针对ChatGPT在C语言入门编程课(CS1)中的应用,对27名学生开展平衡准实验:两组交替在“用ChatGPT”和“不用ChatGPT”条件下完成函数、结构体作业,通过代码质量评分、概念测试、完成时间及问卷评估影响。结果显示,ChatGPT组代码质量显著更高(结构体作业p<0.001)、完成时间大幅缩短(函数作业平均快1890秒),但概念理解效果因主题而异(结构体有提升,函数无差异);学生认可其代码生成/调试价值,却担忧准确性与长期技能发展。研究为AI融入编程教学提供了实证依据。

思维导图

在这里插入图片描述

研究背景

如果你教过或学过编程入门课(比如CS1),一定懂这种“痛”:
新手对着屏幕写C语言函数,光是调试“未初始化变量”的警告就能耗掉1小时;讲到结构体这种抽象概念,一半学生盯着“struct Book {char title[50]; int pages;}”发呆——这就是CS1的常态:基础语法繁琐、抽象概念难啃,学生容易陷入“卡壳焦虑”

而ChatGPT的出现像一剂“特效药”:学生输入“写一个检查字符串变位词的C函数”,几秒就能拿到可运行代码;遇到结构体嵌套问题,它还能举“图书信息包含作者地址”的例子。但这剂药也藏着“副作用”:

  • 老师怕学生“抄代码不思考”,连最基础的函数逻辑都记不住;
  • 学界争议不断:AI到底是“提升生产力的工具”,还是“削弱独立解决问题能力的拐杖”?

此前研究要么只问学生“你觉得GPT有用吗”,要么只测单一作业的代码得分,没人系统地搞清楚:GPT到底对“代码质量、完成速度、概念理解”这三件编程学习的核心事,分别有什么影响? 这篇论文就瞄准了这个缺口,用实打实的实验给出答案。

创新点

这篇研究的“独特之处”在于三个“不将就”:

  1. 实验设计不将就:拒绝“一刀切”
    不像传统实验“一组用GPT、一组不用”(可能受作业难度顺序影响),它用平衡准实验:两组学生交替用GPT做函数、结构体作业,既控制了“先易后难”的顺序效应,又能对比同一批学生在两种条件下的表现,结果更可信。

  2. 评估维度不将就:不止看“代码对不对”
    多数研究只看“代码是否通过测试用例”,这篇设计了5维评分表(正确性、效率、可读性、警告处理、错误处理),连“变量命名规范”“注释是否清晰”都纳入评估——毕竟真实编程里,“能跑的烂代码”不如“优雅的好代码”。

  3. 研究问题不将就:直击教学痛点
    不回避“AI会不会让学生变懒”的核心争议,专门加了概念后测学生感知问卷,既看“短期代码产出”,也看“长期概念理解”,还听学生真实声音,结论更全面。

研究方法和思路

整个研究像“拆积木”一样清晰,分4步走:

步骤1:确定“玩家”和“规则”

  • 玩家:27名CS1学生(6女21男),自愿参与(获少量加分),分成A组(14人)和B组(13人)。
  • 规则:搞“交替任务”——
    • 作业1(函数主题:变位词检查、数组最值等):A组用ChatGPT,B组不用;
    • 作业2(结构体主题:英尺-英寸加法、图书记录等):A组不用ChatGPT,B组用。

步骤2:设计“任务”和“评分尺”

  • 任务:两道C语言作业,每道含3个贴近课程内容的小题(比如结构体要处理“英尺进位到英寸”的实际场景)。
  • 评分尺:5维代码评分表(κ=0.87,双评分者一致度高),每维按“完全达标(1分)、部分达标(0.5分)、未达标(0分)”打分。
  • 辅助工具:前后测问卷(测ChatGPT熟悉度、编程信心)、概念测试题(比如“结构体和数组的区别是什么”)。

步骤3:收集“战绩”

用Qualtrics平台统一发作业、收代码,自动记录“完成时间”,同时回收问卷和概念测试答案。

步骤4:算“胜负”

用统计学方法对比两组数据:代码得分用t检验,概念得分用曼-惠特尼U检验(因样本量小),确保结果的显著性。

主要成果和贡献

核心成果(用表格看更清楚)

研究问题(RQ)对比实验条件关键结论
RQ1:GPT是否提升代码质量?GPT组 vs 非GPT组是!结构体作业p<0.001,函数作业p=0.018,可读性和警告处理提升最明显
RQ2:GPT是否缩短完成时间?GPT组 vs 非GPT组是!函数作业平均快1890秒(GPT组495秒 vs 非GPT组2385秒),p=0.0002
RQ3:GPT是否影响概念理解?GPT组 vs 非GPT组混合效果:结构体主题总得分更高(p=0.0457),函数主题无差异(p=0.3234)
RQ4:学生对GPT的感知如何?GPT组前后测问卷认可代码生成/调试价值,但30%担忧“依赖后不会独立写代码”

实际贡献

对编程教育者来说,这篇研究相当于“AI教学说明书”:

  1. 不用谈GPT色变:它确实能帮新手突破“语法卡壳”“调试耗时”的瓶颈,把时间花在“问题思路”上;
  2. 不能放任不管:要针对不同主题调整策略——结构体等抽象内容可多用GPT辅助,函数等基础内容需强化自主练习;
  3. 要加“保险措施”:让学生“先写代码再用GPT验证”,并要求解释GPT代码的逻辑,避免“抄而不懂”。

关键问题

Q1:为什么用“平衡准实验”而不是普通分组实验?

A:因为编程作业有“难度顺序效应”——如果先做简单的函数、再做难的结构体,后做的组可能因“学过了”表现更好。平衡设计让两组都经历“用/不用GPT”的两种情况,抵消了顺序干扰,结果更公平。

Q2:GPT提升了代码质量,为什么函数主题的概念理解没进步?

A:因为函数是CS1基础内容,学生通过课堂和课本已掌握核心逻辑(比如“函数要传参数”);而结构体是复合数据类型,抽象度高,GPT的“代码+解释”帮学生把抽象概念和实际应用结合,反而促进了理解。

Q3:学生既认可GPT又担忧技能,教学中该怎么平衡?

A:可以搞“三段式任务”:① 学生自主写代码(限时);② 用GPT调试、优化;③ 写“对比报告”,说明自己的代码哪里错了、GPT为什么更好。既用了GPT的效率,又强迫思考,避免依赖。

Q4:这个研究结果能推广到Python等其他编程语言吗?

A:目前不好说。C语言注重语法严谨性(比如变量类型声明),GPT在补全语法、处理警告上优势明显;Python语法更简洁,GPT的“语法辅助”价值可能降低,但“逻辑思路提示”的作用或许还在,需要后续实验验证。


详细总结

一、研究背景与核心目标
  1. 背景

    • 大型语言模型(LLMs)如ChatGPT在入门编程课程(CS1)中应用激增,主要用于实时代码生成、调试和概念解释,虽能提升学生生产力与代码质量,但学界担忧其可能导致学生过度依赖,并对概念性学习(如核心编程原理理解)产生负面影响。
    • 现有文献多聚焦学生对ChatGPT的感知或单一使用场景,缺乏实证研究探讨其对学习成果(如代码质量、概念掌握)的具体影响,尤其在基础编程课程中。
  2. 核心目标
    探究ChatGPT访问对CS1课程(C语言)学生的四大维度影响:代码质量、概念理解、任务完成时间、学生感知,核心研究问题为“ChatGPT访问如何影响基础编程课程的学习与表现?

二、研究设计详情
维度具体内容
参与者- 来源:美国东南部某大型大学的CS1课程(C语言基础)学生,以大一新生为主。
- 规模:共27人,含6名女性、21名男性,自愿参与2个实验性作业(获少量加分),分组为便利样本(学生自选课程 section)。
实验设计- 类型:平衡准实验(控制顺序效应)。
- 分组:A组(n=14)、B组(n=13),两组交替使用ChatGPT:
- 作业1(函数主题):A组用ChatGPT,B组不用;
- 作业2(结构体主题):A组不用ChatGPT,B组用。
- 流程:前测问卷→完成作业→后测问卷→代码评分。
作业设计2个C语言作业,各含3个任务(表1):
- 作业1(函数):① 字符串变位词检查;② 函数返回数组求最值;③ 函数比较出生年份(含闰年)。
- 作业2(结构体):① 结构体实现英尺-英寸加法(含进位);② 结构体创建图书记录;③ 嵌套结构体示例。
评估工具1. 多维代码评分表(表2):含5类维度,评分标准为1(完全达标)、0.5(部分达标)、0(未达标),双评分者一致性κ=0.87(分歧已讨论解决):
- 正确性(通过测试用例、特殊场景处理);
- 效率/用法(时空效率、结构体字段合理性);
- 代码质量(命名、注释、格式);
- 警告分析(无编译器警告、无未初始化变量);
- 错误处理(输入合法性检查)。
2. 问卷
- 前测:评估AI态度、ChatGPT熟悉度、编程信心;
- 后测:① 概念题(评估目标概念理解);② GPT体验问卷(仅GPT组填,含有用性、使用意愿)。
3. 完成时间:记录任务(秒)和问卷(秒)耗时。
数据收集- 平台:Qualtrics(统一呈现作业、收集数据)。
- 内容:学生代码提交、后测问卷答案、任务与问卷完成时间。
三、数据分析与关键结果
3.1 RQ1:ChatGPT是否提升代码质量?
  • 结论:是,GPT组代码质量评分显著高于非GPT组。
  • 具体数据(表3):
    作业分组正确性均值代码质量均值警告分析均值统计显著性
    作业1(函数)A组(GPT)2.02.87.5t=4.46,p=0.018
    B组(非GPT)1.11.96.5
    作业2(结构体)A组(非GPT)2.52.31.9t=5.02,p<0.001
    B组(GPT)1.21.61.3
  • 核心增益:GPT组在正确性(测试用例通过率)、代码可读性、警告处理(如无未初始化变量)上提升最显著,尤其帮助新手掌握“防御性编程”和陌生语法(如结构体)。
3.2 RQ2:ChatGPT是否影响任务完成时间?
  • 结论:是,GPT组完成时间显著短于非GPT组(表4)。
  • 具体数据:
    任务类型作业分组平均耗时(秒)统计显著性
    编程任务作业1(函数)A组(GPT)494.92t=-5.222,p=0.0002
    B组(非GPT)2385.31
    作业2(结构体)A组(非GPT)1934.33t=4.175,p=0.0011
    B组(GPT)868.00
    后测问卷作业1(函数)A组(GPT)238.77t=-0.717,p=0.4828(不显著)
    B组(非GPT)318.80
    作业2(结构体)A组(非GPT)210.82t=3.996,p=0.0008
    B组(GPT)109.90
  • 关键发现:作业2中GPT组问卷耗时也显著缩短,可能因结构体概念更抽象,GPT辅助提升了学生对概念的即时理解。
3.3 RQ3:ChatGPT是否影响概念理解?
  • 结论:混合效果,因主题而异(表5、6)。
  • 具体表现:
    1. 作业1(函数)
      • 两组总概念得分无显著差异(U=153.5,p=0.3234);
      • 仅“函数用途”题GPT组优势显著(91.7%正确vs非GPT组0%),其他题(如函数参数、递归输出)无差异。
    2. 作业2(结构体)
      • GPT组总概念得分显著高于非GPT组(U=77.0,p=0.0457);
      • 但所有单题(如结构体存储、数组初始化)均无显著差异,可能因总得分受多题微小优势累积影响。
  • 可能原因:结构体作为复合数据类型更抽象,GPT的解释更贴合新手需求;函数概念更基础,学生已通过传统学习掌握,GPT增益有限。
3.4 RQ4:学生对ChatGPT的感知如何?
  • 前测(基线)

    维度A1(函数)GPT组(A)A1非GPT组(B)A2(结构体)GPT组(B)A2非GPT组(A)
    ChatGPT熟悉度(高)76.9%60.0%50.0%45.5%
    使用GPT信心(高)69.2%80.0%66.7%63.6%
    学习主题信心(高)84.6%86.7%58.3%90.9%
    • 结论:两组基线态度、熟悉度平衡,无显著偏差。
  • 后测(体验)

    • 积极面:作业1(GPT组)在“理解主题”“愿意再用”“感知学习”上的高评级比例高于作业2(GPT组),所有GPT组学生均认可GPT在“代码生成”“调试错误”中的价值。
    • 担忧面:作业2中“中等/低”评级比例上升,学生普遍担忧GPT的准确性(如生成错误代码)和对长期编程技能(如独立调试能力)的负面影响。
四、研究局限性
  1. 内部有效性:学生自选择分组,未控制先前编程经验和技术能力;样本量小(27人),个体技能差异对结果影响较大。
  2. 构造有效性:评估方法与“概念理解”“编程技能”等目标构念可能不匹配,评分表需进一步优化以捕捉深层能力提升。
  3. 外部有效性:仅基于单校、单门C语言CS1课程,结果难以推广到其他院校、编程语言或教学场景;仅测量短期效果,无长期技能保留数据。
五、结论与教学建议
  1. 核心结论

    • ChatGPT能显著提升CS1学生的代码质量(正确性、可读性)和任务效率(缩短完成时间);
    • 概念理解的影响因主题复杂度而异(结构体有提升,函数无提升);
    • 学生对ChatGPT的辅助价值认可,但存在对准确性和长期技能的担忧。
  2. 教学建议

    • 结构化整合ChatGPT,而非放任使用(如限定GPT用于调试而非完整代码生成);
    • 配合补充教学策略(如引导学生验证GPT代码、反思逻辑、开展概念讨论),培养独立问题解决能力;
    • 针对抽象主题(如结构体)可加强GPT辅助,基础主题(如函数)仍需强化传统教学。
  3. 未来研究方向

    • 扩大样本量和学生多样性,扩展到其他编程语言(如Python)和课程;
    • 探究AI访问移除后的长期技能保留效果
    • 分析AI-学生交互日志,优化任务复杂度和引导性提示(如结构化prompt);
    • 纳入伦理使用和学术诚信管理(如设计口头考试、复杂任务防作弊)。

4. 关键问题与答案

问题1:该研究的“平衡准实验设计”相比传统单组实验有何优势?具体如何实施以控制干扰因素?
  • 答案
    优势:解决了先前AI教育研究中常被忽视的顺序效应(如“先做函数作业再做结构体作业”可能因学习曲线影响结果),通过让两组学生均经历“GPT”和“非GPT”条件,确保作业顺序、学习进度等干扰因素对两组影响一致,提升结果的可信度和因果推断能力。
    实施方式:将27名学生分为A组(n=14)和B组(n=13),采用“交替条件”设计:
    • 作业1(函数主题):A组使用ChatGPT,B组不使用;
    • 作业2(结构体主题):A组不使用ChatGPT,B组使用;
      同时通过前测问卷(评估ChatGPT熟悉度、编程信心、概念基线)确保两组初始状态平衡,进一步控制组间偏差。
问题2:ChatGPT对学生“概念理解”的影响呈现“混合特征”,这一特征的具体表现是什么?可能与哪些因素相关?
  • 答案
    具体表现:

    1. 函数主题:GPT组与非GPT组的总概念得分无显著差异(U=153.5,p=0.3234),仅“函数用途”单题GPT组正确率(91.7%)远高于非GPT组(0%),其他题(如递归输出、函数参数)无优势;
    2. 结构体主题:GPT组总概念得分显著高于非GPT组(U=77.0,p=0.0457),但所有单题(如结构体存储、数组初始化)均无显著差异,总得分优势来自多题微小正确率的累积。

    相关因素:

    • 主题复杂度:结构体是复合数据类型,抽象度高于基础函数,新手更难通过自主学习构建概念,ChatGPT的解释(如字段关联、嵌套逻辑)更易填补理解缺口;
    • 任务关联性:结构体作业任务(如创建图书记录)需直接应用概念,GPT辅助代码生成时同步强化了概念关联;函数任务(如变位词检查)更侧重程序性实现,概念与代码的关联较弱,GPT增益有限。
问题3:基于学生感知数据,教学中应如何“扬长避短”地利用ChatGPT?
  • 答案
    从学生感知的“积极面”和“担忧面”出发,教学策略需兼顾效率与能力培养:
    1. 扬长(利用积极面)

      • 学生对ChatGPT的代码生成、调试功能认可度高(两组GPT用户均给予积极评价),可将GPT作为“调试工具”引入教学,如让学生先自主编写代码,再用GPT验证错误(如编译器警告、逻辑漏洞),缩短调试耗时,集中精力于问题解决;
      • 针对结构体等抽象主题,利用学生对GPT的“高接受度”(A2 GPT组58.3%对学习有信心),设计“GPT辅助概念预习”任务(如让学生用GPT生成结构体示例并标注核心逻辑),降低课堂概念讲解难度。
    2. 避短(应对担忧面)

      • 学生担忧GPT的准确性长期技能影响,需设计“验证反思环节”,如要求学生对比GPT代码与自主代码的差异,分析GPT代码的错误(如未处理边界输入),避免盲目依赖;
      • 针对作业2中“感知学习”评级下降的问题,可在GPT辅助后增加“概念复述”任务(如让学生用文字解释结构体嵌套逻辑),强化概念内化,抵消“重代码、轻理解”的倾向;
      • 利用前测中“学生熟悉度高”的基础(A1 GPT组76.9%熟悉),开设“GPT伦理使用”讨论课,明确GPT的辅助定位(非替代自主学习),同时通过复杂任务(如开放性编程项目)评估真实技能,防范学术诚信风险。

总结

这篇研究用严谨的实验,给“ChatGPT该不该进编程课”的争议提供了实证答案:它不是“洪水猛兽”,也不是“万能神药”——能显著提升新手的代码质量和效率,但对概念理解的影响因主题而异,且需要配合结构化教学策略。 对教育者来说,与其禁止学生用AI,不如思考“如何让AI成为教学助手”;对学生来说,GPT可以当“调试师傅”,但不能当“代笔先生”。未来随着样本量扩大和长期跟踪,AI在编程教育中的角色会更清晰,但目前这篇研究,无疑是一块重要的“铺路石”。

http://www.dtcms.com/a/445498.html

相关文章:

  • 设计模式学习(五)装饰者模式、桥接模式、外观模式
  • 邵阳网站建设上科互联百度网站如何建设
  • 使用Yocto构建qemu上的Linux系统
  • Scade One 图形建模 - 选择算符模型
  • 【Java SE 异常】原理、处理与实践详解​
  • CPP学习之哈希表
  • Java “并发工具类”面试清单(含超通俗生活案例与深度理解)
  • 2025 AI伦理治理破局:从制度设计到实践落地的探索
  • 力扣1984. 学生分数的最小差值
  • Android studio -kt构建一个app
  • 4.数据类型
  • Spring Boot SSE 流式输出,智能体的实时响应
  • Linux系统性能监控—sar命令
  • PostgreSQL备份不是复制文件?物理vs逻辑咋选?误删还能精准恢复到1分钟前?
  • 网站开发主管招聘wordpress 手机悬浮
  • 描述逻辑对人工智能自然语言处理中深层语义分析的影响与启示
  • 首屏加载耗时从5秒优化到1秒内:弱网与低端安卓机下的前端优化秘笈
  • 【新版】Elasticsearch 8.15.2 完整安装流程(Linux国内镜像提速版)
  • LeetCode 分类刷题:74. 搜索二维矩阵
  • 网站建设项目职责memcache安装wordpress
  • MySQL查看数据表锁定情况
  • sq网站推广用jsp做的网站源代码下载
  • 玩转ClaudeCode:通过Chrome DevTools MCP实现高级调试与反反爬策略
  • 国内做焊接机器人平台网站网络营销的方法是什么
  • 网站建设一般用什么软件敏捷模型是软件开发模型吗
  • 做网站好的品牌泰安房产网签查询
  • No商业网站建设wordpress 调用插件
  • 免费模板网站都有什么区别合肥网络seo
  • 什么是网站地址云服务器上放多个网站
  • 电子商务网站费用预算必须在当地网站备案