基于生成式人工智能的大学生编程学习行为分析研究
2024-05-17孙丹朱城聪许作栋徐光涛
孙丹 朱城聪 许作栋 徐光涛
[摘 要] 生成式人工智能可以为教育提供高效且个性化的智能化服务和技术支持。作为典型的生成式人工智能语言模型,ChatGPT在编程中的应用已然获得业界的广泛关注。然而,鲜有学者从实证研究的层面探究学习者如何利用ChatGPT来进行编程学习。研究通过细粒度地采集学习者的编程行为和知识探究问题,对36位学习者的编程过程进行分析。研究结果表明:(1)学习者将ChatGPT视为有用的编程学习资源,依赖其指导学习过程,并倾向于将代码或调试错误信息拷贝至ChatGPT,进而复制其反馈信息;(2)高绩效组主要在前期使用ChatGPT辅助编程,低绩效组在整个编程过程中更频繁地使用ChatGPT进行编程;(3)学习者在使用ChatGPT时主要关注浅层和中层知识的探究,其中,高绩效组通过自主提问获得ChatGPT的反馈,中低绩效组则依赖对ChatGPT反馈内容的追问获得问题解决方案。研究针对如何利用ChatGPT辅助大学生开展编程学习提出了相关的建议,以期为提高编程学习效率提供参考。
[关键词] ChatGPT; 编程学习; 学习行为; 学习分析; 大学生
[中图分类号] G434 [文献标志码] A
[作者简介] 孙丹(1992—),女,浙江温州人。讲师,博士,主要从事智能教育、编程教育、学习分析、计算思维研究。E-mail:dansun@hznu.cn。徐光涛为通讯作者,E-mail:xuguangtao@hznu.edu.cn。
一、研究背景
近年来,随着科技的飞速发展,生成式人工智能技术在各个领域中得到了广泛的应用。在教育领域,生成式人工智能工具 ChatGPT(Chat Generative Pre-trained Transformer)的推出引起了热议。作为一种基于大语言模型的智能对话系统,ChatGPT 可以通过自然语言文本的输入、交互和生成来辅助学习和教学,为学生和教师提供更为便捷、高效的学习工具[1-3]。其中,ChatGPT 所具有的高效代码生成能力使得它可以辅助程序员完成编程过程中的各项任务,如代码完善、从文本生成代码等,并且ChatGPT可以集成在编程环境中,以此提高开发人员的工作效率[4]。尽管大家对编程教育的兴趣与日俱增,但对于大学阶段的学习者来说,学习编程仍然是一个具有挑战性的复杂过程。在程序编写的过程中,学习者难以调试所编写程序中的错误,他们往往需要一定的支持和指导[5]。生成式人工智能工具(如ChatGPT)可以通过快速给出基本正确的答案,为学习者在编程中遇到的问题提供解决方案,并为他们提供支持和指导[6]。此外,深入分析学习者编程过程,可以帮助教师和学习者采取更为有效的教学策略和学习方式[7]。因此,本研究以ChatGPT为例,通过行为分析的视角,对学习者在使用ChatGPT进行编程过程中的学习行为和知识探究问题进行分析。采用多种学习分析方法,探索不同绩效学习者的行为模式和知识探究质量,并研究ChatGPT在大学编程教育中的应用效果,以期为提高程序设计课程教学效果提供新的思路。
二、研究现状
(一)ChatGPT 融入编程教育
不同于传统的编程工具,作为一种人工智能语言模型,ChatGPT 可以使用自然语言与用户进行交流,即使是没有编程经验的学习者也可以使用它。OpenAI公司指出,ChatGPT 通过程序理解用户需求并作出响应[8]。传统编程工具,通常由软件开发环境、编程语言、库和其他相关组件组成,需要学习者具备特定的编程知识。例如,Python IDE只针对 Python语言设计,需要学习者掌握该语言的基本概念和操作。然而,虽然跨平台的集成开发环境如 Flutter 或 Microsoft Visual Studio 支持多種语言,但它们仍然需要学习者掌握特定的语法和概念才能进行操作。
关于 ChatGPT 在编程教育中的有效性仍存在着不同的观点。一方面,研究人员强调了 ChatGPT 与其他编程工具相比所具有的各种优势,例如,提供便捷访问、提供快速响应、促进个性化学习、支持多种语言、提供清晰的解释和编程示例、允许查询和搜索以及提供高级主题资源,增强学生的计算思维、编程自我效能感和学习动力等。研究人员发现,在ChatGPT等工具的支持下(主要是通过提供代码解释和调试),编程培训可以有效提高学生的编程技能。另一方面,ChatGPT 在编程教育方面的应用也有局限性。研究强调了相关的局限性,例如,非结构化学习、由于缺乏应用程序而依赖于辅助工具和环境、对数据结构和算法的支持有限等[4],以及缺乏常识、潜在偏见、难以进行复杂推理以及无法处理视觉信息等[9]问题。研究人员还强调,与ChatGPT相关的伦理问题(如偏见、歧视、隐私、安全、技术滥用、透明度和社会影响)错综复杂,需要认真对待。
(二)编程学习过程分析
尽管编程成绩通常是编程教育中的主要关注点,但使用多种学习分析方法对编程过程进行评估也愈加受到关注。学习过程的评价可以突显出通过实践促进学习者编程质量的本质[10]。研究强调,过程性评价和终结性评价相辅相成,可以全面地洞察学习者的编程过程和表现。在综合评价的支持下,研究者可以更好地理解编程现象和影响编程过程的潜在因素[11]。因此,在对编程教育的评价中,除了关注最终成果,还要注重学生在编程学习过程中的表现,并使用多种分析方法来评价学生的编程能力。
以往的实证研究采用了多种分析方法来展示编程学习过程的各个方面。吴林静等将编程过程分析的研究分为三个大类,分别是编程过程认知模型的研究,编程环境和支持资源的研究以及编程教育促进学习者能力发挥的研究[7]。Turkle等人研究指出,在编程学习过程中,修补型学习者通常通过小增量式的反复调试和修改代码而逐步构建解决方案,而计划型学习者则倾向于在计划出较完整的解决方案后再进行编码,并且每次编辑较大段的代码[12]。Sun等使用点击流分析、滞后序列分析和定量内容分析分析了三个小组的结对编程行为、话语和认知水平。研究表明,高中低水平小组在社交互动、认知参与和最终编程表现方面具有不同的特点[13]。上述研究表明,可以使用多种学习分析方法对学生的编程学习过程进行分析,这有利于展示编程学习效果的不同维度。
鉴于当前学习者在利用ChatGPT开展编程学习过程中的特征尚未得到充分探究,本研究目的在于运用学习分析技术,对学习者在学习过程中的编程行为和知识探究问题进行细粒度的采集、分析和挖掘,并通过探究其原因来提出利用ChatGPT辅助编程学习的指导意见,研究问题如下:
(1)在使用ChatGPT辅助编程学习时,学习者存在怎么样的行为模式?
(2)在使用ChatGPT辅助编程学习时,不同绩效学习者的编程行为具有哪些特点?
(3)在使用ChatGPT辅助编程学习时,学习者的探究问题质量如何?
三、研究设计
(一)研究对象
本研究以某师范大学2023年春季的“面向对象程序设计”课程中的36名教育技术学专业大二学生为研究对象。研究采集了他们在利用ChatGPT进行编程学习过程中的行为数据作为样本。课程共涉及五个课时,学生在前四节课中学习了Python编程的基本概念,并体验了ChatGPT的应用。在最后一节课中,要求学生利用ChatGPT进行编程项目制作。根据学生最终项目的完成质量(评价标准包括代码正确性、功能完整性和美观性),得出的成绩数据近似于正态分布。基于均值和标准差,我们将成绩在80.25至99.43之间的学生分为高绩效组(11人),将成绩在59.33至79.45之间的学生分为中绩效组(14人),将成绩在35.21至58.33之间的学生分为低绩效组(11人)。
(二)数据编码
在本研究中,主要采用PyCharm作为Python的集成开发环境。在ChatGPT的使用方面,本研究采用了自行部署开源项目ChatGPT Next Web,该项目基于OpenAI提供的开放应用接口(API)开发,并以一个功能独立完整的网站形式呈现;所有学生均使用了gpt-3.5-turbo模型。研究主要收集了学习者在编程过程中的行为数据以及与ChatGPT交流的探究问题,以此为基础进行分析。
第一,研究通过运行电脑屏幕录制程序(无声音)记录了学生的编程行为,选择最后一堂课(雷达图任务)作为本次研究的视频数据(60分钟/学习者;共计2160分钟)。选择最后一堂课收集行为数据的原因有二:一是,这堂课是综合性编程项目制作,可以捕捉到学生如何将 ChatGPT 融入编程问题解决的全过程,更好地展示他们的编程能力;二是,随着前期课程的体验,学生对 ChatGPT 的使用更加熟悉,因此他们在这节课上更加投入。我们使用点击流分析法来分析这些数据,以确定学生的编程行为。视频分析采用迭代编码流程,该流程基于之前验证过的编码框架[7,11]。两名编码员首先分别观看电脑屏幕运行视频,确定编程行为的初始编码,其次,进行讨论,就最终编码框架达成一致意见(见表1)。最后,两名编码员根据编码框架,按照时间顺序再次对数据进行独立编码,每10秒钟标记一次学习者行为,并相互核对编码结果。两名编码员之间的评分可靠性为0.80,说明该编码表分类清晰,具有较好的一致性。因此,研究人员以该编码表为标准,标注了采集到的编程学习过程样本,作为后续分析的数据源。
第二,研究通过ChatGPT平台的日志记录了学习者在ChatGPT中的知识探究问题。针对此类数据,研究对Ouyang和Dai对知识探究开放编码形成的框架进行了改编,从浅中深三个层面对学习者的初始提问(知识探究)和对ChatGPT反馈内容继续提问(反馈内容探究)的质量进行分析[14]。首先,将所有的数据按照学习者、绩效水平、提问内容的顺序整理到Excel中;其次,识别学习者所提出的问题并依据提问的顺序划分单元,共形成446个编码单元。然后两位研究人员依据编码表进行人工编码,确定最终编码类别(见表2),并进行一致性比较(评分可靠性为0.83);最后,将所有的数据转化为认知网络分析[15]所要求的格式,采用在线认知网络分析工具(webENA)进行数据分析。
四、研究发现
(一)编程学习行为分布分析
1. 编程学习行为描述性分析
36名学生共计产生4125个行为转换序列,各行为频次及分布情况见表3。根据统计结果显示,学习者的行为分布具有以下特征:(1)编写代码类行为(包括编辑代码和ChatGPT辅助编程类行为)在整个行为分布中占据了最多的频次,其次是其他行为,出现频次最少的是资源类行为,这与课程内容的属性较为符合。(2)在编辑代码类行为中,频次最高的行为是“编辑代码”(CP),其次是“理解代码”(UPC)和“阅读ChatGPT的反馈”(RF)。这说明学习者在程序编写过程中不断地理解和编写代码,并且通过与ChatGPT的交互来获取帮助。(3)在ChatGPT辅助编程类行为中,除了“阅读ChatGPT的反馈”(RF)之外,出现频次较多的行为是“提出新的问题”(ANQ)和“粘贴错误信息”(PCM)。这表明学习者将ChatGPT视为解决编程问题的工具,尤其是用于帮助他们理解程序的报错信息。
2. 编程学习行为的序列转换分析
为了分析学习者在利用ChatGPT进行编程学习过程中的行为,本研究采用了滞后序列分析法(LsA)对编码结果进行分析,呈现编程学习行为之间的过渡频率和可视化网络表征(如图1所示)。本研究使用的分析软件为Rstudio,利用LagSeq包对行为编程进行分析。本研究使用Yule's Q来表示过渡关联的强度,该参数具有一定的描述性(范围从-1到+1,其中0表示无关联)。此外,本研究还利用网络可视化方法将LsA结果可视化为网络,其中节点表示编码行为(节点上标注其出现的频率),边表示过渡关系的Yule's Q值,并从箭头指向另一个节点的节点读取编码行为过渡的方向。
从图 1中可以发现,学习者的行为转换序列(除去节点内部的转换序列)存在以下典型特征:(1)“复制和粘贴ChatGPT 中的代码→调试代码→阅读控制台中的错误信息” (CPC→DP:Yule's Q=0.96;DP→RCM:Yule's Q=0.94),即学习者经常复制和粘贴 ChatGPT 中的代码,调试以测试其正确性,然后阅读输出控制台窗口中的调试信息。这表明这些学习者一定程度上依靠ChatGPT来指导他们的编程学习过程,并将其视为编程学习的有用资源。他们花费大量时间来从ChatGPT中获取信息和指导意見,以加深对编程问题的理解,同时还会积极参与调试代码以发现错误并解决问题。这种学习方式需要不断地与ChatGPT进行交互,学习者可能会认为这是一种有效的学习方法。
(2) “复制和粘贴Python代码到ChatGPT→复制控制台中的错误信息到ChatGPT”(PPC→PCM:Yule's Q=0.85),即学习者喜欢复制Python代码和控制台中的错误信息到 ChatGPT,这意味着学习者倾向于将Python代码复制并粘贴到 ChatGPT 以快速获取帮助,特别是当他们无法理解或修改代码时,或者遇到一些他们不理解的错误信息时。然而,需要注意的是,这种学习方式容易导致学习者过度依赖ChatGPT 来解决问题,而不思考解决具体问题的方法或理解代码的含义。
(3)“阅读ChatGPT中的反馈信息→拷贝ChatGPT 中的代码”(RF→CPC:Yule's Q=0.85),即学习者花费大量时间阅读ChatGPT给出的反馈信息,包括代码示例等,并将其复制到 PyCharm 软件中进行测试。尽管这种方法反映出学习者对 ChatGPT 给出的反馈和代码示例具有一定的信任,愿意尝试验证其准确性,但这种复制粘贴的方式也可能存在一些问题。由于缺乏对代码细节的深入理解,学习者可能无法解决与复制的代码有关的错误或问题,只是简单地模拟代码。在尝试修改或调整代码时,学习者很容易遇到更多的错误,甚至导致问题更加复杂。
(4)“粘贴错误信息到 ChatGPT→遇到技术问题”(PCM→FC, Yule's Q=0.79),即学习者在使用 ChatGPT 解决程序调试错误信息时,可能遇到一些技术问题,而这可能表明这类ChatGPT平台的使用稳定性仍存在一定的提升空间。
(二)不同绩效组的编程学习行为分析
通过对课程不同阶段中高中低绩效学习者的行为进行编码分析,得到了编程行为分布表。通过表4可以发现,不同绩效学习者在课程不同阶段表现出的各类编程行为分布占比有所不同。整体而言,低绩效组在编程的前中后期拥有最多的编程行为,而高绩效组则拥有最少的编程行为。其中,在编程前期,低绩效组拥有最多的“编辑代码类”行为和“ChatGPT辅助编程类”行为,中绩效组拥有最多的“资源类”行为和“其他类行为”;在编程中期,低绩效组拥有最多的“编辑代码类”行为、“资源类”行为以及“其他类行为”,而中绩效组拥有最多的“ChatGPT辅助编程类”行为;在编程后期,低绩效组在四类编程行为上的频次依旧占据首位。
由桑基图可视化结果(如图2所示)可知,随着编程过程的不断开展,高绩效组能够在前中后期相对均衡地编辑代码,并且在前期主要使用ChatGPT来辅助编程;而中绩效组则随着编程过程的推进,不断提高编辑代码的次数,在前期和中期频繁使用ChatGPT辅助编程,并且伴随一些无关行为。而低绩效组则在前中后期都会频繁地使用ChatGPT辅助编程,同时常常会出现一些无关行为,并在编程中期时更频繁地参考教师提供的学习资源。
(三)学习者在ChatGPT中的知识探究问题分析
如图3(a)所示,学习者主要集中于浅层和中层知识探究(SKI/MKI)之间建立连接,以及在浅层知识探究和浅层反馈内容探究(SKI/SIC)上建立连接,而在深层知识探究(DKI)或反馈内容探究(DIC)上的连接较为薄弱。
此外,研究还呈现了高中低绩效组的平均认知网络〔如图3(b)、(c)、(d)所示〕,并通过独立样本t检验,发现高绩效组和低绩效组在第二维度上有显著性差异(m高绩效组=0.19,m低绩效组=-0.35;p<0.05,t=1.18)。从整体上看,中绩效组和低绩效组建立的认知连接要多于高绩效组,高绩效组在不同元素之间建立的连接(尤其是自主知识探究维度)最多;中绩效组和低绩效组则主要在反馈内容探究维度(SIC/DIC)建立较多的连接。由此我们可以推测,高绩效组主要通过自主提问来获取ChatGPT的反馈,而中低绩效组主要通过对ChatGPT反馈内容的深入提问来获取问题的解决方案,其中,低绩效组有更多的浅层知识探究和反馈内容探究(SIC/SKI)。
五、研究结论与启示
(一)ChatGPT能够辅助学生进行编程学习
从编程行为分析结果中可以发现,学习者倾向于复制和粘贴 ChatGPT 中的代码,并通过调试和阅读错误信息来验证代码的正确性。这一发现呼应了Chen等人的结论,表明学习者将 ChatGPT 视为有用的编程学习资源,并依赖它来指导他们的学习过程[16]。学习者喜欢直接复制并粘贴 Python 代码和控制台窗口中的错误信息到 ChatGPT,以获取帮助和答案。这显示学习者对 ChatGPT 的快速响应和准确性有一定的信任。此外,学习者花费大量时间阅读 ChatGPT 中的反馈信息,并将其复制到开发环境中进行测试。尽管这种方法可能存在一些问题,例如反馈内容的正确性[4],但学习者对 ChatGPT 给出的反馈和代码示例具有一定的信任。因此,对于学习者而言,在利用ChatGPT进行编程学习时,应当注意以下几个方面:首先,在编程的初期阶段,可以充分利用ChatGPT的辅助功能,以加深对编程问题的理解并进行解决。其次,随着学习的进展,应逐渐增加自主编辑代码的频率,以提升编程能力和熟练度。最后,需谨防过度依赖ChatGPT,以免产生无关行为,务必确立明确的学习目标和任务,正确运用ChatGPT来辅助学习和解决编程问题。
(二)ChatGPT辅助编程学习中存在潜在问题
在使用ChatGPT進行编程学习时,学习者常常会复制粘贴代码或错误信息,但这种做法可能阻碍学习者解决问题并减弱对代码的理解和掌握能力。ChatGPT强大的算力也可能带来"代替学生思考"和"过度技术依赖"的限制[17]。当学习者只是机械地复制和粘贴代码时,他们可能无法理解代码的逻辑和功能,从而无法进行必要的修改或调试[6]。因此,为了更有效地利用ChatGPT进行编程学习,学习者要学会(1)理解代码逻辑,不仅仅复制粘贴代码,而是仔细阅读和理解代码的逻辑和功能;(2)主动思考和解决问题,不仅依赖ChatGPT的答案,而是尝试自己独立思考和解决问题;(3)修改和调试代码,主动进行代码的修改和调试,通过观察结果的变化来深入理解代码的功能;(4)提出具体问题,向ChatGPT提问时提供具体问题和上下文信息,以获取更准确地解决方案。此外,学习者在使用 ChatGPT 辅助编程学习时可能会遇到技术问题。有时候ChatGPT可能无法提供准确或完整的答案(甚至是错误的答案),这表明 ChatGPT 平台的使用稳定性仍有提升空间[4]。ChatGPT存在自然语言生成技术所普遍存在的“幻觉”问题,会导致它可能无法提供准确或完整的答案,这需要大型语言模型的开发者对模型进行不断地迭代来逐步改善[18]。
(三)不同绩效组在利用ChatGPT时存在行为模式上的差异
根据编程行为分布表和桑基图结果,我们观察到不同绩效组在编程学习中有不同的行为特点。低绩效组在编程的整个过程中使用ChatGPT的频率最高,而高绩效组则使用频率最低。此外,低绩效组在中期阶段更频繁地使用ChatGPT进行辅助编程。中绩效组在前期和中期使用ChatGPT辅助编程的频率较高,后期逐渐减少。高绩效组在前期主要使用ChatGPT辅助编程,后期使用频率较低。这表明ChatGPT可以作为学习者在编程学习中的有用工具,但学习者应根据自身绩效水平和学习阶段合理使用,逐渐培养独立思考和解决问题的能力,以提高编程技能和学习效果。针对不同绩效水平的学习者,在使用ChatGPT进行编程学习时可以采取以下策略:(1)高绩效学习者可以将ChatGPT作为辅助工具,用于提供解决复杂问题的思路;(2)中绩效学习者可以在前期和中期较频繁地使用ChatGPT进行辅助编程,但也要尝试利用自身知识来思考问题,并自己编写代码解决问题。此外,可以利用多种学习资源来弥补知识的不足,如书籍、教程等,来解决问题[19];(3)低绩效学习者可以充分利用ChatGPT的辅助功能,在前期使用ChatGPT获取编程思路和指导,在后期积极实践并通过调试和改进代码提升技能。同时,积极与同伴或教师交流以获得及时的帮助和辅导[13]。
(四)探究问题质量会影响利用ChatGPT开展编程学习的效果
从知识探究问题上可以看出,学习者在使用ChatGPT时主要集中在浅层和中层知识的探究上,而在深层知识探究和反馈内容探究上的比例相对较少。根据认知网络分析结果发现,高绩效学习者主要通过自主提问来获取ChatGPT的反馈,中绩效学习者通过对ChatGPT反馈内容进行提问来获取问题的解决方案,低绩效学习者则更多地从浅层知识探究和反馈内容探究中进行学习。因此,在利用ChatGPT辅助编程学习的过程中,学习者应注重问题的质量和深度,通过提出具有挑战性和开放性的问题,激发ChatGPT提供更深入的知识[9]。还可以通过尝试提出与深层知识相关的问题,并追问ChatGPT以获取更深入的解释和指导。此外,学习者可以通过使用提示词(Prompt)来明确他们的问题、需求或者期望的回答形式,来提高ChatGPT的回答质量和准确性。例如吴恩达在《ChatGPT Prompt Engineering for Developers》课程中指出,通过“提示清晰和给AI更多思考时间”两条准则来设计提示词[20],可以提升探究问题的质量。此外,学习者还可以设计或借助开放性的提示词资源(例如ChatGPT等平台预设的面具或身份),促使ChatGPT提供更深入和创造性的回答。
六、结 语
本研究以某师范大学36名大二学生为研究对象,通过录屏和平台日志的方式采集其编程任务中的学习过程数据,并采用不同的学习分析方法,对学习者的编程学习过程和知识探究问题进行了分析和比较。通过分析学习者的编程过程,制定了编程行为和探究问题编码表,用于分析学习者的编程行为分布、不同绩效学习者的行为模式差异以及探究问题质量的差异。针对这些差异,本研究提出了关于如何更好地利用ChatGPT进行编程学习的建议,以提升编程学习效果和促进高阶思维能力的发展。本研究也存在一些不足,如样本量较小、学习者的年龄和专业分布单一等,这些不足将在后续研究中进行探究和完善。未来的研究将进一步探索和完善这些限制,以更好地利用生成式人工智能这一强大的工具支持学生的编程学习。
[参考文献]
[1] 杨宗凯,王俊,吴砥,等.ChatGPT/生成式人工智能对教育的影响探析及应对策略[J].华东师范大学学报(教育科学版),2023,41(7):26-35.
[2] 张绒.生成式人工智能技术对教育领域的影响——关于ChatGPT的专访[J].电化教育研究,2023,44(2):5-14.
[3] 董艳,夏亮亮,李心怡,等. ChatGPT赋能学生学习的路径探析[J].电化教育研究,2023,44(12):14-20,34.
[4] YILMAZ R, KARAOGLAN Y F G. Augmented intelligence in programming learning: examining student views on the use of ChatGPT for programming learning[J]. Computers in human behavior: artificial humans, 2023,1(2):100005.
[5] 孫立会,胡琳琳.编程真的能促进儿童的个体发展吗?——基于28项实验和准实验研究的元分析[J].华东师范大学学报(教育科学版),2021,39(11):45-58.
[6] 卢宇,余京蕾,陈鹏鹤,等.生成式人工智能的教育应用与展望——以ChatGPT系统为例[J].中国远程教育,2023,43(4):24-31.
[7] 吴林静,刘清堂,边佳琪,等.学习分析视域下学习者编程过程分析研究[J].现代远距离教育,2020(2):68-75.
[8] OPENAI. Introducing ChatGPT[EB/OL]. [2023-08-10]. https://openai.com/blog/chatgpt.
[9] RAHMAN M M, WATANOBE Y. ChatGPT for education and research: opportunities, threats, and strategie[J]. Applied sciences, 2023,13(9):5783.
[10] PEREIRA F D, OLIVEIRA E H, OLIVEIRA D B, et al. Using learning analytics in the Amazonas: understanding students' behaviour in introductory programming[J]. British journal of educational technology, 2020,51(4):955-972.
[11] SUN D, OUYANG F, LI Y, ZHU C. Comparing learners' knowledge, behaviors, and attitudes between two instructional modes of computer programming in secondary education[J]. International journal of STEM education, 2021,8(1):54.
[12] TURKLE S, PAPERT S. Epistemological pluralism and the revaluation of the concrete[J]. Journal of mathematical behavior, 1992, 11(1):3-33.
[13] SUN D, OUYANG F, LI Y, CHEN H. Three contrasting pairs' collaborative programming processes in China's secondary education[J]. Journal of educational computing research, 2021,1(8):54.
[14] OUYANG F, DAI X. Using a three-layered social-cognitive network analysis framework for understanding online collaborative discussions[J]. Australasian journal of educational technology, 2022,38(1):164-181.
[15] SHAFFER D W, COLLIER W, RUIS A R. A tutorial on epistemic network analysis: analyzing the structure of connections in cognitive, social, and interaction data[J]. Journal of learning analytics, 2016,3(3):9-45.
[16] CHEN E, HUANG R,CHEN H S, TSENG Y H, LI L Y. GPTutor: a ChatGPT powered programming tool for code explanation [EB/OL]. [2023-08-10]. https:/arxiv.org/abs/2305.01863.
[17] 鄭永和,周丹华,张永和,等.计算教育学视域下的ChatGPT:内涵、主题、反思与挑战[J].华东师范大学学报(教育科学版),2023,41(7):91-102.
[18] GODDARD J. Hallucinations in ChatGPT: a cautionary tale for biomedical researchers[J]. The American journal of medicine,2023, 136(11):1059-1060.
[19] 朱光辉,王喜文.ChatGPT的运行模式、关键技术及未来图景[J].新疆师范大学学报(哲学社会科学版),2023,44(4):113-122.
[20] DEEPLEARNING. AI [EB/OL]. [2023-08-10]. https://www.deeplearning.ai/short-courses/chatgpt-prompt-engineering-for-developers/.
A Study on Analysis of College Students' Programming Learning Behavior
Based on Generative Artificial Intelligence
SUN Dan1, ZHU Chengcong2, XU Zuodong1, XU Guangtao1
(1.Chinese Education Modernization Research Institute, Hangzhou Normal University, Hangzhou Zhejiang 311121; 2.Zhejiang Xiaoshan High School, Hangzhou Zhejiang 311201)
[Abstract] Generative artificial intelligence can provide efficient and personalized intelligent services and technical support for education. As a typical generative artificial intelligence language model, the application of ChatGPT in programming has been widely concerned by the industry. However, few scholars have explored how learners use ChatGPT to learn programming from the level of empirical research. Through fine-grained analysis of learners' programming behaviors and knowledge inquiry coding methods, this study has analyzed the programming process of 36 learners. The results show that:(1) learners view ChatGPT as a useful programming learning resource, rely on it to guide the learning process, and tend to copy code or debug errors to ChatGPT, and then copy its feedback; (2) the high-performance group mainly use ChatGPT to assist programming in the early stages, while the low-performance group use ChatGPT more frequently throughout the programming process; (3) learners mainly focus on exploring shallow and middle-level knowledge when using ChatGPT. The high-performance group obtain feedback from ChatGPT by asking questions independently, while the medium- and low- performance group obtain problem solutions by asking questions about feedback from ChatGPT. The study puts forward some suggestions on how to use ChatGPT to assist college students in programming learning, with a view to providing references for improving the efficiency of programming learning.
[Keywords] ChatGPT; Programming Learning; Learning Behavior; Learning Analytics; College Students